Summer of Code - Getting Started: Difference between revisions

Line 327: Line 327:


'''Possible Mentor''': Patrick Noffke <patrick.noffke@gmail.com>
'''Possible Mentor''': Patrick Noffke <patrick.noffke@gmail.com>
=== High Precision Arithmetic Computation ===
The Linear Algebra Fortran libraries used by Octave make use of of single (32 bits) and double (64 bits) precision floating point numbers. Many operations are stopped when matrices condition number goes below 1e-16: such matrices are considered as ill-conditionned. There are cases where this is not enough, for instance simulations implying chemical concentrations covering the range 10^4 up to 10^34. There are a number of ways to increase the numerical resolution, like f.i. make use of 128 bits quadruple precision numbers available in GFortran. A simpler option is to build an interface over Gnu MPL arbitrary precision library, which is used internally by gcc and should be available on any platform where gcc runs. Such approach has been made available for MatLab under the name mptoolbox and is licensed under a BSD license. The author kindly provided a copy of the latest version and agreed to have it ported under Octave and re-distributed under GPL v3.0
The architecture consists of an Octave class interface implementing "mp" (multi-precision) objects. Arithmetic operations are forwarded to MPL using MEX files. This is totally transparent to the end user, except when displaying numbers. This implementation needs to be ported and tested under Octave.
'''Required skills''': Octave classes and object programming. C for understanding the MEX glue code.
'''Difficulty''': medium.
'''Potential mentor''': Pascal Dupuis
Anonymous user