[GRASS-dev] gmath/gpde Patch for grass6.5 and grass7

Soeren Gebbert soerengebbert at googlemail.com
Wed Aug 12 07:10:25 EDT 2009

Dear devs,
i have created a patch for grass6.5 and grass7 which modifies the gmath and
gpde libraries and
introduce parts of the ccmath library into grass to get rid of the numerical
recipes code in the gmah library.

The following changes are done:

1.) I have moved the linear equation solver code from gpde lib to gmath lib
2.) I have implemented blas level 1, 2 and 3 algorithm in gmath lib
3.) I have modified the gmath solver to use the grass blas implementation
4.) I have implemented a wrapper for ATLAS blas level 1 algorithms
5.) I have updated the gpde library tests
6.) I have implemented gmath library tests for the numerical part
7.) I have modified the groundwater flow modules to use the gmath solver
8.) I have added a new library to grass called ccmath (LGPL license) to
replace the NR algorithms of the gmath library in the future

The CCMATH is a mathematics library, coded in C, that contains functions for
linear algebra,
numerical integration, geometry and trigonometry, curve fitting, roots and
Fourier analysis, simulation generation, statistics, special functions,
sorts and searches,
time series models, complex arithmetic, and high precision computations. [

I have extracted the gmath relevant algorithms out of the ccmath library
(linear algebra and eigenvalue analyses)
and modified the grass ccmath.h to define only the extracted algorithms. The
ccmath library will be included by the gmath.h file only.
All ccmath functionality will be wrapped by the gmath library (work in

The ccmath library in grass is located  in lib/ccmath.

The integration of the library was the first step.
The next steps which should be done (by me) are:
1.) Creating a wrapper around the ccmath library to use the grass copy or an
extern ccmath lib within grass via the gmath lib.
2.) Replacing the NR code with the ccmath version (via gmath wrapper).
3.) Implementing tests for the ccmath lib.
4.) Replacing redundant numerical code in grass modules with the gmath

To enable the usage of extern versions of the ccmath or ATLAS library, the
configure procedure need to be modified.
I have no clue how to do this, but i will try if somebody can point me in
the right direction. :)

The patches and a list of changed, removed and added files are available


The patches are based on the latest svn versions of grass7 and grass6.5.

In case the developers don't have any objections against the patch, i would
like to see them commited to the svn repositories.
Because i do not have write permissions on the osgeo grass reporitory, a
developer with write acces must do this please.

To verify my changes in grass and to check for broken dependencies, i have
updated the GRASS Test Suite for grass65.
The test suite is available here:

The test results, inclusively the gpde and gmath tests are available here:

Any questions are welcome,
best regards
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/grass-dev/attachments/20090812/8ca07b64/attachment-0001.html

More information about the grass-dev mailing list