FFI problem: too many arguments
nicolas cellier
ncellier at ifrance.com
Wed Feb 15 23:44:19 UTC 2006
I am trying to interface LAPACK with squeak (Smallapack).
Unfortunately, some methods will have too many arguments...
I do not feel like hand writing wrapper functions to group several arguments
in an array, it's boring...
Moreover, i would have to write this in FORTRAN, compile and link: that's
against my starting principle that a user come along with its pre-compiled
LAPACK library, and then all Smallapack code is Smalltalk.
Number of arguments is probably far enough for true Smalltalk code.
But very short for the external world.
I do not experience the same limit in VW (it must be 255 i think).
Could the limit be augmented ? Anyone has a better idea ?
--------------------------------
Here is an example (a usefull one) that fails:
xgeevWithjobvl: jobvl jobvr: jobvr n: n a: a lda: lda wr: wr wi: wi vl: vl
ldvl: ldvl vr: vr ldvr: ldvr work: work lwork: lwork info: info length:
lengthOfjobvl length: lengthOfjobvr
"
* Purpose
* =======
* SGEEV computes for an N-by-N real nonsymmetric matrix A, the
* eigenvalues and, optionally, the left and/or right eigenvectors.
* The right eigenvector v(j) of A satisfies
* A * v(j) = lambda(j) * v(j)
* where lambda(j) is its eigenvalue.
* The left eigenvector u(j) of A satisfies
* u(j)**H * A = lambda(j) * u(j)**H
* where u(j)**H denotes the conjugate transpose of u(j).
* The computed eigenvectors are normalized to have Euclidean norm
* equal to 1 and largest component real.
"
<cdecl: long 'sgeev_'( char * char * long * float * * float * * float *
* float * * float * * long * long long )>
^self externalCallFailed
More information about the Squeak-dev
mailing list
|