GiNaC
- Clean, clear to understand code
- responsive developers
- fast!
http://www.ginac.de
{{{id=7|
///
}}}
{{{id=6|
///
}}}
{{{id=5|
///
}}}
{{{id=3|
///
}}}
{{{id=4|
///
}}}
{{{id=1|
///
}}}
What changed
- CLN -> python
- printing order
- creating functions at runtime
- archiving -> pickling
- infinity, exp
{{{id=10|
///
}}}
To get started:
http://wiki.sagemath.org/pynac/start
{{{id=20|
///
}}}
{{{id=11|
///
}}}
{{{id=12|
///
}}}
What next?
{{{id=17|
///
}}}
{{{id=16|
///
}}}
{{{id=15|
///
}}}
Symbolic functions (sage.symbolic.function)
- Function (SageObject)
- BuiltinFunction
- SymbolicFunction
Function - support setting custom fuctionality (eval, evalf, derivative, conjugate, etc.) and registering with the database
BuiltinFunction -
- pickling is easy, just store function name and arguments, since guaranteed to be in the library
- arguments converted back to original type automatically
GinacFunction - not added to the registry
SymbolicFunction
- can set arbitrary attributes (has a __dict__)
- knows how to pickle custom functionality (these have to be python functions)
{{{id=18|
///
}}}
{{{id=14|
///
}}}