pabloisaacalexz / Visualizing-math

This repository is devoted to publish scripts where I try to animate or visualize mathematical objects coming from any branch of mathematics, but specially the ones coming from probability theory.
MIT License
1 stars 0 forks source link

Performance: vectorization and comprehension. #2

Closed johnny-godoy closed 1 year ago

johnny-godoy commented 1 year ago

Además de arreglar el bug mencionado en https://github.com/pabloisaacalexz/Visualizing-math/issues/1, este PR implementa varios cambios que mejoran el desempeño de la función LevyConstructionBM. Esto se logró modificando o eliminando ciclos for:

pabloisaacalexz commented 1 year ago

Hola Johnny, muchas gracias, acabo de aceptar el pull request :). Agradezco mucho el tiempo que te diste para mejorar el código. Espero podamos colaborar en más proyectos.

Saludos, Pablo

El mar, 11 abr 2023 a las 12:48, Johnny Godoy @.***>) escribió:

Además de arreglar el bug mencionado en #1 https://github.com/pabloisaacalexz/Visualizing-math/issues/1, este PR implementa varios cambios que mejoran el desempeño de la función LevyConstructionBM. Esto se logró modificando o eliminando ciclos for:

  • La función get_indices se cambió por una versión vectorizada por NumPy.
  • Se simplifcó la lógica para construir Z_scaled. La función diff se eliminó, utilizando funciones vectorizadas de NumPy para lograr el mismo resultado. Potencialmente se podría mejorar aún más utilizando conjuntos https://docs.python.org/3/tutorial/datastructures.html#sets, pero esto requeriría una re-implementación más grande, y esta función ya no es el cuello de botella (generar la animación lo es), así que no creo que valga mucho la pena.
  • Se evitan ciclos que iteran sobre range y luego utilizan este índice para encontrar un elemento en una lista/arreglo, prefiriendo iterar sobre la lista/arreglo directamente.
  • En las secciones que mejoraba la legibilidad, se utilizó list comprehension, que también tiene un pequeño efecto en la velocidad.

You can view, comment on, or merge this pull request online at:

https://github.com/pabloisaacalexz/Visualizing-math/pull/2 Commit Summary

File Changes

(1 file https://github.com/pabloisaacalexz/Visualizing-math/pull/2/files )

Patch Links:

— Reply to this email directly, view it on GitHub https://github.com/pabloisaacalexz/Visualizing-math/pull/2, or unsubscribe https://github.com/notifications/unsubscribe-auth/AMXY77AISFTOWL7UXUM4WYTXAWDPFANCNFSM6AAAAAAW2Q5CAU . You are receiving this because you are subscribed to this thread.Message ID: @.***>

-- Pablo Zúñiga Rodríguez-Peña Estudiante Ingeniería Civil Matemática Estudiante Magíster en Cs. de la Ingeniería, Mención Matemáticas Aplicadas Universidad de Chile