13 releases
0.2.0 | May 4, 2024 |
---|---|
0.1.13 | Nov 1, 2023 |
0.1.12 | Sep 8, 2023 |
0.1.6 | Aug 8, 2023 |
0.0.3 | Jul 19, 2023 |
#290 in Math
159 downloads per month
60KB
1K
SLoC
rust-poly
Numeric manipulation of real and complex polynomials.
Note: this crate is still in development and might change in the future.
Basic Goals:
- addition, subtraction and multiplication of complex and real univariate polynomials
- long division of complex and real univariate polynomials
- finding complex roots of polynomials
- indexing, slicing and iterating
- indexing by term
- indexing by coefficient
- iterating by coefficient
- iterating by term
- slicing coefficients by range
- slicing terms by range
- IntoIterator traits
- from/into traits
Future Goals:
- Generating important polynomial sequences
- Chebyshev type 1 polynomials
- Chebyshev type 2 polynomials
- Bessel polynomials
- Reverse Bessel polynomials
- Hermite polynomials
- Lagrange polynomials
- more to come...
- Serde integration
- Random integration
- Real polynomial type
- Real polynomial factoring
- Rational functions
- Simplification
Development
We don't do GitHub actions over here, because I'm a solo developer and actions are expensive.
Automation is performed using nushell scripts found in devops/
Conventional Commits
Commit messages must adhere to the conventional commits specification and additionally to the commitlint conventional config.
Breaking Changes:
- Any other type that ends in a bang, like
feat!
orfix!
. Note thatfeat!
can also be used to mark removal of features.
Minor Changes:
feat
: any new functionality that is visible to the user
Patch Changes:
fix
: a bugfixdocs
: documentation changesbuild
: changes to build scriptsci
: changes to CI pipelinestest
: adding tests or benchmarksperf
: changes that affect performancerefactor
: major refactoringrevert
: reverting a changestyle
: stylistic changeschore
: any changes that are mostly administrative, e.g. small refactors, code style, comments, semver adjustments, etc...
Changelog
The changelog is generated automatically from commit messages. During the publishing process of a new release, the generated changelog can be manually edited to include additional information or rephrase the changes.
Right now, changelogs are generated with git-cliff. Configurations for how this happens are in cliff.toml
.
Releasing a New Version
TODO
Licensing
This library is covered by the MIT license, see LICENSE.
Parts of the source code are based on the NumPy library for Python, used in accordance to the original license, see licenses/numpy/LICENSE.txt.
Dependencies
~3.5MB
~68K SLoC