https://github.com/bjodah/symcxx

Experimental limited symbolic C++ library

https://github.com/bjodah/symcxx

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.2%) to scientific vocabulary
Last synced: 11 months ago · JSON representation

Repository

Experimental limited symbolic C++ library

Basic Info
  • Host: GitHub
  • Owner: bjodah
  • License: bsd-2-clause
  • Language: C++
  • Default Branch: master
  • Size: 224 KB
Statistics
  • Stars: 3
  • Watchers: 2
  • Forks: 0
  • Open Issues: 4
  • Releases: 9
Created over 10 years ago · Last pushed over 1 year ago
Metadata Files
Readme Changelog License Authors

README.rst

SymCXX
======

.. image:: http://hera.physchem.kth.se:8080/api/badges/bjodah/symcxx/status.svg
   :target: http://hera.physchem.kth.se:8080/bjodah/symcxx
   :alt: Build status
.. image:: https://img.shields.io/pypi/v/symcxx.svg
   :target: https://pypi.python.org/pypi/symcxx
   :alt: PyPI version
.. image:: https://img.shields.io/badge/python-2.7,3.4,3.5-blue.svg
   :target: https://www.python.org/
   :alt: Python version
.. image:: https://img.shields.io/pypi/l/symcxx.svg
   :target: https://github.com/bjodah/symcxx/blob/master/LICENSE
   :alt: License
.. image:: http://img.shields.io/badge/benchmarked%20by-asv-green.svg?style=flat
   :target: http://hera.physchem.kth.se/~symcxx/benchmarks
   :alt: airspeedvelocity
.. image:: http://hera.physchem.kth.se/~symcxx/branches/master/htmlcov/coverage.svg
   :target: http://hera.physchem.kth.se/~symcxx/branches/master/htmlcov
   :alt: coverage

`SymCXX `_ is an *experimental*
Python package (with its core implemented in C++) for symbolic manipulation
with limited scope (as in minimal).
It tries to stay compatible with the API of `SymPy `_.
Its main goal is to explore designs related to automatic differentiation and
numerical evaluation similar to SymEngine's Lambdify functionality.

The capabilities include:

- Differentiation (including taking the jacobian of a matrix)
- Numerical evaluation

The above capabilities are exactly what is needed by
`pyodesys `_
and `pyneqsys `_.

Note that **integers in symcxx may overflow**, i.e. if correctness is important 
please use SymPy/SymEngine.

Documentation
-------------
Currently users may refer to SymPy's / SymEngine's documentation.


Installation
------------
Simplest way to install SymCXX and its (optional) dependencies is to use
the `conda package manager `_:

::

   $ conda install -c bjodah symcxx pytest
   $ python -m pytest --pyargs symcxx

or pip (requires a C++11 compliant compiler):

::

   $ pip install --user symcxx pytest
   $ python -m pytest --pyargs symcxx


There are no requirements outside the Python standard library.

Source distribution is available here:
``_

Example
-------
Differentiation

.. code:: python

   >>> from symcxx import NameSpace
   >>> ns = NameSpace()
   >>> x, y = map(ns.Symbol, 'x y'.split())
   >>> expr = x*y**2 - ns.tan(2*x)
   >>> print(expr.diff(x))
   Sub(Pow(Symbol(y), Integer(2)), Mul2(Integer(2), Add2(Integer(1), Pow(Tan(Mul2(Symbol(x), Integer(2))), Integer(2)))))

Lambdify

.. code:: python

   >>> lmb = ns.Lambdify([x, y], expr)
   >>> import numpy as np
   >>> np.all(np.abs(lmb([1.3, 0.2]) - 0.65359661) < 1e-6)
   True


License
-------
The source code is Open Source and is released under the simplified 2-clause BSD license. See `LICENSE `_ for further details.

Contributors are welcome to suggest improvements at https://github.com/bjodah/symcxx

Author
------
Björn I. Dahlgren, contact:

- gmail address: bjodah

Owner

  • Name: Bjorn
  • Login: bjodah
  • Kind: user

GitHub Events

Total
  • Push event: 4
Last Year
  • Push event: 4

Committers

Last synced: over 3 years ago

All Time
  • Total Commits: 114
  • Total Committers: 1
  • Avg Commits per committer: 114.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Björn Dahlgren b****h@g****m 114

Issues and Pull Requests

Last synced: about 1 year ago

All Time
  • Total issues: 5
  • Total pull requests: 18
  • Average time to close issues: about 17 hours
  • Average time to close pull requests: 17 days
  • Total issue authors: 3
  • Total pull request authors: 1
  • Average comments per issue: 0.4
  • Average comments per pull request: 0.0
  • Merged pull requests: 16
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • bjodah (3)
  • yurivict (1)
  • thierry-FreeBSD (1)
Pull Request Authors
  • bjodah (18)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 11 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 2
  • Total versions: 11
  • Total maintainers: 1
pypi.org: symcxx

symcxx is a minimal symbolic manipulation python package written in C++.

  • Versions: 11
  • Dependent Packages: 0
  • Dependent Repositories: 2
  • Downloads: 11 Last month
Rankings
Dependent packages count: 10.1%
Dependent repos count: 11.6%
Stargazers count: 25.0%
Average: 25.9%
Forks count: 29.8%
Downloads: 52.9%
Maintainers (1)
Last synced: 11 months ago

Dependencies

setup.py pypi
  • numpy *
pyproject.toml pypi