I have started Symbolic Algebra Project in CodePlex

http://symbolicalgebra.codeplex.com/

WHY ??

Because I am a Silly Guy WHO really like to reinvent the WHEEL π

I think this project will be the same concept of GiNaC

however being .NET natively should make my hear rest in peace this way

I am going to add derivatives also so wait for it to be released

(MAY be AfTeR long Time π π )

From → Uncategorized

1. I think you are still reinventing the wheel a bit to less here. In mathematics, every function is not simply a function, but a map from one set of symbols to another.

Let for example use the set of fingers, as children learn in preschool:

var fingers = new OrderedSet( new SymbolicVariable(null /* no finger */), new SymbolicVariable(“Right Thumb”), new SymbolicVariable(“Right Index Finger”), … );

and then we define a set of numbers:

var numbers = new OrderedSet( new SymbolicVariable(“0”), new SymbolicVariable(“1”), new SymbolicVariable(“2”), … );

finally, whe need a mapping function:

var map = new Map();
map.AddUnidirectionalMapping( fingers[0], numbers[0] ); // the finger represents a number now

[Note that the Map need a functional variant for infinite Sets]

We can then query the Map (that is our function) as:

var number = map(fingers[0]); // returns SymbolicVariable(“0”)
var number1 = map(fingers[1]); // returns SymbolicVariable(“1”)
var number1 = map(fingers[11]); // throws OutOfRangeException() or Undefined()

The definition of a set and a map is essential to mathematics, since it is the very foundation. Yet you are missing it at the moment.

Another think you would need in the next step are axioms. Axioms define the allowed calculation rules (that is the transformation of one map into another, or if the set is ordered or not). The problems might get solved as A* routing between the possible transformations.