The functions available from the mathfunctions package are symbolic mathematical functions or mathematical objects (in the Object-Oriented sense). This allows any functions that is created to be manipulated as a mathematical object as those found in many CAS (Computer Algebra Systems) like Mathematica or Maple.
Currently, those functions (classes) available are:
Object-Oriented Aspects of Mathematical Functions
Currently, the two major object-oriented aspects of the mathfunctions are the ability to differentiate and then the simplify procedure. The differentiate method is simple to implement, due to the nature of differentiation in that it is algorithmic. Simplification is much more difficult, often because style is important in simplication. Most of the simplication arises in the four basic mathematical operations (+,-,*,/) when the identity element (either 1 or 0) is involved in the operation.
Coding Design of the mathfunctions
The basic mathematical object is the Function object. This has two important member variables:
Also, the Function object has the following methods:
The Expression class