Expand description
Cycle is a symbolic mathematics library based on expression trees that focuses on correct, flexible and comprehensive manipulation of mathematical objects. Cycle can be used to study elementary and advanced mathematics, mostly in applied domains. It is in particular well suited for education and research in many areas, including for example physics, astronomy, biology and artificial intelligence.
Important note
- Cycle is a prototype.
- The API is constantly evolving and substantial changes are expected prior to stable releases (x.0.0).
- Feel free to suggest problems that could help to improve the library and provide realistic use cases.
- Help is welcomed.
Mathematical objects
Cycle gives the ability to manipulate mathematical objects. This forms the basis of a symbolic system and includes the following types of expressions:
Symbol
represents any mathematical object.Natural
,Integer
andRational
represents numbers in the arithmetic sense.Constant
represents mathematical constants.Expr
methods represents general functions and operators.
Examples of practical use of these objects is demonstrated in the tests/.
Resources
Modules
cycle_lang
Parsing, validation and generation of mathematical expressions.
cycle_num
Scientific computing on numerical data.
cycle_plot
Generating plots from valued expressions.
Higher order generic mathematical types.
Structs
An indeterminate form.
An integer ℤ.
A natural ℕ.
A rational ℚ.
An arbitrary variable.
Enums
A list of important mathematical constants.
A countable number (excluding irrational and complex numbers).
The expression tree.
Traits
A trait for expression manipulation.
A marker trait for expression nodes.
A trait describing the expression’s behavior based on abstract algebra principles.
Type Definitions
Type alias for a mathematical resulting form.