BLAS procedures, which can be use used if not linking with a BLAS library,
if one is not available, or if a real kind /= real64
is required.
The original code has been slightly modernized.
reference blas level1 routines
reference blas is a software package provided by univ. of tennessee,
univ. of california berkeley, univ. of colorado denver and nag ltd.
ddot forms the dot product of two vectors. uses unrolled loops for increments equal to one.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=ip) | :: | n | ||||
real(kind=wp) | :: | dx(*) | ||||
integer(kind=ip) | :: | incx | ||||
real(kind=wp) | :: | dy(*) | ||||
integer(kind=ip) | :: | incy |
returns the euclidean norm of a vector
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=ip) | :: | n | ||||
real(kind=wp) | :: | x(*) | ||||
integer(kind=ip) | :: | incx |
dasum takes the sum of the absolute values.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=ip) | :: | n | ||||
real(kind=wp) | :: | dx(*) | ||||
integer(kind=ip) | :: | incx |
idamax finds the index of the first element having maximum absolute value.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=ip) | :: | n | ||||
real(kind=wp) | :: | dx(*) | ||||
integer(kind=ip) | :: | incx |
DAXPY constant times a vector plus a vector. uses unrolled loops for increments equal to one.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=ip) | :: | n | ||||
real(kind=wp) | :: | da | ||||
real(kind=wp) | :: | dx(*) | ||||
integer(kind=ip) | :: | incx | ||||
real(kind=wp) | :: | dy(*) | ||||
integer(kind=ip) | :: | incy |
DCOPY copies a vector, x, to a vector, y. uses unrolled loops for increments equal to 1.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=ip) | :: | n | ||||
real(kind=wp) | :: | dx(*) | ||||
integer(kind=ip) | :: | incx | ||||
real(kind=wp) | :: | dy(*) | ||||
integer(kind=ip) | :: | incy |
DSCAL scales a vector by a constant. uses unrolled loops for increment equal to 1.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=ip) | :: | n | ||||
real(kind=wp) | :: | da | ||||
real(kind=wp) | :: | dx(*) | ||||
integer(kind=ip) | :: | incx |
DSWAP interchanges two vectors. uses unrolled loops for increments equal to 1.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=ip) | :: | n | ||||
real(kind=wp) | :: | dx(*) | ||||
integer(kind=ip) | :: | incx | ||||
real(kind=wp) | :: | dy(*) | ||||
integer(kind=ip) | :: | incy |
apply the modified givens transformation, H, to the 2 by n matrix
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=ip) | :: | n | ||||
real(kind=wp) | :: | dx(*) | ||||
integer(kind=ip) | :: | incx | ||||
real(kind=wp) | :: | dy(*) | ||||
integer(kind=ip) | :: | incy | ||||
real(kind=wp) | :: | dparam(5) |
construct the modified givens transformation matrix H
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=wp) | :: | dd1 | ||||
real(kind=wp) | :: | dd2 | ||||
real(kind=wp) | :: | dx1 | ||||
real(kind=wp) | :: | dy1 | ||||
real(kind=wp) | :: | dparam(5) |