Dear devs,<br>i have created a patch for grass6.5 and grass7 which modifies the gmath and gpde libraries and <br>introduce parts of the ccmath library into grass to get rid of the numerical recipes code in the gmah library.<br>
<br>The following changes are done:<br><br>1.) I have moved the linear equation solver code from gpde lib to gmath lib<br>2.) I have implemented blas level 1, 2 and 3 algorithm in gmath lib<br>3.) I have modified the gmath solver to use the grass blas implementation<br>
4.) I have implemented a wrapper for ATLAS blas level 1 algorithms<br>5.) I have updated the gpde library tests<br>6.) I have implemented gmath library tests for the numerical part<br>7.) I have modified the groundwater flow modules to use the gmath solver<br>
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<br><br>The CCMATH is a mathematics library, coded in C, that contains functions
for linear algebra, <br>numerical integration, geometry and trigonometry,
curve fitting, roots and optimization, <br>Fourier analysis, simulation
generation, statistics, special functions, sorts and searches, <br>time
series models, complex arithmetic, and high precision computations. [<a href="http://ostatic.com">ostatic.com</a>]<br><br>I have extracted the gmath relevant algorithms out of the ccmath library (linear algebra and eigenvalue analyses)<br>
and modified the grass ccmath.h to define only the extracted algorithms. The ccmath library will be included by the gmath.h file only.<br>All ccmath functionality will be wrapped by the gmath library (work in progress).<br>
<br>The ccmath library in grass is locatedĀ  in lib/ccmath.<br><br>The integration of the library was the first step. <br>The next steps which should be done (by me) are:<br>1.) Creating a wrapper around the ccmath library to use the grass copy or an extern ccmath lib within grass via the gmath lib.<br>
2.) Replacing the NR code with the ccmath version (via gmath wrapper).<br>3.) Implementing tests for the ccmath lib. <br>4.) Replacing redundant numerical code in grass modules with the gmath implementations <br><br>To enable the usage of extern versions of the ccmath or ATLAS library, the configure procedure need to be modified.<br>
I have no clue how to do this, but i will try if somebody can point me in the right direction. :)<br><br>The patches and a list of changed, removed and added files are available here:<br>grass6.5:<br><a href="http://www-pool.math.tu-berlin.de/~soeren/grass/files/patch_gpde_gmath_ccmath_grass6_devel_2009_08_11.diff">http://www-pool.math.tu-berlin.de/~soeren/grass/files/patch_gpde_gmath_ccmath_grass6_devel_2009_08_11.diff</a><br>
<a href="http://www-pool.math.tu-berlin.de/~soeren/grass/files/patch_gpde_gmath_ccmath_grass6_devel_2009_08_11_file_status.txt">http://www-pool.math.tu-berlin.de/~soeren/grass/files/patch_gpde_gmath_ccmath_grass6_devel_2009_08_11_file_status.txt</a><br>
<br>grass7:<br><a href="http://www-pool.math.tu-berlin.de/~soeren/grass/files/patch_gpde_gmath_ccmath_grass7_2009_08_11.diff">http://www-pool.math.tu-berlin.de/~soeren/grass/files/patch_gpde_gmath_ccmath_grass7_2009_08_11.diff</a><br>
<a href="http://www-pool.math.tu-berlin.de/~soeren/grass/files/patch_gpde_gmath_ccmath_grass7_2009_08_11_file_status.txt">http://www-pool.math.tu-berlin.de/~soeren/grass/files/patch_gpde_gmath_ccmath_grass7_2009_08_11_file_status.txt</a><br>
<br>The patches are based on the latest svn versions of grass7 and grass6.5.<br><br>In case the developers don&#39;t have any objections against the patch, i would like to see them commited to the svn repositories.<br>Because i do not have write permissions on the osgeo grass reporitory, a developer with write acces must do this please.<br>
<br>To verify my changes in grass and to check for broken dependencies, i have updated the GRASS Test Suite for grass65.<br>The test suite is available here:<br><a href="http://www-pool.math.tu-berlin.de/~soeren/grass/GRASS_TestSuite/GRASS_Testsuite_0.2.0.14.tar.bz2">http://www-pool.math.tu-berlin.de/~soeren/grass/GRASS_TestSuite/GRASS_Testsuite_0.2.0.14.tar.bz2</a><br>
<br>The test results, inclusively the gpde and gmath tests are available here:<br><a href="http://www-pool.math.tu-berlin.de/~soeren/grass/GRASS_TestSuite/html_grass-6.4/">http://www-pool.math.tu-berlin.de/~soeren/grass/GRASS_TestSuite/html_grass-6.4/</a><br>
<br><br>Any questions are welcome,<br>best regards<br>Soeren<br><br><br><br><br><br>