Math.NET Documentation - Free & Open Mathematics for .NET

Math.NET
RSS

Navigation




Quick Search
»
Advanced Search »

Math.NET Project


Wiki

New Admin Files Login Profile

PoweredBy
This is an early suggestion for a possible expression tree to be implemented in Palladium.

  • Symbol: Terminal Node; Either a variable or symbolic constant (that might represent a floating point number, like Pi).
  • Integer: Terminal Node; An integer number (e.g. Int32).
  • Fraction: Terminal Node; Contains two non-zero integers.
  • Addition: N-Ary Composite Node; Contains a set of expressions. (Note: a-b == a+(-1)*b)
  • Multiplication: N-Ary Composite Node; Contains a set of expressions. (Note: a/b == a*b^(-1))
  • Power: Binary Composite Node; Contains two expressions.
  • Factorial: Unary Composite Node; Contains one expression.
  • Function: N-Ary Composite Node; Contains a set of expressions.

Note that there is by design no node for substraction, division, inversion and negation, as they'll all be automatically simplified to the nodes above.

Also note that there's no floating point terminal node. This is by design, too; Use fraction instead for numbers in Q, or a constant symbol (like Pi) or variable for numbers in R. Symbols won't be expanded on simplification, however, as in algebra the term "2*pi" is exact while "6.283185308" would only be a rough approximation. Remember also that any number a user can enter is always fractional (6.283185308 is actually 1570796327/250000000).

Math.NET, a mathematical opensource .Net project by Christoph Rüegg and contributors.