The ACML may be referring you to the LAPACK Users' Guide, which is
indeed available on the Netlib.
> Also anyone have any idea on what is INCX and LDA in the BLAS and LAPACK
> routines. These fields doesn't make sense to me. Please help me with these
> questions.
LDA = "leading dimension of A"
INCX = stride between elements of the vector X
mfh
A good starting point is the LAPACK Users Guide
http://www.netlib.org/lapack/lug/
Then just open the file with the Fortran subroutine, for example
http://www.netlib.org/lapack/double/dgesv.f
At the beginning there is pretty good description of the parameters.
> Also anyone have any idea on what is INCX and LDA in the BLAS and LAPACK
> routines. These fields doesn't make sense to me. Please help me with these
> questions.
LDA is so called the leading dimension. It comes from Fortran, well, you
have to learn a bit of Fortran to use BLAS and LAPACK. Yet, it is pretty
easy, Fortran 77 is very simple language (clearly you do not have to
understand FORMAT). A very good paper that should excite you to do it is
Real Programmers Don't Use Pascal
http://www.pbm.com/~lindahl/real.programmers.html
So, a two-dimensional array is stored as one dimensional array and it is
very important to understand that a Real Programmer stores the array by
columns. A Real Programmer also does not like dynamic memory allocation,
well, in Fortran there was no dynamic memory allocation anyway, so
actually it was no choice. A trick was to allocate more memory during
compile time and then to use part of it during run-time, for example
double precision a(1000,1000)
and then use only 10x10, or 20x20 or something like this. It was okay
until one needed to pass the array to the subroutine because it must
know the first real dimension and it was clearly not available in the
one dimensional array that was passed to the subroutine. So it was
necessary to pass the leading dimension, in the example above 1000. In
dgesv you will see then
DOUBLE PRECISION A( LDA, * ), B( LDB, * )
and then the subroutine is able to find necessary numbers in the arrays
correctly.
INCX, I guess, is the increment. What subroutine do you actually mean here?
INCX = stride between elements of the vector X
mfh
The code is here
http://www.netlib.org/blas/dgemv.f
The description of incx suggest that you may use not every entry in x
but rather each second, each third and so on. They have tried to develop
an interface as general as possible. If you look at the code, then you
can see that incx could be also negative. In this case they seem to use
the values from the end.