pymbolic

A simple package to do symbolic math (focus on code gen and DSLs)

https://github.com/inducer/pymbolic

Science Score: 64.0%

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

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
    10 of 24 committers (41.7%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.8%) to scientific vocabulary

Keywords

code-generation computer-algebra expression-tree python symbolic-computation term-rewriting

Keywords from Contributors

multidimensional-arrays pycuda isl loop-optimization polyhedral-model mesh closember network-simulation hacking optim
Last synced: 4 months ago · JSON representation ·

Repository

A simple package to do symbolic math (focus on code gen and DSLs)

Basic Info
Statistics
  • Stars: 118
  • Watchers: 7
  • Forks: 26
  • Open Issues: 11
  • Releases: 6
Topics
code-generation computer-algebra expression-tree python symbolic-computation term-rewriting
Created over 14 years ago · Last pushed 4 months ago
Metadata Files
Readme License Citation

README.rst

Pymbolic: Easy Expression Trees and Term Rewriting
==================================================

.. image:: https://gitlab.tiker.net/inducer/pymbolic/badges/main/pipeline.svg
    :alt: Gitlab Build Status
    :target: https://gitlab.tiker.net/inducer/pymbolic/commits/main
.. image:: https://github.com/inducer/pymbolic/actions/workflows/ci.yml/badge.svg
    :alt: Github Build Status
    :target: https://github.com/inducer/pymbolic/actions/workflows/ci.yml
.. image:: https://badge.fury.io/py/pymbolic.svg
    :alt: Python Package Index Release Page
    :target: https://pypi.org/project/pymbolic
.. image:: https://zenodo.org/badge/2016193.svg
    :alt: Zenodo DOI for latest release
    :target: https://zenodo.org/badge/latestdoi/2016193

Pymbolic is a small expression tree and symbolic manipulation library. Two
things set it apart from other libraries of its kind:

* Users can easily write their own symbolic operations, simply by deriving
  from the builtin visitor classes.
* Users can easily add their own symbolic entities to do calculations
  with.

Pymbolic currently understands regular arithmetic expressions, derivatives,
sparse polynomials, fractions, term substitution, expansion. It automatically
performs constant folding, and it can compile its expressions into Python
bytecode for fast(er) execution.

If you are looking for a full-blown Computer Algebra System, look at
`sympy `__ or
`PyGinac `__. If you are looking for a
basic, small and extensible set of symbolic operations, pymbolic may
well be for you.

Resources:

* `PyPI package `__
* `Documentation `__
* `Source code (GitHub) `__

Owner

  • Name: Andreas Klöckner
  • Login: inducer
  • Kind: user
  • Location: Champaign, IL
  • Company: Scientific Computing, CS@UIUC

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Kloeckner"
  given-names: "Andreas"
  orcid: "https://orcid.org/0000-0003-1228-519X"
- family-names: "Wala"
  given-names: "Matt"
- family-names: "Fernando"
  given-names: "Isuru"
- family-names: "Kulkarni"
  given-names: "Kaushik"
- family-names: "Fikl"
  given-names: "Alex"
- family-names: "Weiner"
  given-names: "Zach"
- family-names: "Kempf"
  given-names: "Dominic"
- family-names: "Ham"
  given-names: "David A."
- family-names: "Mitchell"
  given-names: "Lawrence"
- family-names: "Wilcox"
  given-names: "Lucas C"
- family-names: "Diener"
  given-names: "Matthias"
- family-names: "Kapyshin"
  given-names: "Pavlo"
- family-names: "Raksi"
  given-names: "Reno"
- family-names: "Gibson"
  given-names: "Thomas H."
title: "pymbolic"
version: 2022.1
doi: 10.5281/zenodo.6533945
date-released: 2022-05-08
url: "https://github.com/inducer/pymbolic"
license: MIT

GitHub Events

Total
  • Create event: 33
  • Release event: 4
  • Issues event: 3
  • Watch event: 9
  • Delete event: 28
  • Issue comment event: 17
  • Push event: 106
  • Pull request event: 77
  • Pull request review event: 40
  • Pull request review comment event: 40
  • Fork event: 1
