Math.NET Classic - Features
New Features
NEW: Integration
Additionally to the Derive operatore, the integration of simple expressions to scalar and complex variables is now supported, too. I'll add support for more and more patterns in the coming releases...
Examples:
int(x^n,x,a,b) returns: (b^(1+n)-a^(1+n))/(1+n)
int(sin(a*x)*b/(a^3*cos(a*x)),x) returns: -ln(cos(a*x)/a)*b/a^4
NEW: Literals
Using the new literal type, Math.NET can also work with strings. Just like on the other types, one can also store literals in variables, append operators upon them like concat, repeat, count character occurrence and more.
NEW: Digital Curcuits and State Machine
Using the new types Bit and Bus, Math.NET joins the world of digital curcuits. Common gates lake XOR and NAND are available for Bits and whole Busses. Beside of a multiplexer operator, there's also an adder, an adder/substracter engine as well as an ALU and an accumulator. The StateMachine typ connects busses to finite state machines. See also my CMOS Project
Examples:
t:btrue() returns: True
f:bfalse() returns: True
unlock(t) returns: True
unlock(f) returns: True
in:{f,t} returns: True
in+left(in) returns: {1,1} (left() means a left bitshift)
state:{f,f} returns: True
m:state(in,state,{xnor(get(in,1),xor(get(state,1),get(state,0))), xor(get(in,0),xnor(get(state,1),get(state,0)))}, {get(state,1),get(state,0)}) returns: True
m returns: {0,0}
propagate(m) returns: True - m = {1,0}
propagate(m) returns: True - m = {0,1}
in:{t,f} returns: True
propagate(m) returns: True - m = {1,0}
in:{t,t} returns: True
propagate(m) returns: True - m = {1,1}
propagate(m) returns: True - m = {0,0}
NEW: Derive Operator & Taylor Approximation
The new d-Operator can directly calculate the n-th derivation of the given term. The Jet-operator can calculate the n-th Taylor approximation (n-Jet).
Examples:
d(sin(x),x,2) returns: -sin(x)
jet(exp(a),a,0,x,5) returns: 1+x+x^2/2+x^3/6+x^4/24+x^5/5!
jet(sin(a),a,0,x,5) returns: x-x^3/6+x^5/5!
jet(sin(a),a,0,x,n) returns: sum((x^k*d(sin(a),a,k))/k!,k,0,n)
NEW: Functional Operators
Well known from functional programming languages are the operatoren Map und Reduce:
Examples:
map(a*ln(a),a,[0,1,x,exp(x)]) returns: [0,0,x*ln(x),exp(x)*x]
reduce(a+2*b,a,b,[x1,x2,x3,x3]) returns: x1+2*(x2+2*(x3+2*x4))
sum((x+y)^2,x,0,2) returns: y^2+(1+y)^2+(2+y)^2
Variables for all types
Variables now can be used to store operators of any type, even matrices and vectors (as far as the specific classes are implemented). There's a new assignment operator ':' and a new function 'lock' and 'unlock' to substituate the variable as well as 'del' to reset them.
Example:
a:sin(2*I) returns: True
del(a) returns: True
a:[I,sin(I),sin(2*I)] returns: True
a*a returns: 1+(sinh(1))^2+(sinh(2))^2
Complex Linear Algebra
Additionally to the existing scalar linear algebra implementation, Math.NET now also supports complex linear algebra with ComplexVector and ComplexMatrix as new base types.
Term Conversion
An identity map based term conversion framework that can be used to convert e.g. trigonometric terms to exponential ones. Another important usage is its advanced simplification conversion
Simplification Example:
(a*x^n)/x
to
a*x^(n-1)
Linear Algebra
I implemented a new Vector/Matrix/Tensor architecture supporting clean Vector and Matrix Algebra. Beside of determinants, forward- and backward substitution and more it also supports solving regular and irregular linear systems (introducing new parameters if needed).
Matrix Multiplication Example:
[[x,2,3],[4,5,6],[7,y,9]]*[[1,2,z]]
to
[[8+x+7*z,12+y*z,15+9*z]]
Gauss Elimination Example:
MatrixGauss([[1,2,3],[4,5,6],[7,8,9]])
to
[[1,0,0],[4,-3,0],[7,-6,0]]
Irregular linear system solving example:
MatrixSim([[-2,0],[a,0],[3,1]] , [2,b])
to
[(2-t0*a-b*3)/-2,t0,b]
Logic Algebra
Math.NET got an additional set of new operators: and, or, not, nand, nor, xor, xnor
IMPROVED: Basic Simplification
Math.NET now supports improved basic term simplification. For example, it simplifies the term
[x1,1,2^2+1]*[0,y2,z2]
to
y2+5*z2
and the complex term
sin(I)
to
I*sinh(1)
Differential Math
Differential Math is now supported by Math.NET. It's able to derive from any given scalar expression to a given variable (usually x). For example, if you request the following expression (containing Sekans, Trigonometry) deriven to x:
sec(x^(x+2)-y)
it returns the following:
(sec((x^(x+2))-y)*tan((x^(x+2))-y))*((x^(x+2))*(ln(x)+((x+2)/x)))
Full Complex Support
Math.NET uses the I notation for complex numbers. For example, you can work with expressions like:
2+I*3
(2+I)/(I*4)
sin(2*I)
exp(I)
|1+I*2| (| = Absolute)
INFIX Parser
Now you can parse/evaluate string expressions just as given above directly using the new Infix Parsing Provider. It also supports parsing Matrices, Lists, etc.
Builtin Symbols
Builtin Types
:. IScalarExpression: scalars like 1, -2.3, pi()^2
:. IComplexExpression: complex numers like 1+2*I,(1+I)^2
:. ILiteralExpression: a string expression like "abc", 2*"x"
:. IVectorExpression: an n-dimensional vector of scalars
:. IMatrixExpression: an n*m dimensional matrix of scalars
:. ITensorExpression: a tensor of scalars
:. IComplexVector: an vector of complex expressions
:. IComplexMatrix: a matrix of complex expressions
:. IProcExpressions: procedures that may be executed
:. IBitExpression: a two state bit (0=false or 1=true)
:. IBusExpression: a bus of n bits (-> digital circuits)
:. IStateMachineExpression: a formal finite state machine
:. IListExpression: a list of scalars
:. IMatrixListExpression: a list of matrices of scalars
:. ITripleExpression: triples, used by 3d geometry objects as 3d vectors
:. IGeometryObject: 3d geometry objects like points, planes, ...
Builtin Operators
Variables:
:. Scalar, Complex, Literal, Bit, Bus, StateMachine
:. Vector, Matrix, ComplexVector, ComplexMatrix
General Scalar:
:. Addition, Substraction, Division, Multiplication, Power, Root, Negative
:. Absolute, Sign, Modulo, Factorial, Sign, Greatest Common Divisor
:. Round, IEEE754 Round (bankers rounding), Ceiling, Floor
Scalar Relations:
:. GreaterThan, LessThan, Equal
Scalar Exponential/Logarithm:
:. Natural Logarithm (Base e)
:. Common Logarithm (Base 10)
:. General Logarithm (Base as 2nd Parameter)
:. Exponential (e^x)
Scalar Trigonometry:
:. Sinus, Cosinus, Tangens, Cotangens, Sekans, Cosekans
:. Arcsinus, Arccosinus, Arctangens, Arccotangens, Arcsekans, Arccosekans
Scalar Hyperbolic Trigonometry:
:. Sinus, Cosinus, Tangens, Cotangens, Sekans, Cosekans
:. Areasinus, Areacosinus, Areatangens
Infinitesimal:
:. Derive, TaylorJet, Integrate (with/without borders)
Functional:
:. Sum, Map, Reduce (scalar/complex vectors/matrices/lists)
Logic:
:. And, Or, Not, Nand, Nor, Xor, Xnor, Implication
General Complex:
:. Addition, Substraction, Division, Multiplication, Negative
:. Power, Absolute, Argument, Sign, Real, Imag, Conjugate
Complex Exponential/Logarithm:
:. Natural Logarithm (Base e)
:. Common Logarithm (Base 10)
:. General Logarithm (Complex or Real Base as 2nd Parameter)
:. Exponential (e^(x+I*y))
Complex Trigonometry:
:. Sinus, Cosinus, Tangens, Cotangens, Sekans, Cosekans
Complex Hyperbolic Trigonometry:
:. Sinus, Cosinus, Tangens, Cotangens, Sekans, Cosekans
Linear Algebra: Vector:
:. DotProduct, CrossProduct, Multiplication, Addition, Substraction, Angle, Negative
:. Euclidean-, Infinity- and P-Norm, MaxElement, Get, Set, Identity
Linear Algebra: Matrix:
:. Multiplication, Division, Addition, Substraction, Negative, Transpone, Conjugate
:. Functional Row(s) & Column(s) Insertion, Get, Set, GetRow, GetCol, Identity
:. Left and Right Triangle (in/exclusive), Forward- and BackwardSubstitution
:. Gauss Elimination, Determinant, LR Split
:. Sim: Solve regular and irregular linear Systems
Complex Linear Algebra: Vector:
:. DotProduct, Negative, Addition, Substraction, Multiplication, Conjugate
Complex Linear Algebra: Matrix:
:. Negative, Addition, Substraction, Multiplication, Division
Triples:
:. Crossproduct, DotProduct (Scalarproduct)
:. Addition, Substraction
:. Stretching (multiplication with scalar)
:. Negative, Absolute
Literals:
:. Addition (Concat), Substraction (Remove)
:. Multiplication with scalar (Repeat), Count Occurrence
Digital Bit:
:. Not, And, Or, Nand, Nor, Xor, Xnor, Implication
Digital Bus:
:. Bitwise Not, And, Or, Nand, Nor, Xor, Xnor, Implication
:. Get, Set, Left & Right Shift
:. Multiplexer, Full Adder & Substractor, Arithmetic Unit, Arithmetic Logic Unit (ALU)
:. Finite State Machine, Propagate
Term Conversion
:. Advanced Simplify
Builtin Geometry Objects
:. Point3D
:. Line3D
:. Plane3D
Geometry Operations:
:. Distance
:. Cutting
:. Mirroring
Builtin Parsing Providers
:. Infix Parser
:. Postfix Parser (not all types supported yet)
In Development:
:. Prefix
:. MathML 2.0 (planing) |

:. Overview
:. Download
:. FAQ
:. Features
:. Documentation
:. Demos
:. Links
:. License
Math.NET Symbolics
:. Symbolics Overview
:. Symbolics: Yttrium
Math.NET Project
:. Overview
:. Project News Blog
:. Symbolics
:. Numerics
:. SignalProcessing
Contact
:. contact form
SourceForge Workspace
 |