[Arjen Markus] (28 december 2009) I have been contemplating this for several years now, but I finally made a start with a wrapper extension to get the functionality of LAPACK into Tcl. I started off with two simple BLAS routines (BLAS is the more basic library that underlies LAPACK - '''b'''asic '''l'''inear '''a'''lgebra '''s'''ystem, if I am not mistaken) and the Fortran wrapper you can find in my ftcl library (see [http://ftcl.sf.net]). Immediately I ran into design issues: Take the routine ''dapxy'', which computes a*X + Y (a a scalar, X and Y vectors) and returns the result in Y. The interface is such that X and Y could also be two-dimensional arrays (matrices) so that you could use this routine to update the rows and columns of a matrix Y using a vector X ''o'' a matrix X. Questions that arise: * Is that flexibility something we want in the Tcl command as well? * Do we want to update a vector or should the Tcl command simpy return the result? * Do we want to expose the full interface? That is the most flexible, but it is also distinctly non-Tcl Right now, my answers are: * We merely want to pass two vectors X and Y, not columns or rows of a matrix * We do not want to update any arguments - so the Tcl command will return the resulting vector and it is up to the user to put it into the original Y argument, if he/she wants to. * The interface should be as simple as: set result [daxpy $a $x $y] (The Fortran interface is: call dapxy( n, a, dx, incx, dy, incy ) Because of incx and incy, you can pass two-dimensional arrays such that only a part is updated.) Another question is: should we wrap all routines (some 1500!) or just the more commonly used ones? (If so, which ones?) <>Category Mathematics|Category Numerical Analysis