Crate cycle

source · []
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:

Examples of practical use of these objects is demonstrated in the tests/.

Resources

Modules

langcycle_lang

Parsing, validation and generation of mathematical expressions.

numcycle_num

Scientific computing on numerical data.

plotcycle_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

A recursive Tree expression.

Type alias for a mathematical resulting form.