# Contributor - Multiprecision / Arbitrary precision

## Current status

This subject has been started in the context of the Google Summer of Code 2009. This project is open for the Google Summer of code 2010 in order to provide a finalized and stable release of this module. The work is available here: http://forge.scilab.org/index.php/p/mpscilab/

### Summary of the work

Currently most of the basic matrix algebra function have been implemented in the underlying mathematical computation library. A good majority of those basic operations have been plugged into the Scilab toolbox. Many advanced matrix operations are currently done or partly implemented. Moreover, there was some effort toward file i/o and multi-processing. The major tasks left are as follow :

- Finish implementing the Scilab toolbox to contain every basic matrix operations
- Implement full operator overloading
- Design and implement the integrated garbage collector
- Expand the mutli-processing capabilities using OpenMP
- Toolbox documentations and eventually the API docs
- More advanced matrix operations (FFT, QR decomposition, householder transform etc.)
- High performance linear equation solver, and optimization routines
- Advanced statistic functions (Nth order moment, principal components analysis ... )

Applicants should specify the area they are more interested in working for the project.

### Who should apply

Again like last year if a student is chosen to work on this project he will be part of a team including the mentor(s) working actively on the toolbox development. Successful applicants should have most of the following skills and experience. Applicants should reflect their strength taking this list into consideration.

#### Necessary skills

- Strong understanding of computational mathematic and advanced matrix algebra
- Very strong skills in strict ISO C

#### Recommended skills

While the following are not required they should be considered a plus toward a successful application.

- Basic understanding of GMP and MPFR
- Practical experience using Scilab
- Basic knowledge of parallel programming especially using OpenMP (If the student is interested in the parallel computing facet of the toolbox)
- General Linux/Unix knowledge
- Working knowledge of GCC and associated build tools, ld, gmake etc.
- Basic working knowledge of GIT would be appreciated
- Technical writing skills in English would be useful

## Information for the GSoC 2009

DToday, some libraries dedicated to multi-precision computation exist:

http://gmplib.org The GMP library;

http://www.mpfr.org/ The MPFR library.

An analysis of the matlab interface to the MPFR library can be found here: http://www.loria.fr/~zimmerma/talks/mpfr-scilab.pdf

A matlab toolbox can be found here: http://www.thedigitalmap.com/~carlos/software/index.htm

A binary toolbox for scilab: xnum_pack which allows to perform multi-precision computation.