Skip to main content

sympy2c is a sympy to c compiler including solving odes at c level.

Project description

sympy2c

sympy2c:

  • takes symbolic expressions from sympy and creates a Python C extension offering functions to evaluate these.

  • offers an ode solver in C which accepts equations specified as sympy expressions.

  • offers sympy extenstion to specify integrals for numerical approximation in C++.

  • offers sympy extenstion to specify 1D interpolation functions which can be evaluated in C++.

  • offers fast ODE solvers in C++.

  • Free software: MIT license

History

0.22.3 (2021-12-13)

  • less output for new traces

0.22.2 (2021-12-10)

  • fix missing files in package

  • user portalocker to avoid race conditions when reading/writing trace files

0.22.1 (2021-12-10)

  • fixed licenses

0.22.0 (2021-12-09)

  • rename to sympy2c, upload to pypi.org, update package meta data

0.21.5 (2021-11-18)

  • finaly fixed issue when switching time for combined odes is outside given time span.

0.21.4 (2021-11-15)

  • delete new_traces entries after recompile.

0.21.3 (2021-11-15)

  • fix issue when switching time for combined odes is outside given time span.

0.21.2 (2021-10-28)

  • better error message when reading json file fails.

0.21.1 (2021-10-27)

  • fix compilation flags for ubuntu 20.04.

  • fix issue with file encodings of traces files.

0.21.0 (2021-09-24)

  • faster sparse lu fallback solver.

  • cache fast lsoda variant static library.

  • check if splits for fast ode solvers are out of range.

0.20.1 (2021-09-14)

  • Fix required cython version.

0.20.0 (2021-09-09)

  • report lu solver call counts.

  • fix issue with split and traces handling.

  • improve compilation time using -f-no-var-tracking compiler flag.

  • consider compiler flags in cache folder name.

0.19.1 (2021-07-09)

  • remove C++17 dependency.

0.19.0 (2021-07-09)

  • fix compilation issue with anaconda on mac.

  • fast ode solver reports more detailed execution time info.

  • cache folder names contains sympy and numpy version info.

  • fix issue with interpolation functions.

0.18.0 (2021-04-29)

  • official support for _ufunc versions of compiled functions.

  • PythonFunction to compile pure Python function into wrapper.

0.17.0 (2021-04-23)

  • more arguments for merge function in combined odes.

0.16.3 (2021-03-31)

  • traces handling for OdeCombined.

0.16.2 (2021-03-31)

  • fix issue with caching OdeCombined intermediate data.

  • fix issue when switching odes.

0.16.1 (2021-03-25)

  • fix issue when merging solutions of combined odes.

0.16.0 (2021-03-18)

  • new feature: combined odes.

0.15.3 (2021-03-03)

  • fix: more reliable server for gsl download, existing one was broken.

0.15.2 (2021-02-08)

  • fix: restore Python 3.6 support.

0.15.1 (2021-01-27)

  • fixed reordering of fast ode equations.

0.15.0 (2021-01-13)

  • reordering of fast ode equations.

0.14.1 (2020-12-09)

  • restore Python 3.6 support.

0.14.0 (2020-12-07)

  • fixed bug in unique id computation in OdeFast.

  • own approach for symbolic matrix inversion to gain speed.

0.13.1 (2020-11-23)

  • fix traces handling.

0.13.0 (2020-11-20)

  • faster compilation times based on schur-complement approach for solving linear systems.

  • better handling of traces.

0.12.1 (2020-10-16)

  • fix encoding issue when using subprocess module from standard library.

0.12.0 (2020-08-27)

  • unify API of ode and fast ode solver.

  • support to specify compilation flags.

  • reduced size if sympy_to_c Python package.

0.11.0 (2020-08-19)

  • reduce memory consumption of fast ode solver.

  • support for bessel and 2f1 hyper geometric function.

  • speed improvements in ode code related c functions.

  • fix issue with handling rtol in fast ode solver.

  • fix issue with memory handling / computation.

0.10.0 (2020-06-02)

  • new parameter max_order for fast ode solver.

  • rtol parameter for fast ode solver can be a vector now to use different settings for different components of the ode.

  • compiled wrapper module name now includes unique id to support loading different wrappers in the same python interpreter.

