StatMech
Loading...
Searching...
No Matches
MatrixUtils.cuh File Reference

Classes

class  ObjectOnGPU< Eigen::Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > >
 
class  SparseCompressed< Scalar_t, Options_ >
 
class  ObjectOnGPU< SparseCompressed< Scalar_t, Options_ > >
 
class  MatrixUtils::EigenSolver< ObjectOnGPU< Eigen::Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > > >
 

Namespaces

namespace  MatrixUtils
 

Functions

template<typename Scalar_t , Eigen::StorageOptions Options_>
__global__ void SparseCompressed_set_kernel (SparseCompressed< Scalar_t, Options_ > *objPtr, int *srcOuterIndexPtr, int *srcInnerIndexPtr, Scalar_t *srcValuePtr)
 
CUDA kernels for member functions of SparseCompressed
template<typename Scalar_t = Complex_t<Real_t>, Eigen::StorageOptions Options_ = Eigen::ColMajor>
__global__ void SparseCompressed_resize_kernel (SparseCompressed< Scalar_t, Options_ > *ptr, int rows, int cols, int reserved)
 
template<typename Scalar_t = Complex_t<Real_t>, Eigen::StorageOptions Options_ = Eigen::ColMajor>
__global__ void SparseCompressed_rows_kernel (SparseCompressed< Scalar_t, Options_ > *ptr, int *dRes)
 
template<typename Scalar_t = Complex_t<Real_t>, Eigen::StorageOptions Options_ = Eigen::ColMajor>
__global__ void SparseCompressed_cols_kernel (SparseCompressed< Scalar_t, Options_ > *ptr, int *dRes)
 
template<typename Scalar_t = Complex_t<Real_t>, Eigen::StorageOptions Options_ = Eigen::ColMajor>
__global__ void SparseCompressed_nonZeros_kernel (SparseCompressed< Scalar_t, Options_ > *ptr, int *dRes)
 
template<typename Scalar_t = Complex_t<Real_t>, Eigen::StorageOptions Options_ = Eigen::ColMajor>
__global__ void SparseCompressed_setNonZeros_kernel (SparseCompressed< Scalar_t, Options_ > *ptr, int input)
 
template<typename Scalar_t = Complex_t<Real_t>, Eigen::StorageOptions Options_ = Eigen::ColMajor>
__global__ void SparseCompressed_copyData_kernel (SparseCompressed< Scalar_t, Options_ > *ptr, int *dstOuterIndexPtr, int *dstInnerIndexPtr, Scalar_t *dstValuePtr)
 

Function Documentation

◆ SparseCompressed_cols_kernel()

template<typename Scalar_t = Complex_t<Real_t>, Eigen::StorageOptions Options_ = Eigen::ColMajor>
__global__ void SparseCompressed_cols_kernel ( SparseCompressed< Scalar_t, Options_ > *  ptr,
int *  dRes 
)
550 {
551 *dRes = ptr->cols();
552};
__host__ __device__ int & cols()
Definition MatrixUtils.cuh:403

◆ SparseCompressed_copyData_kernel()

template<typename Scalar_t = Complex_t<Real_t>, Eigen::StorageOptions Options_ = Eigen::ColMajor>
__global__ void SparseCompressed_copyData_kernel ( SparseCompressed< Scalar_t, Options_ > *  ptr,
int *  dstOuterIndexPtr,
int *  dstInnerIndexPtr,
Scalar_t *  dstValuePtr 
)
569 {
570 memcpy(dstOuterIndexPtr, ptr->outerIndexPtr(), (ptr->outerSize() + 1) * sizeof(int));
571 memcpy(dstInnerIndexPtr, ptr->innerIndexPtr(), ptr->nonZeros() * sizeof(int));
572 memcpy(dstValuePtr, ptr->valuePtr(), ptr->nonZeros() * sizeof(Scalar_t));
573};
__host__ __device__ int nonZeros() const
Definition MatrixUtils.cuh:418
__host__ __device__ int * innerIndexPtr() const
Definition MatrixUtils.cuh:421
__host__ __device__ int * outerIndexPtr() const
Definition MatrixUtils.cuh:420
__host__ __device__ int outerSize() const
Definition MatrixUtils.cuh:414
__host__ __device__ Scalar_t * valuePtr() const
Definition MatrixUtils.cuh:422

◆ SparseCompressed_nonZeros_kernel()

template<typename Scalar_t = Complex_t<Real_t>, Eigen::StorageOptions Options_ = Eigen::ColMajor>
__global__ void SparseCompressed_nonZeros_kernel ( SparseCompressed< Scalar_t, Options_ > *  ptr,
int *  dRes 
)
556 {
557 *dRes = ptr->nonZeros();
558};

◆ SparseCompressed_resize_kernel()

template<typename Scalar_t = Complex_t<Real_t>, Eigen::StorageOptions Options_ = Eigen::ColMajor>
__global__ void SparseCompressed_resize_kernel ( SparseCompressed< Scalar_t, Options_ > *  ptr,
int  rows,
int  cols,
int  reserved 
)
540 {
541 ptr->resize(rows, cols, reserved);
542};
__host__ __device__ void resize(int rows, int cols, int reserved=1)
Definition MatrixUtils.cuh:353
__constant__ int cols
Definition testEigenOnGPU.cu:6
__constant__ int rows
Definition testEigenOnGPU.cu:5

◆ SparseCompressed_rows_kernel()

template<typename Scalar_t = Complex_t<Real_t>, Eigen::StorageOptions Options_ = Eigen::ColMajor>
__global__ void SparseCompressed_rows_kernel ( SparseCompressed< Scalar_t, Options_ > *  ptr,
int *  dRes 
)
545 {
546 *dRes = ptr->rows();
547};
__host__ __device__ int & rows()
Definition MatrixUtils.cuh:395

◆ SparseCompressed_set_kernel()

template<typename Scalar_t , Eigen::StorageOptions Options_>
__global__ void SparseCompressed_set_kernel ( SparseCompressed< Scalar_t, Options_ > *  objPtr,
int *  srcOuterIndexPtr,
int *  srcInnerIndexPtr,
Scalar_t *  srcValuePtr 
)
579 {
580 int const outerId = blockIdx.x * blockDim.x + threadIdx.x;
581 int const innerId = outerId - ((*objPtr).outerSize() + 1);
582 if(outerId <= (*objPtr).outerSize()) {
583 assert(outerId >= 0);
584 (*objPtr).outerIndexPtr()[outerId] = srcOuterIndexPtr[outerId];
585 }
586 else if(innerId < (*objPtr).nonZeros()) {
587 assert(innerId >= 0);
588 (*objPtr).innerIndexPtr()[innerId] = srcInnerIndexPtr[innerId];
589 (*objPtr).valuePtr()[innerId] = srcValuePtr[innerId];
590 }
591}

◆ SparseCompressed_setNonZeros_kernel()

template<typename Scalar_t = Complex_t<Real_t>, Eigen::StorageOptions Options_ = Eigen::ColMajor>
__global__ void SparseCompressed_setNonZeros_kernel ( SparseCompressed< Scalar_t, Options_ > *  ptr,
int  input 
)
562 {
563 ptr->setNonZeros(input);
564};
__host__ __device__ int & setNonZeros(int input)
Definition MatrixUtils.cuh:417