BLAS is not documented in mathematica. Using
?LinearAlgebra`BLAS`*
gives
But None of the function has a detailed usage information
Click any of the function for example, GEMM
, gives
At first I thought, BLAS in mma is belong to MKL, so I look up the usage in MKL reference manual, it says
call gemm ( a , b , c [ , transa ][ , transb ] [ , alpha ][ , beta ])
the last four parameters are all optional. But in fact, if I run
LinearAlgebra`BLAS`GEMM[a, b, c]
mma tells me, it needs 7 arguments
LinearAlgebra
BLAS
GEMM::argrx: LinearAlgebraBLAS
GEMM called with 3 arguments; 7 arguments are expected.
if I run
LinearAlgebra`BLAS`GEMM[a, b, c, "N", "N", 1., 0.]
mma tells
LinearAlgebra
BLAS
GEMM::blnsetst: The argument a at position 1 is not a string starting with one of the letters from the set NTCntc.
so the order of the arguments is not the same as MKL reference!!
How should I know the correct order of arguments without trying several times? Are there detailed usage information of undocumented function can be found inside mma?
I was wondering if we could extract usage from the content of the message tag like argrx
or blnsetst
? But I don't know how to do it.
System`
functions. Their usage might change, etc. -- Personally, I think Oleksandr R. showed the way to those who are not adverse to work. Perhaps it's a coincidence, but the documentation for GEMM indicates 7 arguments. Someone who is truly curious would follow that up. $\endgroup$LinearAlgebra`BLAS`GEMM["N", "N", 2, a, b, 3., c]
-- it doesn't seem that hard to figure out, given the several paradigms of the?gemm
functions.... $\endgroup$LinearAlgebra`LAPACK`*
after this? $\endgroup$