Mathfunctions PackageThe functions available from the mathfunctions package are symbolic mathematical functions or mathematical objects (in the ObjectOriented 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: ObjectOriented Aspects of Mathematical FunctionsCurrently, the two major objectoriented 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 mathfunctionsThe basic mathematical object is the Function object. This has two important member variables:
Also, the Function object has the following methods:
The Expression classThe Expression class is the superclass of all mathematical functions. It is an abstract class, and has three subclasses (Constant, UnaryExpression, and BinaryExpression).
