{"id":19011267,"url":"https://github.com/kdkasad/eqnp","last_synced_at":"2026-06-29T01:31:19.120Z","repository":{"id":57676429,"uuid":"460555224","full_name":"kdkasad/eqnp","owner":"kdkasad","description":"Mathematical derivative calculator and simplification engine","archived":false,"fork":false,"pushed_at":"2022-12-18T21:47:51.000Z","size":58,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-26T17:47:38.857Z","etag":null,"topics":["calculator","calculus","parser","python3"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kdkasad.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-02-17T18:17:14.000Z","updated_at":"2024-06-20T23:35:49.000Z","dependencies_parsed_at":"2023-01-29T20:01:09.179Z","dependency_job_id":null,"html_url":"https://github.com/kdkasad/eqnp","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/kdkasad/eqnp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kdkasad%2Feqnp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kdkasad%2Feqnp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kdkasad%2Feqnp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kdkasad%2Feqnp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kdkasad","download_url":"https://codeload.github.com/kdkasad/eqnp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kdkasad%2Feqnp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34910177,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-28T02:00:05.809Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["calculator","calculus","parser","python3"],"created_at":"2024-11-08T19:13:55.356Z","updated_at":"2026-06-29T01:31:19.101Z","avatar_url":"https://github.com/kdkasad.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# eqnp\nA simple symbolic derivative calculator and simplification engine.\n\n## Goal\n\nThe goal of eqnp is to be a program which can parse expressions (and maybe\nequations at some point) and can manipulate them in various ways. This might\neventually include:\n\n * Simplifying\n * Differentiating (finding derivatives)\n * Integrating (finding integrals)\n * Solving (isolating variables)\n\nIn addition, this is a project that I'm creating only from my own knowledge. My\ngoal is to not use any resources relating to the actual function of eqnp.\n(Python documentation is acceptable, of course.)\n\n## Install\n\neqnp is a Python package, so it can be installed in multiple ways.\n\n### Install directly from repository\n\nRun the following command to download and install eqnp.\n\n```sh\n$ python -m pip install git+https://github.com/kdkasad/eqnp\n```\n\n### Clone repository\n\nAnother method is to clone the repository first, then install from the local\ncopy.\n\n```sh\n$ git clone https://github.com/kdkasad/eqnp\n$ cd eqnp\n$ python -m pip install .\n```\n\n## Usage\n\nImport the `parse_expression()` function from `eqnp.parser`:\n\n```python\nfrom eqnp.parser import parse_expression\n\n# or\n\nfrom eqnp import *\n```\n\nThen run `parse_expression(...)`, passing in a string which is an expression.\n[See below](#expression-string-syntax) for syntax.\n\n### Example\n\n```python\nIn [1]: import eqnp\n\nIn [2]: function = eqnp.parse_expression(' 1 / x^2 ')\n\nIn [3]: print(function)\nOut[3]: Division(1, Exponent(x, 2))\n\nIn [4]: derivative = function.differentiate(respectTo='x')\n\nIn [5]: print(derivative)\nOut[5]: Division(Subtraction(Multiplication(0, Exponent(x, 2)), Multiplication(1, Multiplication(Multiplication(2, Exponent(x, Subtraction(2, 1))), 1))), Exponent(Exponent(x, 2), 2))\n\nIn [6]: derivative = derivative.simplify_fully()\n\nIn [7]: print(derivative)\nOut[7]: Division(Subtraction(0, Multiplication(2, x)), Exponent(x, 4))\n\n      # Out[7] is equivalent to '(-2 * x) / (x ^ 4)'\n```\n\n### Expression string syntax\n\nCurrently, the following operators, functions, and other syntactical structures\nare supported (`...` means an expression):\n\n| Syntax      | Meaning                                                         |\n| ---         | ---                                                             |\n| `... + ...` | Addition -- Must have operands on either side                   |\n| `... - ...` | Subtraction -- Must have operands on either side                |\n| `... * ...` | Multiplication -- Must have operands on either side             |\n| `... / ...` | Division -- Must have operands on either side                   |\n| `(...)`     | Grouping -- used to group operations to enforce a certain order |\n| `\\|...\\|`     | Absolute value -- same as `abs(...)`                            |\n| `abs(...)`  | Absolute value                                                  |\n| `sin(...)`  | Sine function                                                   |\n| `cos(...)`  | Cosine function                                                 |\n| `tan(...)`  | Tangent function                                                |\n| `csc(...)`  | Cosecant function                                               |\n| `sec(...)`  | Secant function                                                 |\n| `cot(...)`  | Cotangent function                                              |\n| `-n`        | Negation -- `n` must be a constant number                       |\n\n\u003e Note: The absolute value bars do not have to be escaped. They're only that way in the markdown file because the table syntax uses pipe characters.\n\n## To do\n\nThere are still a lot of features that I want to implement. Some are listed as\n`# TODO:` comments in the source code, but I'll put a list here too:\n\n* Pull all constants out of nested multiplication expressions\n* Flip negative exponents in fractions to opposite side\n* Add inverse trigonometric functions\n* Implement integration\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkdkasad%2Feqnp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkdkasad%2Feqnp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkdkasad%2Feqnp/lists"}