Library/ManagedCuda/CudaBlas/CudaBlasHandler.cs
/// <summary>
/// This function performs the symmetric banded matrix-vector multiplication y = alpha * A * x + beta * y where A is a n*n symmetric matrix with k subdiagonals and superdiagonals, 
/// x and y are vectors, and alpha and beta are scalars. n is given by x.Size.
/// </summary>
/// <param name="uplo">indicates if matrix A lower or upper part is stored, the other part is not referenced and is inferred from the stored elements.</param>
/// <param name="k">number of sub- and super-diagonals of matrix A.</param>
/// <param name="alpha">scalar used for multiplication.</param>
/// <param name="A">array of dimensions lda * n, with lda >= max(1,n).</param>
/// <param name="lda">leading dimension of two-dimensional array used to store matrix A.</param>
/// <param name="x">vector with n elements.</param>
/// <param name="incx">stride between consecutive elements of x.</param>
/// <param name="beta">scalar used for multiplication, if beta==0 then y does not have to be a valid input.</param>
/// <param name="y">vector with n elements.</param>
/// <param name="incy">stride between consecutive elements of y.</param>
This function performs the symmetric banded matrix-vector multiplication y = alpha * A * x + beta * y where A is a n*n symmetric matrix with k subdiagonals and superdiagonals,
x and y are vectors, and alpha and beta are scalars. n is given by x.Size.
This function performs the symmetric banded matrix - vector multiplication y = alpha * A * x + beta * y where A is a n * n symmetric matrix with k subdiagonals and superdiagonals x and y are vectors and alpha and beta are scalars . n is given by x . Size .
public void Hbmv(FillMode uplo, int k, cuDoubleComplex alpha, CudaDeviceVariable<cuDoubleComplex> A, int lda, CudaDeviceVariable<cuDoubleComplex> x, int incx, cuDoubleComplex beta, CudaDeviceVariable<cuDoubleComplex> y, int incy)
		{
			_status = CudaBlasNativeMethods.cublasZhbmv_v2(_blasHandle, uplo, x.Size, k, ref alpha, A.DevicePointer, lda, x.DevicePointer, incx, ref beta, y.DevicePointer, incy);
			Debug.WriteLine(String.Format("{0:G}, {1}: {2}", DateTime.Now, "cublasZhbmv_v2", _status));
			if (_status != CublasStatus.Success) throw new CudaBlasException(_status);
		}
public void Hbmv ( FillMode uplo , int k , cuDoubleComplex alpha , CudaDeviceVariable < cuDoubleComplex > A , int lda , CudaDeviceVariable < cuDoubleComplex > x , int incx , cuDoubleComplex beta , CudaDeviceVariable < cuDoubleComplex > y , int incy ) { _status = CudaBlasNativeMethods . cublasZhbmv_v2 ( _blasHandle , uplo , x . Size , k , ref alpha , A . DevicePointer , lda , x . DevicePointer , incx , ref beta , y . DevicePointer , incy ) ; Debug . WriteLine ( String . Format ( " " , DateTime . Now , " " , _status ) ) ; if ( _status != CublasStatus . Success ) throw new CudaBlasException ( _status ) ; }
This function performs the symmetric banded matrix-vector multiplication y = alpha * A * x + beta * y where A is a n*n symmetric matrix with k subdiagonals and superdiagonals,
x and y are vectors, and alpha and beta are scalars.
This function performs the symmetric banded matrix - vector multiplication y = alpha * A * x + beta * y where A is a n * n symmetric matrix with k subdiagonals and superdiagonals x and y are vectors and alpha and beta are scalars .
uplo
FillMode
indicates if matrix A lower or upper part is stored, the other part is not referenced and is inferred from the stored elements.
indicates if matrix A lower or upper part is stored the other part is not referenced and is inferred from the stored elements .
k
int
number of sub- and super-diagonals of matrix A.
number of sub - and super - diagonals of matrix A .
alpha
cuDoubleComplex
scalar used for multiplication.
scalar used for multiplication .
A
CudaDeviceVariable<cuDoubleComplex>
array of dimensions lda * n, with lda >= max(1,n).
array of dimensions lda * n with lda > = max ( 1 n ) .
lda
int
leading dimension of two-dimensional array used to store matrix A.
leading dimension of two - dimensional array used to store matrix A .
x
CudaDeviceVariable<cuDoubleComplex>
vector with n elements.
vector with n elements .
incx
int
stride between consecutive elements of x.
stride between consecutive elements of x .
beta
cuDoubleComplex
scalar used for multiplication, if beta==0 then y does not have to be a valid input.
scalar used for multiplication if beta == 0 then y does not have to be a valid input .
y
CudaDeviceVariable<cuDoubleComplex>
vector with n elements.
vector with n elements .
incy
int
stride between consecutive elements of y.
stride between consecutive elements of y .