FFI problem: too many arguments
Andreas Raab
andreas.raab at gmx.de
Thu Feb 16 03:13:26 UTC 2006
There is no fix for this problem. In Squeak, the number of parameters
for a method invocation is limited to 15.
Cheers,
- Andreas
nicolas cellier wrote:
> 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
|