Array

namespace ndarray
class Array
#include <array.h>

Public Functions

Array()
~Array()
Array(const Shape &shape, double *hdata = nullptr, double *ddata = nullptr, const bool onCuda = true)

Initialize an array.

Parameters
  • shape: vector of shape.

  • hdata: double pointer reference of host data. default nullprt

  • ddata: double pointer reference of device data. default nullprt

  • ongpu: boolen variable for on gpu or on cpu.

void updateStrides()
void computeSize()
void unMappedToCuda()
void mapDeviceDataToHost()
double getValueByIndices(const ndarray::Indices &indices)
Array matmul(const Array &other) const
Array operator+(const Array &other) const
template<typename ...ArgsT>
double operator()(ArgsT... indices_)
Array operator[](const ndarray::Slices &slices) const
void transpose(const ndarray::Axis &axis)
double *hostData()
void setHostData(double *hdata)
double *deviceData() const
void setDeviceData(double *ddata)
Stride stride() const
size_t rank() const
bool isHostData() const
void setIsHostData(bool isHostData)
bool isDeviceData() const
void setIsDeviceData(bool isDeviceData)
Shape shape() const
void setShape(Shape shape)
size_t size() const

Private Members

double *deviceData_ = nullptr
double *hostData_ = nullptr
Shape shape_
bool onCuda_
Stride stride_
size_t size_
size_t byteSize_
bool isHostData_
bool isDeviceData_
bool isMallocHostData_ = false