32 #include <vector_types.h>
115 template <
class A,
class B>
FW_CUDA_FUNC A
lerp(
const A& a,
const A& b,
const B& t) {
return (A)(a * ((B)1 - t) + b * t); }
130 FW_CUDA_FUNC T
set (
int idx,
const T& a) { T& slot =
get(idx); T old = slot; slot = a;
return old; }
138 void sprint (
char* vec,
size_t s)
const {
int ctr = sprintf_s(vec, s,
"( ");
for (
int i = 0; i <
L-1; i++) ctr += sprintf_s(vec+ctr, s,
"%.2f , ", (
F64)
get(i)); ctr += sprintf_s(vec+ctr, s,
"%.2f )", (
F64)
get(L-1)); }
141 FW_CUDA_FUNC bool isZero (
void)
const {
const T* tp =
getPtr();
for (
int i = 0; i <
L; i++)
if (tp[i] != (T)0)
return false;
return true; }
148 FW_CUDA_FUNC T
sum (
void)
const {
const T* tp =
getPtr(); T r = tp[0];
for (
int i = 1; i <
L; i++) r += tp[i];
return r; }
173 FW_CUDA_FUNC S
operator+ (
const T& a)
const {
const T* tp =
getPtr(); S r; T* rp = r.getPtr();
for (
int i = 0; i <
L; i++) rp[i] = tp[i] + a;
return r; }
174 FW_CUDA_FUNC S
operator- (
const T& a)
const {
const T* tp =
getPtr(); S r; T* rp = r.getPtr();
for (
int i = 0; i <
L; i++) rp[i] = tp[i] - a;
return r; }
175 FW_CUDA_FUNC S
operator* (
const T& a)
const {
const T* tp =
getPtr(); S r; T* rp = r.getPtr();
for (
int i = 0; i <
L; i++) rp[i] = tp[i] * a;
return r; }
176 FW_CUDA_FUNC S
operator/ (
const T& a)
const {
const T* tp =
getPtr(); S r; T* rp = r.getPtr();
for (
int i = 0; i <
L; i++) rp[i] = tp[i] / a;
return r; }
177 FW_CUDA_FUNC S
operator% (
const T& a)
const {
const T* tp =
getPtr(); S r; T* rp = r.getPtr();
for (
int i = 0; i <
L; i++) rp[i] = tp[i] % a;
return r; }
178 FW_CUDA_FUNC S
operator& (
const T& a)
const {
const T* tp =
getPtr(); S r; T* rp = r.getPtr();
for (
int i = 0; i <
L; i++) rp[i] = tp[i] & a;
return r; }
179 FW_CUDA_FUNC S
operator| (
const T& a)
const {
const T* tp =
getPtr(); S r; T* rp = r.getPtr();
for (
int i = 0; i <
L; i++) rp[i] = tp[i] | a;
return r; }
180 FW_CUDA_FUNC S
operator^ (
const T& a)
const {
const T* tp =
getPtr(); S r; T* rp = r.getPtr();
for (
int i = 0; i <
L; i++) rp[i] = tp[i] ^ a;
return r; }
182 FW_CUDA_FUNC S
operator>> (
const T& a)
const {
const T* tp =
getPtr(); S r; T* rp = r.getPtr();
for (
int i = 0; i < L; i++) rp[i] = tp[i] >> a;
return r; }
199 template <
class V>
FW_CUDA_FUNC S& operator<<= (const VectorBase<T, L, V>&
v) {
set(
operator<<(
v));
return *(S*)
this; }
210 template <
class V>
FW_CUDA_FUNC S operator<< (const VectorBase<T, L, V>&
v)
const {
const T* tp =
getPtr();
const T* vp =
v.getPtr(); S r; T* rp = r.getPtr();
for (
int i = 0; i <
L; i++) rp[i] = tp[i] << vp[i];
return r; }
219 template <
class T,
int L>
class Vector :
public VectorBase<T, L, Vector<T, L> >
474 template <
class T,
int L,
class S>
FW_CUDA_FUNC S operator<< (const T& a, const VectorBase<T, L, S>& b) {
const T* bp = b.getPtr(); S r; T* rp = r.getPtr();
for (
int i = 0; i <
L; i++) rp[i] = a << bp[i];
return r; }
487 FW_CUDA_FUNC T min(const T& a, const T& b) { return a.min(b); } \
488 FW_CUDA_FUNC T min(T& a, T& b) { return a.min(b); } \
489 FW_CUDA_FUNC T max(const T& a, const T& b) { return a.max(b); } \
490 FW_CUDA_FUNC T max(T& a, T& b) { return a.max(b); } \
491 FW_CUDA_FUNC T min(const T& a, const T& b, const T& c) { return a.min(b).min(c); } \
492 FW_CUDA_FUNC T min(T& a, T& b, T& c) { return a.min(b).min(c); } \
493 FW_CUDA_FUNC T max(const T& a, const T& b, const T& c) { return a.max(b).max(c); } \
494 FW_CUDA_FUNC T max(T& a, T& b, T& c) { return a.max(b).max(c); } \
495 FW_CUDA_FUNC T min(const T& a, const T& b, const T& c, const T& d) { return a.min(b).min(c).min(d); } \
496 FW_CUDA_FUNC T min(T& a, T& b, T& c, T& d) { return a.min(b).min(c).min(d); } \
497 FW_CUDA_FUNC T max(const T& a, const T& b, const T& c, const T& d) { return a.max(b).max(c).max(d); } \
498 FW_CUDA_FUNC T max(T& a, T& b, T& c, T& d) { return a.max(b).max(c).max(d); } \
499 FW_CUDA_FUNC T clamp(const T& v, const T& lo, const T& hi) { return v.clamp(lo, hi); } \
500 FW_CUDA_FUNC T clamp(T& v, T& lo, T& hi) { return v.clamp(lo, hi); }
524 FW_CUDA_FUNC T
set (
int idx,
const T& a) { T& slot =
get(idx); T old = slot; slot = a;
return old; }
525 FW_CUDA_FUNC T
set (
int r,
int c,
const T& a) { T& slot =
get(r, c); T old = slot; slot = a;
return old; }
537 void print (
void)
const;
589 template <
class V>
FW_CUDA_FUNC S& operator<<= (const MatrixBase<T, L, V>&
v) {
set(
operator<<(v));
return *(S*)
this; }
603 template <
class V>
FW_CUDA_FUNC S operator<< (const MatrixBase<T, L, V>&
v)
const { S r;
for (
int i = 0; i <
L *
L; i++) r.get(i) =
get(i) << v.
get(i);
return r; }
794 template <
class T,
int L,
class S>
FW_CUDA_FUNC S operator<< (const T& a, const MatrixBase<T, L, S>& b) { S r;
for (
int i = 0; i <
L *
L; i++) r.get(i) = a << b.get(i);
return r; }
801 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4,
802 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
803 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
804 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
805 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
806 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
807 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
808 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
809 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
810 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
811 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
812 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
813 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
814 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
815 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
816 4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
841 U32 hi = (
U32)(mask >> 32);
843 result += c_popc8LUT[(lo >> 8) & 0xffu] + c_popc8LUT[(hi >> 8) & 0xffu];
844 result += c_popc8LUT[(lo >> 16) & 0xffu] + c_popc8LUT[(hi >> 16) & 0xffu];
845 result += c_popc8LUT[lo >> 24] + c_popc8LUT[hi >> 24];
854 for (
int i = 0; i <
L - 1; i++)
864 for (
int i = 0; i <
L - 1; i++)
874 for (
int i = 0; i <
L; i++)
884 for (
int i = 0; i <
L; i++)
894 for (
int i = 0; i <
L; i++)
896 for (
int j = 0; j <
L; j++)
909 for (
int i = 0; i <
L; i++)
912 for (
int j = 0; j < L - 1; j++)
913 for (
int k = 0; k < L - 1; k++)
914 sub(j, k) =
v((j < i) ? j : j + 1, k + 1);
915 r += sub.det() *
v(i, 0) * s;
932 return v(0, 0) *
v(1, 1) -
v(0, 1) *
v(1, 0);
939 return v(0, 0) *
v(1, 1) *
v(2, 2) -
v(0, 0) *
v(1, 2) *
v(2, 1) +
940 v(1, 0) *
v(2, 1) *
v(0, 2) -
v(1, 0) *
v(2, 2) *
v(0, 1) +
941 v(2, 0) *
v(0, 1) *
v(1, 2) -
v(2, 0) *
v(0, 2) *
v(1, 1);
956 for (
int i = 0; i <
L; i++)
957 for (
int j = 0; j <
L; j++)
969 for (
int i = 0; i <
L; i++)
972 for (
int j = 0; j <
L; j++)
975 for (
int k = 0; k < L - 1; k++)
976 for (
int l = 0; l < L - 1; l++)
977 sub(k, l) =
get((k < j) ? k : k + 1, (l < i) ? l : l + 1);
978 T dd = sub.
det() * sj;
985 return r *
rcp(d) *
L;
992 for (
int i = 0; i <
L; i++)
1001 for (
int i = 0; i <
L; i++)
1004 for (
int j = 0; j <
L; j++)
1005 rr +=
get(i, j) * v[j];
1015 T w =
get(
L - 1,
L - 1);
1016 for (
int i = 0; i <
L - 1; i++)
1017 w +=
get(L - 1, i) * v[i];
1021 for (
int i = 0; i < L - 1; i++)
1023 T rr =
get(i, L - 1);
1024 for (
int j = 0; j < L - 1; j++)
1025 rr +=
get(i, j) * v[j];
1036 for (
int i = 0; i <
L; i++)
1038 for (
int j = 0; j <
L; j++)
1041 for (
int k = 0; k <
L; k++)
1042 rr +=
get(i, k) *
v(k, j);
1054 for (
int i = 0; i <
L; i++)
1055 for (
int j = 0; j <
L; j++)
FW_CUDA_FUNC const T * getPtr(void) const
FW_CUDA_FUNC Vec4d(const Vec3d &xyz, F64 ww)
FW_CUDA_FUNC Vector(void)
FW_CUDA_FUNC void set(const T *ptr)
FW_CUDA_FUNC S operator+(const T &a, const VectorBase< T, L, S > &b)
FW_CUDA_FUNC void set(const VectorBase< T, L, V > &v)
FW_CUDA_FUNC S operator&(const T &a, const VectorBase< T, L, S > &b)
FW_CUDA_FUNC Vec4d(const Vec4i &v)
CUdevice int ordinal char int CUdevice dev CUdevprop CUdevice dev CUcontext ctx CUcontext ctx CUcontext pctx CUmodule const void image CUmodule const void fatCubin CUfunction CUmodule const char name void p CUfunction unsigned int bytes CUtexref pTexRef CUtexref CUarray unsigned int Flags CUtexref int CUaddress_mode am CUtexref unsigned int Flags CUaddress_mode CUtexref int dim CUarray_format int CUtexref hTexRef CUfunction unsigned int numbytes CUfunction int float value CUfunction int CUtexref hTexRef CUfunction int int grid_height CUevent unsigned int Flags CUevent hEvent CUevent hEvent CUstream unsigned int Flags CUstream hStream GLuint bufferobj unsigned int CUdevice dev CUdeviceptr unsigned int CUmodule const char name CUdeviceptr unsigned int bytesize CUdeviceptr dptr void unsigned int bytesize void CUdeviceptr unsigned int ByteCount CUarray unsigned int CUdeviceptr unsigned int ByteCount CUarray unsigned int const void unsigned int ByteCount CUarray unsigned int CUarray unsigned int unsigned int ByteCount void CUarray unsigned int unsigned int CUstream hStream const CUDA_MEMCPY2D pCopy CUdeviceptr const void unsigned int CUstream hStream const CUDA_MEMCPY2D CUstream hStream CUdeviceptr unsigned char unsigned int N CUdeviceptr unsigned int unsigned int N CUdeviceptr unsigned int unsigned short unsigned int unsigned int Height CUarray const CUDA_ARRAY_DESCRIPTOR pAllocateArray CUarray const CUDA_ARRAY3D_DESCRIPTOR pAllocateArray unsigned int CUtexref CUdeviceptr unsigned int bytes CUcontext unsigned int CUdevice device GLenum texture GLenum GLuint buffer GLenum GLuint renderbuffer GLenum GLsizeiptr const GLvoid GLenum usage GLuint shader GLenum type GLsizei const GLuint framebuffers GLsizei const GLuint renderbuffers GLuint v GLuint v GLenum GLenum GLenum GLuint GLint level GLsizei GLuint framebuffers GLuint const GLchar name GLenum GLintptr GLsizeiptr GLvoid data GLuint GLenum GLint param GLuint GLenum GLint param GLhandleARB programObj GLenum GLenum GLsizei GLsizei height GLenum GLint GLint GLsizei GLsizei GLsizei GLint GLenum GLenum const GLvoid pixels GLint GLsizei const GLfloat value GLint GLfloat GLfloat v1 GLint GLfloat GLfloat GLfloat v2 GLint GLsizei const GLfloat value GLint GLsizei GLboolean const GLfloat value GLuint program GLuint GLfloat GLfloat GLfloat z GLuint GLint GLenum GLboolean GLsizei const GLvoid pointer GLuint GLuint const GLchar name GLenum GLsizei GLenum GLsizei GLsizei height GLenum GLuint renderbuffer GLenum GLenum GLint params GLuint GLsizei range GLuint GLsizei const GLubyte GLsizei GLenum const GLvoid coords GLuint GLsizei GLsizei GLsizei const GLubyte GLsizei GLenum const GLvoid coords GLuint GLenum GLsizei const GLvoid pathString GLuint GLenum const GLvoid GLbitfield GLuint GLsizei GLenum GLuint GLfloat emScale GLuint GLuint srcPath GLuint GLuint GLenum const GLfloat transformValues GLuint GLenum GLint value GLuint GLenum GLfloat value GLenum GLint GLuint mask
FW_CUDA_FUNC S operator<<(const T &a) const
FW_CUDA_FUNC T * getPtr(void)
FW_CUDA_FUNC Vec4d(const Vec2d &xy, F64 zz, F64 ww)
FW_CUDA_FUNC void set(const T *ptr)
FW_CUDA_FUNC T length(const VectorBase< T, L, S > &v)
FW_CUDA_FUNC Vec4d(const VectorBase< F64, 4, V > &v)
FW_CUDA_FUNC void setRow(int r, const VectorBase< T, L, V > &v)
FW_CUDA_FUNC Vec3f(F32 a)
FW_CUDA_FUNC Vec3i getXYZ(void) const
FW_CUDA_FUNC Vec3i getXYW(void) const
FW_CUDA_FUNC Vec2f getXY(void) const
FW_CUDA_FUNC const F32 * getPtr(void) const
FW_CUDA_FUNC Vec3f & operator=(const VectorBase< F32, 3, V > &v)
FW_CUDA_FUNC S operator+(void) const
FW_CUDA_FUNC Mat3d & operator=(const MatrixBase< F64, 3, V > &v)
FW_CUDA_FUNC S abs(const VectorBase< T, L, S > &v)
FW_CUDA_FUNC int popc64(U64 mask)
FW_CUDA_FUNC F64 * getPtr(void)
FW_CUDA_FUNC Mat2d(const MatrixBase< F64, 2, V > &v)
FW_CUDA_FUNC Vec4i & operator=(const VectorBase< S32, 4, V > &v)
static FW_CUDA_FUNC Mat3f fromPtr(const F32 *ptr)
FW_CUDA_FUNC Vec3i(const Vec2i &xy, S32 zz)
FW_CUDA_FUNC Vec2f & operator=(const VectorBase< F32, 2, V > &v)
static FW_CUDA_FUNC Vec2f fromPtr(const F32 *ptr)
FW_CUDA_FUNC F32 acos(F32 a)
FW_CUDA_FUNC S & operator=(const T &a)
FW_CUDA_FUNC F64 exp(F64 a)
FW_CUDA_FUNC T set(int idx, const T &a)
FW_CUDA_FUNC Mat3f(F32 a)
FW_CUDA_FUNC S & operator>>=(const T &a)
FW_CUDA_FUNC Vec2f(F32 a)
FW_CUDA_FUNC const F32 * getPtr(void) const
FW_CUDA_FUNC F64 atan2(F64 y, F64 x)
FW_CUDA_FUNC T lenSqr(const VectorBase< T, L, S > &v)
FW_CUDA_FUNC Matrix(void)
FW_CUDA_FUNC Vec2d perpendicular(void) const
FW_CUDA_FUNC F32 scale(F32 a, int b)
FW_CUDA_FUNC Mat4d(const Mat4f &a)
FW_CUDA_FUNC Vec2i(S32 xx, S32 yy)
FW_CUDA_FUNC T max(void) const
FW_CUDA_FUNC Vec4d(const Vec4f &v)
FW_CUDA_FUNC Vec4i(const Vec2i &xy, const Vec2i &zw)
FW_CUDA_FUNC Mat4d & operator=(const MatrixBase< F64, 4, V > &v)
F32 fastMax(F32 a, F32 b)
FW_CUDA_FUNC Vec3d getXYW(void) const
static FW_CUDA_FUNC Vec3i fromPtr(const S32 *ptr)
FW_CUDA_FUNC const F32 * getPtr(void) const
FW_CUDA_FUNC Vec3d(const VectorBase< F64, 3, V > &v)
FW_CUDA_FUNC Vec2d(const Vec2i &v)
FW_CUDA_FUNC Mat4f(F32 a)
FW_CUDA_FUNC F64 cos(F64 a)
FW_CUDA_FUNC const F64 * getPtr(void) const
FW_CUDA_FUNC Vec2d(const VectorBase< F64, 2, V > &v)
static FW_CUDA_FUNC Vec3d fromPtr(const F64 *ptr)
FW_CUDA_FUNC T det(void) const
FW_CUDA_FUNC F32 atan2(F32 y, F32 x)
FW_CUDA_FUNC Vector< T, L > & col(int c)
FW_CUDA_FUNC void transpose(void)
FW_CUDA_FUNC S operator>>(const T &a) const
FW_CUDA_FUNC Vec2f perpendicular(const Vec2f &v)
FW_CUDA_FUNC Vec2d(F64 a)
FW_CUDA_FUNC void invert(void)
FW_CUDA_FUNC F64 pow(F64 a, F64 b)
FW_CUDA_FUNC Mat2d(const Mat2f &a)
FW_CUDA_FUNC S & operator>>=(const T &a)
FW_CUDA_FUNC bool operator==(const VectorBase< T, L, V > &v) const
FW_CUDA_FUNC S & operator^=(const T &a)
FW_CUDA_FUNC T sqr(const T &a)
FW_CUDA_FUNC const T * getPtr(void) const
FW_CUDA_FUNC Mat2f(const MatrixBase< F32, 2, V > &v)
FW_CUDA_FUNC VectorBase(void)
FW_CUDA_FUNC Vec2d & operator=(const VectorBase< F64, 2, V > &v)
FW_CUDA_FUNC Vector< T, L-1 > toCartesian(void) const
FW_CUDA_FUNC S & operator|=(const T &a)
FW_CUDA_FUNC F64 * getPtr(void)
FW_CUDA_FUNC Vec3f(const Vec3i &v)
FW_CUDA_FUNC const S32 * getPtr(void) const
static Mat3f rotation(const Vec3f &axis, F32 angle)
FW_CUDA_FUNC MatrixBase(void)
FW_CUDA_FUNC Vector< T, L+1 > toHomogeneous(void) const
FW_CUDA_FUNC F32 floor(F32 a)
static FW_CUDA_FUNC S scale(const VectorBase< T, L-1, V > &v)
FW_CUDA_FUNC const F64 * getPtr(void) const
FW_CUDA_FUNC F64 tan(F64 a)
FW_CUDA_FUNC Vec3f getXYZ(void) const
FW_CUDA_FUNC F32 sqrt(F32 a)
FW_CUDA_FUNC Mat3d(const MatrixBase< F64, 3, V > &v)
FW_CUDA_FUNC Mat3f(const MatrixBase< F32, 3, V > &v)
FW_CUDA_FUNC F32 cross(const Vec2f &v) const
static FW_CUDA_FUNC Vec2d fromPtr(const F64 *ptr)
FW_CUDA_FUNC bool operator==(const MatrixBase< T, L, V > &v) const
void sprint(char *vec, size_t s) const
FW_CUDA_FUNC Mat2f & operator=(const MatrixBase< F32, 2, V > &v)
FW_CUDA_FUNC T * getPtr(void)
FW_CUDA_FUNC F64 cross(const Vec2d &v) const
FW_CUDA_FUNC Vec2f getXY(void) const
FW_CUDA_FUNC F64 atan(F64 a)
FW_CUDA_FUNC Mat3f & operator=(const MatrixBase< F32, 3, V > &v)
FW_CUDA_FUNC const S32 * getPtr(void) const
FW_CUDA_FUNC const T & operator()(int r, int c) const
FW_CUDA_FUNC T lenSqr(void) const
FW_CUDA_FUNC S clamp(const VectorBase< T, L, V > &lo, const VectorBase< T, L, W > &hi) const
FW_CUDA_FUNC bool operator!=(const MatrixBase< T, L, V > &v) const
FW_CUDA_FUNC Vec3d(F64 a)
FW_CUDA_FUNC S & operator&=(const T &a)
FW_CUDA_FUNC const F64 * getPtr(void) const
FW_CUDA_FUNC T dot(const VectorBase< T, L, S > &a, const VectorBase< T, L, V > &b)
FW_CUDA_FUNC F64 asin(F64 a)
FW_CUDA_FUNC Vec2f perpendicular(void) const
CUdevice int ordinal char int CUdevice dev CUdevprop CUdevice dev CUcontext ctx CUcontext ctx CUcontext pctx CUmodule const void image CUmodule const void fatCubin CUfunction CUmodule const char name void p CUfunction unsigned int bytes CUtexref pTexRef CUtexref CUarray unsigned int Flags CUtexref int CUaddress_mode am CUtexref unsigned int Flags CUaddress_mode CUtexref int dim CUarray_format int CUtexref hTexRef CUfunction unsigned int numbytes CUfunction int float value CUfunction int CUtexref hTexRef CUfunction int int grid_height CUevent unsigned int Flags CUevent hEvent CUevent hEvent CUstream unsigned int Flags CUstream hStream GLuint bufferobj unsigned int CUdevice dev CUdeviceptr unsigned int CUmodule const char name CUdeviceptr unsigned int bytesize CUdeviceptr dptr void unsigned int bytesize void CUdeviceptr unsigned int ByteCount CUarray unsigned int CUdeviceptr unsigned int ByteCount CUarray unsigned int const void unsigned int ByteCount CUarray unsigned int CUarray unsigned int unsigned int ByteCount void CUarray unsigned int unsigned int CUstream hStream const CUDA_MEMCPY2D pCopy CUdeviceptr const void unsigned int CUstream hStream const CUDA_MEMCPY2D CUstream hStream CUdeviceptr unsigned char unsigned int N CUdeviceptr unsigned int unsigned int N CUdeviceptr unsigned int unsigned short unsigned int unsigned int Height CUarray const CUDA_ARRAY_DESCRIPTOR pAllocateArray CUarray const CUDA_ARRAY3D_DESCRIPTOR pAllocateArray unsigned int CUtexref CUdeviceptr unsigned int bytes CUcontext unsigned int CUdevice device GLenum texture GLenum GLuint buffer GLenum GLuint renderbuffer GLenum GLsizeiptr const GLvoid GLenum usage GLuint shader GLenum type GLsizei const GLuint framebuffers GLsizei const GLuint renderbuffers GLuint v GLuint v GLenum GLenum GLenum GLuint GLint level GLsizei GLuint framebuffers GLuint const GLchar name GLenum GLintptr GLsizeiptr GLvoid data GLuint GLenum GLint param GLuint GLenum GLint param GLhandleARB programObj GLenum GLenum GLsizei GLsizei height GLenum GLint GLint GLsizei GLsizei GLsizei GLint GLenum GLenum const GLvoid pixels GLint GLsizei const GLfloat value GLint GLfloat GLfloat v1 GLint GLfloat GLfloat GLfloat v2 GLint GLsizei const GLfloat value GLint GLsizei GLboolean const GLfloat value GLuint program GLuint GLfloat x
FW_CUDA_FUNC void set(const MatrixBase< T, L, V > &v)
FW_CUDA_FUNC Vec2i getXY(void) const
FW_CUDA_FUNC Vec4i(const Vec2i &xy, S32 zz, S32 ww)
FW_CUDA_FUNC Vec2d(F64 xx, F64 yy)
FW_CUDA_FUNC S operator+(void) const
FW_CUDA_FUNC void set(const T &a)
FW_CUDA_FUNC Mat4d(F64 a)
FW_CUDA_FUNC Vec2d getXY(void) const
FW_CUDA_FUNC const F32 * getPtr(void) const
FW_CUDA_FUNC S abs(void) const
CUdevice int ordinal char int CUdevice dev CUdevprop CUdevice dev CUcontext ctx CUcontext ctx CUcontext pctx CUmodule const void image CUmodule const void fatCubin CUfunction CUmodule const char name void p CUfunction unsigned int bytes CUtexref pTexRef CUtexref CUarray unsigned int Flags CUtexref int CUaddress_mode am CUtexref unsigned int Flags CUaddress_mode CUtexref int dim CUarray_format int CUtexref hTexRef CUfunction unsigned int numbytes CUfunction int float value CUfunction int CUtexref hTexRef CUfunction int int grid_height CUevent unsigned int Flags CUevent hEvent CUevent hEvent CUstream unsigned int Flags CUstream hStream GLuint bufferobj unsigned int CUdevice dev CUdeviceptr unsigned int CUmodule const char name CUdeviceptr unsigned int bytesize CUdeviceptr dptr void unsigned int bytesize void CUdeviceptr unsigned int ByteCount CUarray unsigned int CUdeviceptr unsigned int ByteCount CUarray unsigned int const void unsigned int ByteCount CUarray unsigned int CUarray unsigned int unsigned int ByteCount void CUarray unsigned int unsigned int CUstream hStream const CUDA_MEMCPY2D pCopy CUdeviceptr const void unsigned int CUstream hStream const CUDA_MEMCPY2D CUstream hStream CUdeviceptr unsigned char unsigned int N CUdeviceptr unsigned int unsigned int N CUdeviceptr unsigned int unsigned short unsigned int unsigned int Height CUarray const CUDA_ARRAY_DESCRIPTOR pAllocateArray CUarray const CUDA_ARRAY3D_DESCRIPTOR pAllocateArray unsigned int CUtexref CUdeviceptr unsigned int bytes CUcontext unsigned int CUdevice device GLenum texture GLenum GLuint buffer GLenum GLuint renderbuffer GLenum GLsizeiptr const GLvoid GLenum usage GLuint shader GLenum type GLsizei const GLuint framebuffers GLsizei const GLuint renderbuffers GLuint v GLuint v GLenum GLenum GLenum GLuint GLint level GLsizei GLuint framebuffers GLuint const GLchar name GLenum GLintptr GLsizeiptr GLvoid data GLuint GLenum GLint param GLuint GLenum GLint param GLhandleARB programObj GLenum GLenum GLsizei GLsizei height GLenum GLint GLint GLsizei GLsizei GLsizei GLint GLenum GLenum const GLvoid pixels GLint GLsizei const GLfloat value GLint GLfloat GLfloat v1 GLint GLfloat GLfloat GLfloat v2 GLint GLsizei const GLfloat value GLint GLsizei GLboolean const GLfloat value GLuint program GLuint GLfloat GLfloat GLfloat z
FW_CUDA_FUNC bool isZero(void) const
FW_CUDA_FUNC const T & get(int idx) const
FW_CUDA_FUNC Vec4f(const VectorBase< F32, 4, V > &v)
FW_CUDA_FUNC S & operator*=(const T &a)
FW_CUDA_FUNC Vec3i(S32 xx, S32 yy, S32 zz)
FW_CUDA_FUNC S operator%(const T &a) const
FW_CUDA_FUNC S32 * getPtr(void)
FW_CUDA_FUNC S operator~(void) const
FW_CUDA_FUNC T dot(const VectorBase< T, L, V > &v) const
FW_CUDA_FUNC Mat3d(const Mat3f &a)
FW_CUDA_FUNC T sum(const VectorBase< T, L, S > &v)
FW_CUDA_FUNC int popc16(U32 mask)
FW_CUDA_FUNC S operator/(const T &a, const VectorBase< T, L, S > &b)
FW_CUDA_FUNC Vector(const VectorBase< T, L, V > &v)
CUdevice int ordinal char int CUdevice dev CUdevprop CUdevice dev CUcontext ctx CUcontext ctx CUcontext pctx CUmodule const void image CUmodule const void fatCubin CUfunction CUmodule const char name void p CUfunction unsigned int bytes CUtexref pTexRef CUtexref CUarray unsigned int Flags CUtexref int CUaddress_mode am CUtexref unsigned int Flags CUaddress_mode CUtexref int dim CUarray_format int CUtexref hTexRef CUfunction unsigned int numbytes CUfunction int float value CUfunction int CUtexref hTexRef CUfunction int int grid_height CUevent unsigned int Flags CUevent hEvent CUevent hEvent CUstream unsigned int Flags CUstream hStream GLuint bufferobj unsigned int CUdevice dev CUdeviceptr unsigned int CUmodule const char name CUdeviceptr unsigned int bytesize CUdeviceptr dptr void unsigned int bytesize void CUdeviceptr unsigned int ByteCount CUarray unsigned int CUdeviceptr unsigned int ByteCount CUarray unsigned int const void unsigned int ByteCount CUarray unsigned int CUarray unsigned int unsigned int ByteCount void CUarray unsigned int unsigned int CUstream hStream const CUDA_MEMCPY2D pCopy CUdeviceptr const void unsigned int CUstream hStream const CUDA_MEMCPY2D CUstream hStream CUdeviceptr unsigned char unsigned int N CUdeviceptr unsigned int unsigned int N CUdeviceptr unsigned int unsigned short unsigned int unsigned int Height CUarray const CUDA_ARRAY_DESCRIPTOR pAllocateArray CUarray const CUDA_ARRAY3D_DESCRIPTOR pAllocateArray unsigned int CUtexref CUdeviceptr unsigned int bytes CUcontext unsigned int CUdevice device GLenum texture GLenum GLuint buffer GLenum GLuint renderbuffer GLenum GLsizeiptr const GLvoid GLenum usage GLuint shader GLenum type GLsizei const GLuint framebuffers GLsizei const GLuint renderbuffers GLuint v GLuint v GLenum GLenum GLenum GLuint GLint level GLsizei GLuint framebuffers GLuint const GLchar name GLenum GLintptr GLsizeiptr GLvoid data GLuint GLenum GLint param GLuint GLenum GLint param GLhandleARB programObj GLenum GLenum GLsizei GLsizei height GLenum GLint GLint GLsizei GLsizei GLsizei GLint GLenum GLenum const GLvoid pixels GLint GLsizei const GLfloat value GLint GLfloat GLfloat v1 GLint GLfloat GLfloat GLfloat v2 GLint GLsizei const GLfloat value GLint GLsizei GLboolean const GLfloat value GLuint program GLuint GLfloat GLfloat y
FW_CUDA_FUNC Vec3f(const Vec2f &xy, F32 zz)
FW_CUDA_FUNC S operator>>(const T &a) const
FW_CUDA_FUNC S operator^(const T &a, const VectorBase< T, L, S > &b)
FW_CUDA_FUNC S max(const VectorBase< T, L, V > &v) const
FW_CUDA_FUNC Vec3i(S32 a)
FW_CUDA_FUNC const F64 * getPtr(void) const
FW_CUDA_FUNC Mat4f & operator=(const MatrixBase< F32, 4, V > &v)
static FW_CUDA_FUNC Mat3d fromPtr(const F64 *ptr)
FW_CUDA_FUNC S operator^(const T &a) const
static FW_CUDA_FUNC S translate(const VectorBase< T, L-1, V > &v)
FW_CUDA_FUNC Vec3f(const VectorBase< F32, 3, V > &v)
FW_CUDA_FUNC S invert(const MatrixBase< T, L, S > &v)
FW_CUDA_FUNC S min(const VectorBase< T, L, V > &v) const
CUdevice int ordinal char int CUdevice dev CUdevprop CUdevice dev CUcontext ctx CUcontext ctx CUcontext pctx CUmodule const void image CUmodule const void fatCubin CUfunction CUmodule const char name void p CUfunction unsigned int bytes CUtexref pTexRef CUtexref CUarray unsigned int Flags CUtexref int CUaddress_mode am CUtexref unsigned int Flags CUaddress_mode CUtexref int dim CUarray_format int CUtexref hTexRef CUfunction unsigned int numbytes CUfunction int float value CUfunction int CUtexref hTexRef CUfunction int int grid_height CUevent unsigned int Flags CUevent hEvent CUevent hEvent CUstream unsigned int Flags CUstream hStream GLuint bufferobj unsigned int CUdevice dev CUdeviceptr unsigned int CUmodule const char name CUdeviceptr unsigned int bytesize CUdeviceptr dptr void unsigned int bytesize void CUdeviceptr unsigned int ByteCount CUarray unsigned int CUdeviceptr unsigned int ByteCount CUarray unsigned int const void unsigned int ByteCount CUarray unsigned int CUarray unsigned int unsigned int ByteCount void CUarray unsigned int unsigned int CUstream hStream const CUDA_MEMCPY2D pCopy CUdeviceptr const void unsigned int CUstream hStream const CUDA_MEMCPY2D CUstream hStream CUdeviceptr unsigned char unsigned int N CUdeviceptr unsigned int unsigned int N CUdeviceptr unsigned int unsigned short unsigned int unsigned int Height CUarray const CUDA_ARRAY_DESCRIPTOR pAllocateArray CUarray const CUDA_ARRAY3D_DESCRIPTOR pAllocateArray unsigned int CUtexref CUdeviceptr unsigned int bytes CUcontext unsigned int CUdevice device GLenum texture GLenum GLuint buffer GLenum GLuint renderbuffer GLenum GLsizeiptr const GLvoid GLenum usage GLuint shader GLenum type GLsizei const GLuint framebuffers GLsizei const GLuint renderbuffers GLuint v
FW_CUDA_FUNC F64 * getPtr(void)
FW_CUDA_FUNC Vec2i(const VectorBase< S32, 2, V > &v)
FW_CUDA_FUNC Vec3f(F32 xx, F32 yy, F32 zz)
FW_CUDA_FUNC Vec4i(S32 a)
FW_CUDA_FUNC Vec3d & operator=(const VectorBase< F64, 3, V > &v)
FW_CUDA_FUNC S & operator=(const T &a)
FW_CUDA_FUNC F64 bitsToDouble(U64 a)
static FW_CUDA_FUNC Mat2f fromPtr(const F32 *ptr)
FW_CUDA_FUNC const T * getPtr(void) const
FW_CUDA_FUNC S operator/(const T &a) const
FW_CUDA_FUNC S & operator<<=(const T &a)
FW_CUDA_FUNC S32 * getPtr(void)
static Mat4f perspective(F32 fov, F32 nearDist, F32 farDist)
FW_CUDA_FUNC Vec4f(F32 xx, F32 yy, F32 zz, F32 ww)
FW_CUDA_FUNC Vec3d(const Vec3f &v)
FW_CUDA_FUNC T min(const VectorBase< T, L, S > &v)
FW_CUDA_FUNC S transposed(void) const
FW_CUDA_FUNC T max(const VectorBase< T, L, S > &v)
FW_CUDA_FUNC Vec3d cross(const Vec3d &v) const
FW_CUDA_FUNC Vec4f(F32 a)
FW_CUDA_FUNC S & operator&=(const T &a)
FW_CUDA_FUNC const T & get(int idx) const
FW_CUDA_FUNC S32 abs(S32 a)
FW_CUDA_FUNC S operator*(const T &a) const
FW_CUDA_FUNC S & operator<<=(const T &a)
FW_CUDA_FUNC T set(int r, int c, const T &a)
FW_CUDA_FUNC S & operator%=(const T &a)
FW_CUDA_FUNC T * getPtr(void)
FW_CUDA_FUNC F32 fastClamp(F32 v, F32 lo, F32 hi)
FW_CUDA_FUNC Vec3f cross(const Vec3f &v) const
static FW_CUDA_FUNC Vec4f fromPtr(const F32 *ptr)
FW_CUDA_FUNC S & operator^=(const T &a)
FW_CUDA_FUNC T set(int idx, const T &a)
FW_CUDA_FUNC F32 asin(F32 a)
MINMAX(Vec2i) MINMAX(Vec3i) MINMAX(Vec4i) MINMAX(Vec2f) MINMAX(Vec3f) MINMAX(Vec4f) MINMAX(Vec2d) MINMAX(Vec3d) MINMAX(Vec4d) template< class T
FW_CUDA_FUNC Vec4i(S32 xx, S32 yy, S32 zz, S32 ww)
FW_CUDA_FUNC const F64 * getPtr(void) const
FW_CUDA_FUNC const S32 * getPtr(void) const
FW_CUDA_FUNC Vec2i getXY(void) const
FW_CUDA_FUNC S operator^(const T &a) const
FW_CUDA_FUNC F32 * getPtr(void)
FW_CUDA_FUNC void setZero(void)
FW_CUDA_FUNC F32 * getPtr(void)
FW_CUDA_FUNC Vec4d(F64 xx, F64 yy, F64 zz, F64 ww)
FW_CUDA_FUNC T * getPtr(void)
FW_CUDA_FUNC F64 acos(F64 a)
FW_CUDA_FUNC Vec2f(const VectorBase< F32, 2, V > &v)
FW_CUDA_FUNC S inverted(void) const
FW_CUDA_FUNC F32 ceil(F32 a)
FW_CUDA_FUNC T rcp(const T &a)
FW_CUDA_FUNC Vec2d(const Vec2f &v)
static FW_CUDA_FUNC Mat4d fromPtr(const F64 *ptr)
FW_CUDA_FUNC const Vector< T, L > & col(int c) const
CUdevice int ordinal char int len
FW_CUDA_FUNC S32 * getPtr(void)
static Mat4f fitToView(const Vec2f &pos, const Vec2f &size, const Vec2f &viewSize)
FW_CUDA_FUNC S & operator-=(const T &a)
static FW_CUDA_FUNC Vec2i fromPtr(const S32 *ptr)
FW_CUDA_FUNC const F32 * getPtr(void) const
FW_CUDA_FUNC S & operator+=(const T &a)
FW_CUDA_FUNC Vec4f(const Vec4i &v)
static FW_CUDA_FUNC Vec3f fromPtr(const F32 *ptr)
FW_CUDA_FUNC U64 doubleToBits(F64 a)
FW_CUDA_FUNC int popc8(U32 mask)
FW_CUDA_FUNC S & operator-=(const T &a)
FW_CUDA_FUNC S operator<<(const T &a) const
FW_CUDA_FUNC Vec4f(const Vec2f &xy, F32 zz, F32 ww)
FW_CUDA_FUNC S & operator*=(const T &a)
FW_CUDA_FUNC const F32 * getPtr(void) const
FW_CUDA_FUNC Mat4f(const MatrixBase< F32, 4, V > &v)
FW_CUDA_FUNC Matrix(const MatrixBase< T, L, V > &v)
FW_CUDA_FUNC Matrix & operator=(const MatrixBase< T, L, V > &v)
FW_CUDA_FUNC Vec4d(const Vec2d &xy, const Vec2d &zw)
FW_CUDA_FUNC Vec2f(const Vec2i &v)
static FW_CUDA_FUNC Mat4f fromPtr(const F32 *ptr)
FW_CUDA_FUNC S operator>>(const T &a, const VectorBase< T, L, S > &b)
FW_CUDA_FUNC S operator|(const T &a, const VectorBase< T, L, S > &b)
FW_CUDA_FUNC Vector< T, L > getRow(int r) const
FW_CUDA_FUNC void setIdentity(void)
FW_CUDA_FUNC int popc32(U32 mask)
FW_CUDA_FUNC S & operator+=(const T &a)
FW_CUDA_FUNC void normalize(T len=(T) 1)
FW_CUDA_FUNC S operator-(const T &a, const VectorBase< T, L, S > &b)
CUdevice int ordinal char int CUdevice dev CUdevprop CUdevice dev CUcontext ctx CUcontext ctx CUcontext pctx CUmodule const void image CUmodule const void fatCubin CUfunction CUmodule const char name void p CUfunction unsigned int bytes CUtexref pTexRef CUtexref CUarray unsigned int Flags CUtexref int CUaddress_mode am CUtexref unsigned int Flags CUaddress_mode CUtexref int dim CUarray_format int CUtexref hTexRef CUfunction unsigned int numbytes CUfunction int float value CUfunction int CUtexref hTexRef CUfunction f
FW_CUDA_FUNC F64 * getPtr(void)
FW_CUDA_FUNC F32 cross(const Vec2f &a, const Vec2f &b)
FW_CUDA_FUNC Vec2d getXY(void) const
static FW_CUDA_FUNC Mat2d fromPtr(const F64 *ptr)
FW_CUDA_FUNC Mat3d(F64 a)
FW_CUDA_FUNC F64 sqrt(F64 a)
FW_CUDA_FUNC Mat2d & operator=(const MatrixBase< F64, 2, V > &v)
FW_CUDA_FUNC Vec4f & operator=(const VectorBase< F32, 4, V > &v)
FW_CUDA_FUNC Mat4d(const MatrixBase< F64, 4, V > &v)
FW_CUDA_FUNC F64 floor(F64 a)
FW_CUDA_FUNC Vec3d getXYZ(void) const
FW_CUDA_FUNC F64 * getPtr(void)
void printf(const char *fmt,...)
FW_CUDA_FUNC Vec2i(S32 a)
FW_CUDA_FUNC S operator-(void) const
FW_CUDA_FUNC S normalize(const VectorBase< T, L, S > &v, T len=(T) 1)
F32 fastMin(F32 a, F32 b)
FW_CUDA_FUNC F64 ceil(F64 a)
FW_CUDA_FUNC const T * getPtr(void) const
FW_CUDA_FUNC F32 * getPtr(void)
FW_CUDA_FUNC bool operator!=(const VectorBase< T, L, V > &v) const
FW_CUDA_FUNC T sum(void) const
FW_CUDA_FUNC Mat2d(F64 a)
FW_CUDA_FUNC F64 log(F64 a)
FW_CUDA_FUNC const T & operator[](int idx) const
FW_CUDA_FUNC const Vector< T, L > & getCol(int c) const
FW_CUDA_FUNC S & operator/=(const T &a)
FW_CUDA_FUNC Matrix< T, L > outerProduct(const VectorBase< T, L, S > &a, const VectorBase< T, L, S > &b)
static FW_CUDA_FUNC Vector fromPtr(const T *ptr)
static Mat3d rotation(const Vec3d &axis, F64 angle)
FW_CUDA_FUNC Vec2f(F32 xx, F32 yy)
FW_CUDA_FUNC Vec2i perpendicular(void) const
FW_CUDA_FUNC Vec3f getXYW(void) const
FW_CUDA_FUNC S normalized(T len=(T) 1) const
FW_CUDA_FUNC Vec4i(const VectorBase< S32, 4, V > &v)
FW_CUDA_FUNC F32 * getPtr(void)
FW_CUDA_FUNC F32 atan(F32 a)
FW_CUDA_FUNC void setZero(void)
FW_CUDA_FUNC S operator&(const T &a) const
static Vec4f fromABGR(U32 abgr)
FW_CUDA_FUNC Mat2f(F32 a)
FW_CUDA_FUNC F64 sin(F64 a)
FW_CUDA_FUNC Vec3i(const VectorBase< S32, 3, V > &v)
FW_CUDA_FUNC const F64 * getPtr(void) const
FW_CUDA_FUNC S & operator/=(const T &a)
FW_CUDA_FUNC Vec4f(const Vec2f &xy, const Vec2f &zw)
FW_CUDA_FUNC Vec4f(const Vec3f &xyz, F32 ww)
FW_CUDA_FUNC Vec3d(const Vec2d &xy, F64 zz)
FW_CUDA_FUNC T det(const MatrixBase< T, L, S > &v)
FW_CUDA_FUNC S transpose(const MatrixBase< T, L, S > &v)
FW_CUDA_FUNC Vec3d(F64 xx, F64 yy, F64 zz)
FW_CUDA_FUNC Vec4d & operator=(const VectorBase< F64, 4, V > &v)
FW_CUDA_FUNC S operator%(const T &a) const
FW_CUDA_FUNC Vec4i(const Vec3i &xyz, S32 ww)
FW_CUDA_FUNC S operator~(void) const
FW_CUDA_FUNC Vec3d(const Vec3i &v)
FW_CUDA_FUNC S & operator|=(const T &a)
FW_CUDA_FUNC T detImpl(const MatrixBase< T, L, S > &v)
FW_CUDA_FUNC S & operator%=(const T &a)
FW_CUDA_FUNC Vector & operator=(const VectorBase< T, L, V > &v)
FW_CUDA_FUNC F32 * getPtr(void)
FW_CUDA_FUNC S operator|(const T &a) const
static FW_CUDA_FUNC Vec4i fromPtr(const S32 *ptr)
FW_CUDA_FUNC void set(const T &a)
FW_CUDA_FUNC void setCol(int c, const VectorBase< T, L, V > &v)
FW_CUDA_CONST int c_popc8LUT[]
CUdevice int ordinal char int CUdevice dev CUdevprop CUdevice dev CUcontext ctx CUcontext ctx CUcontext pctx CUmodule const void image CUmodule const void fatCubin CUfunction CUmodule const char name void p CUfunction unsigned int bytes CUtexref pTexRef CUtexref CUarray unsigned int Flags CUtexref int CUaddress_mode am CUtexref unsigned int Flags CUaddress_mode CUtexref int dim CUarray_format int CUtexref hTexRef CUfunction unsigned int numbytes CUfunction int float value CUfunction int CUtexref hTexRef CUfunction int int grid_height CUevent unsigned int Flags CUevent hEvent CUevent hEvent CUstream unsigned int Flags CUstream hStream GLuint bufferobj unsigned int CUdevice dev CUdeviceptr unsigned int CUmodule const char name CUdeviceptr unsigned int bytesize CUdeviceptr dptr void unsigned int bytesize void CUdeviceptr unsigned int ByteCount CUarray unsigned int CUdeviceptr unsigned int ByteCount CUarray unsigned int const void unsigned int ByteCount CUarray unsigned int CUarray unsigned int unsigned int ByteCount void CUarray unsigned int unsigned int CUstream hStream const CUDA_MEMCPY2D pCopy CUdeviceptr const void unsigned int CUstream hStream const CUDA_MEMCPY2D CUstream hStream CUdeviceptr unsigned char unsigned int N CUdeviceptr unsigned int unsigned int N CUdeviceptr unsigned int unsigned short unsigned int unsigned int Height CUarray const CUDA_ARRAY_DESCRIPTOR pAllocateArray CUarray const CUDA_ARRAY3D_DESCRIPTOR pAllocateArray unsigned int CUtexref CUdeviceptr unsigned int bytes CUcontext unsigned int CUdevice device GLenum texture GLenum GLuint buffer GLenum GLuint renderbuffer GLenum GLsizeiptr size
FW_CUDA_FUNC S operator&(const T &a) const
FW_CUDA_FUNC S operator|(const T &a) const
FW_CUDA_FUNC T min(void) const
FW_CUDA_FUNC F32 * getPtr(void)
FW_CUDA_FUNC S operator-(void) const
FW_CUDA_FUNC S operator%(const T &a, const VectorBase< T, L, S > &b)
static FW_CUDA_FUNC Vec4d fromPtr(const F64 *ptr)
FW_CUDA_FUNC A lerp(const A &a, const A &b, const B &t)
FW_CUDA_FUNC Vec2i & operator=(const VectorBase< S32, 2, V > &v)
FW_CUDA_FUNC Vec3i & operator=(const VectorBase< S32, 3, V > &v)
FW_CUDA_FUNC S operator/(const T &a) const
FW_CUDA_FUNC S operator*(const T &a) const
FW_CUDA_FUNC T length(void) const
FW_CUDA_FUNC F64 * getPtr(void)
static FW_CUDA_FUNC Matrix fromPtr(const T *ptr)
FW_CUDA_FUNC S operator*(const T &a, const VectorBase< T, L, S > &b)
FW_CUDA_FUNC Vec4d(F64 a)