0.9.0 (2020-03-31)

  • Use constant ‘extrapolation’ on rhs of interpolation intervals. This is usefull if the ode solver tries to evaluate the rhs of the ODE beyond the last time point.

0.8.11 (2020-03-24)

  • fixed bug related to included blas from release 0.8.10.

0.8.10 (2020-03-19)

  • add attribute sympy_to_c_version to compiled module.

  • include blas / lapack dependencies.

0.8.9 (2020-03-06)

  • fixed pickling problems (commit 2215dfb).

  • compiled module already has “default” integral parameters defined. Wrappers now can be used after import without setting integration parameters for integrals with id “default” (commit d544632).

  • fixed issue with caching expression hashes (commit e73dd5d).

  • reduced output (commit 25e4d62).

0.8.8 (2020-02-25)

  • fixed issues with code creation for integrals.

0.8.7 (2020-02-18)

  • don’t expose internal integrand functions to Python. Caused some issues in complex situations.

  • print debug information about unique_id computations in case envrinment variable PRINTHASHES is set.

0.8.6 (2020-02-11)

  • fixed pickling

  • support for expressions including sympy.Abs.

0.8.5 (2020-02-04)

  • fixed issues with sympy 1.4.X.

0.8.4 (2020-01-31)

  • fixed issues with missing files in package.

0.8.3 (2020-01-30)

  • fixed installation issues.

  • internal improvements.

  • smaller bug fixes.

0.8.2 (2019-12-10)

  • added Module.unique_id.

  • unique_id computations are much faster now.

  • decide late what code to generate and compile.

  • less but better output during compilation.

0.8.1 (2019-11-21)

  • fixed broken caching of generated or compiled code.

  • improved some messages from lsoda_modified when integration fails.

0.8.0 (2019-11-07)

  • permutations -> traces + improved switchin of solvers.

  • fixed “set_sec_factor” function. Old version did nothing.

  • increased default value for “mxstep” in modified lsoda 500 to 50,000.

0.7.0 (2019-10-25)

  • support integrals and interpolation functions in fast odes.

  • disable compilation of fast ode wrappers on demand (needed in PyCosmo for faster startup).

  • sec_factor is not hard coded anymore but can be configured.

  • wrapper how has function to retrieve symbols used in an ode.

0.6.1 (2019-10-03)

  • fixed broken ode solver in case time variable appears in right hand side of ode.

0.6.0 (2019-10-01)

  • implemented fast ode solver.

  • ode returns result now transposed.

0.5.3 (2019-07-03)

  • enforce continous memory layout for vector arguments.

0.5.2 (2019-07-02)

  • improved speed of code generation for larger ode systems as used in PyCosmo.

0.5.1 (2019-06-20)

  • ode solver functions now have doc strings.

  • fixed Python package by adding missing file.

0.5.0 (2019-06-14)

  • ode solver now computes and uses jacobian matrix if wanted.

  • include ERROR expression.

  • handle None in globals as nan.

  • added symbolic isnan function.

0.4.2 (2019-04-11)

  • fixed issues after upgrade sympy to version 1.4.

  • better error message when interpolation argument is out of range.

0.4.1 (2019-04-10)

  • fixed pickling issues.

0.4.0 (2019-04-10)

  • Fixed issue with aliasing vectors.

  • compiled module now also returns list with strings of LHS symbols.

0.3.0 (2019-04-02)

  • improved output when parsing Python code fails.

  • add Min and Max expressions.

  • better tests.

0.2.0 (2019-03-22)

  • include ODE solver codes.

0.1.0 (2019-03-20)

  • First release on PyPI.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sympy2c-0.22.3.tar.gz (250.3 kB view details)

Uploaded Source

File details

Details for the file sympy2c-0.22.3.tar.gz.

File metadata

  • Download URL: sympy2c-0.22.3.tar.gz
  • Upload date:
  • Size: 250.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0

File hashes

Hashes for sympy2c-0.22.3.tar.gz
Algorithm Hash digest
SHA256 89acd0cefd6cdb8a870ab833b931eeccda32330358e34c64b8f7c73d27feb438
MD5 cdf1fb6a353ce02da6e5180ede516e3f
BLAKE2b-256 8f919c72ee89f4cebd64a112d25b78f3b1491678d70619d466bd4b66c1012b49

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page