{"id":19794754,"url":"https://github.com/vityaman-edu/math-tool","last_synced_at":"2025-09-12T22:37:20.690Z","repository":{"id":157111526,"uuid":"611157866","full_name":"vityaman-edu/math-tool","owner":"vityaman-edu","description":"CLI for Mathematica and Symatica. Enjoy abstract math algorithms and symbolic computations!","archived":false,"fork":false,"pushed_at":"2023-05-25T11:56:22.000Z","size":1239,"stargazers_count":0,"open_issues_count":5,"forks_count":0,"subscribers_count":0,"default_branch":"trunk","last_synced_at":"2025-01-11T04:46:04.510Z","etag":null,"topics":["clang","clang-tidy","cmake","cpp20","gtest","math"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vityaman-edu.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-03-08T08:36:27.000Z","updated_at":"2023-05-11T11:47:08.000Z","dependencies_parsed_at":"2024-08-03T17:50:55.668Z","dependency_job_id":null,"html_url":"https://github.com/vityaman-edu/math-tool","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vityaman-edu%2Fmath-tool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vityaman-edu%2Fmath-tool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vityaman-edu%2Fmath-tool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vityaman-edu%2Fmath-tool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vityaman-edu","download_url":"https://codeload.github.com/vityaman-edu/math-tool/tar.gz/refs/heads/trunk","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241136970,"owners_count":19916024,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["clang","clang-tidy","cmake","cpp20","gtest","math"],"created_at":"2024-11-12T07:14:23.176Z","updated_at":"2025-02-28T10:19:42.105Z","avatar_url":"https://github.com/vityaman-edu.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CLI for Mathematica and Symathica\n\n![example workflow](https://github.com/vityaman-edu/math-tool/actions/workflows/trunk.yml/badge.svg)\n![Total lines](https://img.shields.io/tokei/lines/github/vityaman-edu/math-tool)\n\n## Mathematica\n\n- A library for abstract scientific computations and\n  contains computational methods implementation.\n\n- Uses `C++20` concepts to abstract algorithms and data structures\n  on algebraic types such as `Field`, `Real` numbers and so on.\n\n- Basic data structures as `Matrix`, `Vector`, `Polynomial` implemented.\n\n- Solve systems of linear equations using\n  `Gauss` and `Simple Iteration` methods.\n\n- Solve equations with only variable using\n  `Half-Division`, `Newton`, `Simple Iteration` methods.\n\n- Compute an integral of one-argument continuous function\n  on given interval using `Cotes` methods.\n\n- Approximate one-argument function with `Polynomial`\n  using `Least Sqares` method.\n\n- Find some statistics such as `PCC`, `RSS`.\n\n## Symatica\n\n- A library for symbolic computations.\n\n- Supports basic operations such as\n  `Addition`, `Substraction`, `Multiplication`, `Division`,\n  `Negation`, `Exponentiation`.\n\n- Leaf of `Expression` is either a `Variable` or `Literal`.\n\n- Has a `DSL` to build `Expression` tree easily.\n\n- Use `Evaluator` visitor to set values (or other expressions)\n  to variables and compute concrete value of a given `Expression`.\n\n- Use `Optimizer` visitor to optimize expression by applying\n  transformations such as `a + 0 = a`, `a * 1 = a`, `2 + 2 = 4`,\n  and many-many others.\n\n- Use `Derivativer` visitor to find an `Expression` that is\n  a precise dervivative of a given `Expression`. Then you\n  can optimize it using `Optimizer` and compute using\n  `Evaluator`.\n\n- Goal 1: Add custom functions (`sin`, `cos`, `ln`) and its  \n  derivatives to expand the application area.\n\n- Goal 2: Integrate it with `Mathematica` and create an\n  implementation of `Field` by `Expression` tree to\n  be able to run abstract algorihms on symbolic expressions.\n\n## Build \u0026 Run\n\nRequirements:\n\n- `cmake`\n- `clang 16`\n- `clang-tidy`\n- `clang-format`\n- `clangd`\n- `vscode`\n\n```bash\nbash ci/project/build.sh\nbash ci/project/test.sh\n./build/math-tool --help\n```\n\n## Reference\n\n- [ITMO University Lab reports](./doc/itmo)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvityaman-edu%2Fmath-tool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvityaman-edu%2Fmath-tool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvityaman-edu%2Fmath-tool/lists"}