59 lines
3.3 KiB
C++
59 lines
3.3 KiB
C++
|
|
__host__ __device__ cuvec4();
|
||
|
|
__host__ __device__ ~cuvec4();
|
||
|
|
__host__ __device__ cuvec4(const double &_x, const double &_y, const double &_z, const double &_w);
|
||
|
|
__host__ __device__ float& operator[](const int &I);
|
||
|
|
__host__ __device__ const float& operator[](const int &I) const;
|
||
|
|
__host__ __device__ cuvec4 operator+(const cuvec4& rhs) const;
|
||
|
|
__host__ __device__ cuvec4 operator-(const cuvec4& rhs) const;
|
||
|
|
__host__ __device__ cuvec4 operator*(const cuvec4& rhs) const; //elementwise product
|
||
|
|
__host__ __device__ cuvec4 operator/(const cuvec4& rhs) const; //elementwise division
|
||
|
|
__host__ __device__ friend cuvec4 operator*(const cuvec4& lhs, const double& rhs);
|
||
|
|
__host__ __device__ friend cuvec4 operator*(const double& lhs, const cuvec4& rhs);
|
||
|
|
__host__ __device__ friend cuvec4 operator/(const cuvec4& lhs, const double& rhs);
|
||
|
|
__host__ __device__ friend cuvec4 operator/(const double& lhs, const cuvec4& rhs);
|
||
|
|
__host__ __device__ friend cuvec4 operator-(const cuvec4& other);
|
||
|
|
__host__ __device__ cuvec4& operator+=(const cuvec4& rhs);
|
||
|
|
__host__ __device__ cuvec4& operator-=(const cuvec4& rhs);
|
||
|
|
__host__ __device__ cuvec4& operator*=(const double& rhs);
|
||
|
|
__host__ __device__ cuvec4& operator/=(const double& rhs);
|
||
|
|
//
|
||
|
|
//Matrix Header Stuff
|
||
|
|
//
|
||
|
|
double m00,m10,m20,m30;
|
||
|
|
double m01,m11,m21,m31;
|
||
|
|
double m02,m12,m22,m32;
|
||
|
|
double m03,m13,m23,m33;
|
||
|
|
|
||
|
|
__host__ __device__ cumat4();
|
||
|
|
__host__ __device__ ~cumat4();
|
||
|
|
__host__ __device__ cumat4(
|
||
|
|
const double& _m00, const double& _m01, const double& _m02, const double& _m03,
|
||
|
|
const double& _m10, const double& _m11, const double& _m12, const double& _m13,
|
||
|
|
const double& _m20, const double& _m21, const double& _m22, const double& _m23,
|
||
|
|
const double& _m30, const double& _m31, const double& _m32, const double& _m33
|
||
|
|
);
|
||
|
|
__host__ __device__ cumat4(const double* data16);
|
||
|
|
__host__ __device__ float& operator[](const int &I);
|
||
|
|
__host__ __device__ const float& operator[](const int &I) const;
|
||
|
|
__host__ __device__ float& operator()(const int &I, const int &J);
|
||
|
|
__host__ __device__ const float& operator()(const int &I, const int &J) const;
|
||
|
|
__host__ __device__ float& at(const int &I, const int &J);
|
||
|
|
__host__ __device__ const float& at(const int &I, const int &J) const;
|
||
|
|
__host__ __device__ double* data(); //pointer to float16 representation of matrix
|
||
|
|
__host__ __device__ const double* data() const; //pointer to float16 representation of matrix
|
||
|
|
__host__ __device__ cumat4 operator+(const cumat4& rhs) const;
|
||
|
|
__host__ __device__ cumat4 operator-(const cumat4& rhs) const;
|
||
|
|
__host__ __device__ cumat4 operator*(const cumat4& rhs) const;
|
||
|
|
__host__ __device__ friend cumat4 operator*(const cumat4& lhs, const double& rhs);
|
||
|
|
__host__ __device__ friend cumat4 operator/(const cumat4& lhs, const double& rhs);
|
||
|
|
__host__ __device__ friend cumat4 operator*(const double& lhs, const cumat4& rhs);
|
||
|
|
__host__ __device__ friend cuvec4 operator*(const cumat4& lhs, const cuvec4& rhs);
|
||
|
|
__host__ __device__ friend cuvec4 operator*(const cuvec4& lhs, const cumat4& rhs);
|
||
|
|
__host__ __device__ friend cumat4 operator-(const cumat4& rhs);
|
||
|
|
__host__ __device__ cumat4& operator+=(const cumat4& rhs);
|
||
|
|
__host__ __device__ cumat4& operator-=(const cumat4& rhs);
|
||
|
|
__host__ __device__ cumat4& operator*=(const double& rhs);
|
||
|
|
__host__ __device__ cumat4& operator/=(const double& rhs);
|
||
|
|
__host__ __device__ cumat4& operator*=(const cumat4& rhs);
|
||
|
|
__host__ __device__ cumat4 transpose() const;
|