MPL stands for Multi Precision Lab and is my main research topic. In short it is a compiler and integrated development suite to work with various numerical libraries developed by our research group CANT. The compiler/interpreter aims to be compatible in syntax and semantics with MATLAB. This way we hope to target many researchers and students in the Computer Science field who are already familiar with this language. The objective is to give people who encounter problems with standard IEEE double precision the ability to experiment with other number representations.

For the arithmetic types there is a little overview that shows what automatic casting is implemented to minimize loss of precision when mixing types. The top is the most elementary type and the bottom type ICRational (Interval Complex Rational) is the most extended type:

Description of the different types:

  • MpIeee : Multiprecision and Multiradix type called MpIeee (precision, radix, rounding are all user defineable and in theory only limited by available memory)
  • IMpIeee : Interval MpIeee numbers.
  • CMpIeee : Complex MpIeee numbers
  • ICMpIeee : Interval Complex MpIeee numbers
  • Rational : Rational numbers only limited by memory
  • IRational : Inverval Rational numbers
  • CRational : Complex Rational numbers
  • ICRational : Interval Complex Rational numbers
  • BigInt : Software integer numbers, again not limited in size but only by available memory
  • double: this mode gives almost full compatibility with native MATLAB
  • ...

Finally there are a series of functions that need to be implemented (we call it the matlab kernel), take a look at the kernel functions page.