[Updated] About matrix multiplication of libgsl and wrong types in its complex part
It seems that the current vapi file for libgsl (gsl.vapi) in Vala lacks BLAS (Basic Linear Algebra Subprograms) Support in original C header files. This makes a matrix of libgsl cannot perform matrix multiplication with other matrices of libgsl, which is really a pitty, as matrix multiplication is generally heavy-loaded and requires optimized algorithms. I'm currently adding BLAS Support to the gsl.vapi, and wish it could help.
PS: In playing with the file, I find that there are many serious errors in complex number part of the vapi. For example, the set and get functions of MatrixComplex are defined as (valadoc):
public double @get (size_t i, size_t j)
public void @set (size_t i, size_t j, double x)
Both double here should be Complex, of course. I will try to correct them.
Updated: I have finished the work and added the BLAS module to the recently updated gsl.vapi. Please see attached zip file. It includes the gsl.vapi with BLAS module (complex number types also corrected), and a test of its functions using the Pauli matrices identity.