{"id":13779478,"url":"https://github.com/mathnet/mathnet-symbolics","last_synced_at":"2025-04-05T13:09:24.788Z","repository":{"id":15518340,"uuid":"18252667","full_name":"mathnet/mathnet-symbolics","owner":"mathnet","description":"Math.NET Symbolics","archived":false,"fork":false,"pushed_at":"2024-01-15T18:54:49.000Z","size":84202,"stargazers_count":339,"open_issues_count":49,"forks_count":65,"subscribers_count":28,"default_branch":"master","last_synced_at":"2024-05-18T21:52:30.142Z","etag":null,"topics":["computer-algebra","dotnet","fsharp","math","mathnet","symbolic-manipulation"],"latest_commit_sha":null,"homepage":"http://symbolics.mathdotnet.com","language":"F#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mathnet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","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":"2014-03-29T22:50:41.000Z","updated_at":"2024-07-05T13:38:54.266Z","dependencies_parsed_at":"2023-12-18T11:24:50.536Z","dependency_job_id":"cdfbcf68-a2ec-4bf7-8d86-0a6180fbed8a","html_url":"https://github.com/mathnet/mathnet-symbolics","commit_stats":null,"previous_names":[],"tags_count":28,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathnet%2Fmathnet-symbolics","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathnet%2Fmathnet-symbolics/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathnet%2Fmathnet-symbolics/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathnet%2Fmathnet-symbolics/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mathnet","download_url":"https://codeload.github.com/mathnet/mathnet-symbolics/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247339158,"owners_count":20923014,"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":["computer-algebra","dotnet","fsharp","math","mathnet","symbolic-manipulation"],"created_at":"2024-08-03T18:01:05.662Z","updated_at":"2025-04-05T13:09:24.772Z","avatar_url":"https://github.com/mathnet.png","language":"F#","readme":"Math.NET Symbolics\n==================\n\nMath.NET Symbolics is a basic open source **computer algebra library for .NET, Silverlight and Mono** written entirely in F#.\n\nThis project does *not* aim to become a full computer algebra system. If you need such a system, have a look at Axiom or Maxima instead, or for proprietary commercial solutions Maple, Mathematica or Wolfram Alpha.\n\nYou'll find a large set of expression and algebraic operator examples in the [Unit Tests](src/Symbolics.Tests/Tests.fs) (yes, they're actually very readable). A few examples:\n\n* `(3Q + 2)*4/6` → `10/3`.\n* `(a/b/(c*a))*(c*d/a)/d` → `1/(a*b)`\n* `(a+b)/(b+a)**2` → `1/(a + b)`\n* `Algebraic.expand ((a+b)**3)` → `a^3 + 3*a^2*b + 3*a*b^2 + b^3`\n* `Exponential.expand (exp(2*x+y))` → `exp(x)^2*exp(y)`\n* `Exponential.contract (exp(x)*(exp(x) + exp(y)))` → `exp(2*x) + exp(x + y)`\n* `Exponential.simplify (1/(exp(x)*(exp(y)+exp(-x))) - (exp(x+y)-1)/((exp(x+y))**2-1))` → `0`\n* `Trigonometric.expand (sin(2*x))` → `2*sin(x)*cos(x)`\n* `Trigonometric.contract (sin(x)**2*cos(x)**2)` → `1/8 - (1/8)*cos(4*x)`\n* `Trigonometric.simplify ((cos(x)+sin(x))**4 + (cos(x)-sin(x))**4 + cos(4*x) - 3)` → `0`\n* `Polynomial.polynomialDivision x (x**3 - 2*x**2 - 4) (x-3)` → `(3 + x + x^2, 5)`\n* `Polynomial.polynomialExpansion x y (x**5 + 11*x**4 + 51*x**3 + 124*x**2 + 159*x + 86) (x**2 + 4*x + 5)` → `1 + x + (2 + x)*y + (3 + x)*y^2`\n* `Polynomial.gcd x (x**7 - 4*x**5 - x**2 + 4) (x**5 - 4*x**3 - x**2 + 4)` → `4 - 4*x - x^2 + x^3`\n* `Rational.rationalize (1+1/(1+1/x))` → `(1 + 2*x)/(1 + x)`\n* `Rational.simplify x ((x**2-1)/(x+1))` → `-1 + x`\n\n```fsharp\nlet taylor (k:int) symbol x a =\n    let rec impl n nf acc dxn =\n        if n = k then acc else\n        impl (n+1) (nf*(n+1)) (acc + (dxn |\u003e Structure.substitute symbol a)/nf*(symbol-a)**n) (Calculus.differentiate symbol dxn)\n    impl 0 1 zero x |\u003e Algebraic.expand\n\ntaylor 3 x (1/(1-x)) 0Q       → 1 + x + x^2\ntaylor 3 x (1/x) 1Q           → 3 - 3*x + x^2\ntaylor 3 x (ln(x)) 1Q         → -3/2 + 2*x - (1/2)*x^2\ntaylor 4 x (ln(x)) 1Q         → -11/6 + 3*x - (3/2)*x^2 + (1/3)*x^3\ntaylor 4 x (sin(x)+cos(x)) 0Q → 1 + x - (1/2)*x^2 - (1/6)*x^3\n```\n\n### Literature\n\n* Computer Algebra and Symbolic Computation - Elementary Algorithms, Joel. S. Cohen\n* Computer Algebra and Symbolic Computation - Mathematical Methods, Joel. S. Cohen\n* Modern Computer Algebra, Second Edition, Joachim von zur Gathen, Jürgen Gerhard\n* Symbolic Integration I - Transcendental Functions, Second Edition, Manuel Bronstein\n* Concrete Mathematics, Second Edition, Graham, Knuth, Patashnik\n* ... and of course the fundamental theory by Euclid, Newton, Gauss, Fermat and Hilbert.\n\n### Project\n\nWindows (.NET): [![AppVeyor build status](https://ci.appveyor.com/api/projects/status/6u71stf85qudifvv/branch/master)](https://ci.appveyor.com/project/cdrnet/mathnet-symbolics)\n\nMaintained by [Christoph Rüegg](https://christoph.ruegg.name/) and part of the [Math.NET initiative](https://www.mathdotnet.com) (see also [Math.NET Numerics](https://numerics.mathdotnet.com/)). It is covered under the terms of the [MIT/X11](https://mathnetnumerics.codeplex.com/license) open source license. See also the [license](LICENSE.md) file in the root folder. **We accept contributions!**\n\n* [**Project Website**](https://symbolics.mathdotnet.com/)\n* [Source Code](https://github.com/mathnet/mathnet-symbolics)\n* [Release Notes](https://symbolics.mathdotnet.com/ReleaseNotes.html)\n* [Documentation](https://symbolics.mathdotnet.com/)\n* [Issues \u0026 Bugs](https://github.com/mathnet/mathnet-symbolics/issues)\n* [Discussions](https://discuss.mathdotnet.com/c/symbolics) | [Stack Overflow](https://stackoverflow.com/questions/tagged/mathdotnet) | [Twitter](https://twitter.com/MathDotNet)\n","funding_links":[],"categories":["Data Science"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmathnet%2Fmathnet-symbolics","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmathnet%2Fmathnet-symbolics","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmathnet%2Fmathnet-symbolics/lists"}