{"id":26541603,"url":"https://github.com/peter-juhasz/science.mathematics.algebra","last_synced_at":"2025-07-24T01:05:33.796Z","repository":{"id":25929918,"uuid":"29371210","full_name":"Peter-Juhasz/Science.Mathematics.Algebra","owner":"Peter-Juhasz","description":"Algebra system using Roslyn as a model.","archived":false,"fork":false,"pushed_at":"2022-05-08T09:59:03.000Z","size":189,"stargazers_count":5,"open_issues_count":0,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-07T19:21:10.385Z","etag":null,"topics":["algebra","computer-algebra-system","dotnet","mathematics","science"],"latest_commit_sha":null,"homepage":"","language":"C#","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/Peter-Juhasz.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":"2015-01-16T22:41:40.000Z","updated_at":"2023-09-24T09:08:00.000Z","dependencies_parsed_at":"2022-08-24T14:17:48.669Z","dependency_job_id":null,"html_url":"https://github.com/Peter-Juhasz/Science.Mathematics.Algebra","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Peter-Juhasz/Science.Mathematics.Algebra","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Peter-Juhasz%2FScience.Mathematics.Algebra","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Peter-Juhasz%2FScience.Mathematics.Algebra/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Peter-Juhasz%2FScience.Mathematics.Algebra/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Peter-Juhasz%2FScience.Mathematics.Algebra/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Peter-Juhasz","download_url":"https://codeload.github.com/Peter-Juhasz/Science.Mathematics.Algebra/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Peter-Juhasz%2FScience.Mathematics.Algebra/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266775383,"owners_count":23982273,"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","status":"online","status_checked_at":"2025-07-23T02:00:09.312Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"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":["algebra","computer-algebra-system","dotnet","mathematics","science"],"created_at":"2025-03-22T01:39:20.247Z","updated_at":"2025-07-24T01:05:33.770Z","avatar_url":"https://github.com/Peter-Juhasz.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Science.Mathematics.Algebra\n\nComputer Algebra System (CAS) implemented in **.NET Standard 1.6** using Roslyn as a model.\n\nYou can create algebra expressions using `ExpressionFactory`, by implicit conversions (numbers and symbols) and by combining them using the basic operators.\n```C#\nusing static ExpressionFactory;\n```\n\nLet's do some symbolic computation:\n```C#\nvar x = Symbol('x');\n```\n\nYou can perform basic operations to build new expressions using the built-in operators:\n```C#\nvar expression = (x ^ 2) + 3 * x + 5;\n```\n\nDifferentiate the expression above by `x`:\n```C#\nvar differentiated = expression.Differentiate(x); // d/dx (x ^ 2) + 3 * x + 5\n```\n\nThis gives you a new kind of expression not the result yet. If you want to evaluate it, call `Simplify` which is going to return the most simple form (eliminating the zero constant from the end):\n```C#\nvar result = differentiated.Simplify(); // 2 * x + 3\n```\n\nOr you can also convert the differentiation expression to a limit:\n```C#\nvar limit = differentiated.ToLimit();\n```\n\n## Extensibility for simplification logic\n\nAn example for a simplifier which denotes that power expressions like `x ^ 1` can be simplified to `x`:\n\n```C#\npublic sealed class ExponentOneSimplifier : ISimplifier\u003cPowerExpression\u003e\n{\n    public AlgebraExpression Simplify(PowerExpression expression, CancellationToken cancellationToken)\n    {\n        if (expression.Exponent.GetConstantValue(cancellationToken) == 1)\n            return expression.Base;\n\n        return expression;\n    }\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeter-juhasz%2Fscience.mathematics.algebra","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpeter-juhasz%2Fscience.mathematics.algebra","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeter-juhasz%2Fscience.mathematics.algebra/lists"}