Last Year
  • Create event: 33
  • Release event: 4
  • Issues event: 3
  • Watch event: 9
  • Delete event: 28
  • Issue comment event: 17
  • Push event: 106
  • Pull request event: 77
  • Pull request review event: 40
  • Pull request review comment event: 40
  • Fork event: 1

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 965
  • Total Committers: 24
  • Avg Commits per committer: 40.208
  • Development Distribution Score (DDS): 0.293
Past Year
  • Commits: 115
  • Committers: 3
  • Avg Commits per committer: 38.333
  • Development Distribution Score (DDS): 0.261
Top Committers
Name Email Commits
Andreas Kloeckner i****m@t****t 682
Matt Wala w****1@i****u 65
Alexandru Fikl a****l@g****m 55
Kaushik Kulkarni k****d@g****m 44
Isuru Fernando i****f@g****m 40
zachjweiner z****r@g****m 15
Andreas Kloeckner m****m@t****t 11
Matthias Diener m****r@i****u 10
Dominic Kempf d****f@i****e 10
Andreas Kloeckner k****r@h****) 6
astock a****k@d****u 5
Nicholas Christensen n****2@i****u 4
HendrikRiedmann r****n@d****u 4
David Ham D****m@i****k 2
dependabot[bot] 4****] 2
Andreas Kloeckner k****r@h****u 2
Lawrence Mitchell l****l@i****k 1
Tim Warburton t****r@c****u 1
Andreas Kloeckner k****r@t****) 1
Lucas C Wilcox l****s@s****m 1
Pavlo Kapyshin i@9****g 1
Ravindu-Hirimuthugoda r****8@c****k 1
Reno Raksi a****i@g****m 1
Thomas Gibson g****0@h****m 1

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 19
  • Total pull requests: 167
  • Average time to close issues: over 1 year
  • Average time to close pull requests: 16 days
  • Total issue authors: 12
  • Total pull request authors: 10
  • Average comments per issue: 2.74
  • Average comments per pull request: 0.95
  • Merged pull requests: 144
  • Bot issues: 0
  • Bot pull requests: 3
Past Year
  • Issues: 2
  • Pull requests: 70
  • Average time to close issues: 19 days
  • Average time to close pull requests: 1 day
  • Issue authors: 1
  • Pull request authors: 4
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.39
  • Merged pull requests: 60
  • Bot issues: 0
  • Bot pull requests: 1
Top Authors
Issue Authors
  • kaushikcfd (4)
  • inducer (3)
  • Erotemic (2)
  • redrossa (1)
  • Ravindu-Hirimuthugoda (1)
  • zachjweiner (1)
  • avedmala (1)
  • legendre6891 (1)
  • SuperSandro2000 (1)
  • gkaissis (1)
  • isuruf (1)
Pull Request Authors
  • inducer (106)
  • alexfikl (38)
  • matthiasdiener (15)
  • kaushikcfd (15)
  • isuruf (14)
  • dependabot[bot] (5)
  • thomasgibson (2)
  • nchristensen (1)
  • Ravindu-Hirimuthugoda (1)
  • sv2518 (1)
Top Labels
Issue Labels
Pull Request Labels
dependencies (5) github_actions (1)

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 22,614 last-month
  • Total docker downloads: 113
  • Total dependent packages: 8
    (may contain duplicates)
  • Total dependent repositories: 52
    (may contain duplicates)
  • Total versions: 48
  • Total maintainers: 1
pypi.org: pymbolic

A package for symbolic computation

  • Versions: 40
  • Dependent Packages: 5
  • Dependent Repositories: 49
  • Downloads: 22,614 Last month
  • Docker Downloads: 113
Rankings
Dependent packages count: 1.9%
Docker downloads count: 2.0%
Dependent repos count: 2.1%
Average: 2.4%
Downloads: 3.7%
Maintainers (1)
Last synced: 4 months ago
conda-forge.org: pymbolic
  • Versions: 8
  • Dependent Packages: 3
  • Dependent Repositories: 3
Rankings
Dependent packages count: 15.6%
Dependent repos count: 18.1%
Average: 26.4%
Stargazers count: 34.0%
Forks count: 38.0%
Last synced: 4 months ago

Dependencies

requirements.txt pypi
  • matchpy *
setup.py pypi
  • pytest >=2.3
  • pytools >=2
.github/workflows/autopush.yml actions
  • actions/checkout v3 composite
.github/workflows/ci.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite