Math Minion was originally written to be a sophisticated calculation tool that let me explore thoughts I had on the modelling of numerical problems. It has evolved into a program that I more commonly use to develop little pseudo apps for things like tracking my stock portfolio, weather information and recently my daily steps. It has also been used for more sophisticated stuff like implementing the IAPWS Steam 97 tables and dynamic simulation problems as well as some surprisingly complex string processing.
It combines a mind map style representation of the relationships between expressions, with a formula system that operates transparently on scalars, arrays and matrices. A hierarchical model system helps encapsulate calculations in logical and easily duplicated units and a flexible unit conversion system tracks the fundamental property types through calculations. This allows it to know, for instance, that some fathoms divided by a few days is in fact a velocity that should not be added to a kilogram.
If desired, HTML5 can be used to create advanced interfaces to supplement or even hide the calculation models.
Some interesting features include:
• equations that work equally well with scalars, arrays and matrices
• a function library that in addition to the usual suspects includes:
- matrix multiplication, inversion, eigenvalues, eigenvectors, transpose and redimensioning
- comparison (eq, ne, lt, ge, if etc)
- string functions (split, join, regular expressions, etc.)
- interpolation, indexof, select
- complex number and statistical functions
- time, sorting, random, web reading and many more
• an innovative unit conversion system with automatic dimensional analysis
• data tables for storing and manipulating tabular data whether numeric or string
• models and model arrays for information and calculation encapsulation
• a solver for one or more nonlinear equations
• an optimizer
• an ordinary differential equation solver
• an iterator tool.
• 2D and 3D graphs.
• share sessions between iOS and Mac devices using iCloud
• Can store and retrieve sessions from Dropbox
• Is simply being shared with no advertising, data harvesting or other commercial aspirations.