diff --git a/build_linux64/libamsculib2.linux64.a b/build_linux64/libamsculib2.linux64.a index acd0de8..03f8a6f 100644 Binary files a/build_linux64/libamsculib2.linux64.a and b/build_linux64/libamsculib2.linux64.a differ diff --git a/build_linux64/objstore/amscu_comp128.o b/build_linux64/objstore/amscu_comp128.o index 7a200b5..31b4869 100644 Binary files a/build_linux64/objstore/amscu_comp128.o and b/build_linux64/objstore/amscu_comp128.o differ diff --git a/build_linux64/objstore/amscu_comp64.o b/build_linux64/objstore/amscu_comp64.o index f090396..600fd01 100644 Binary files a/build_linux64/objstore/amscu_comp64.o and b/build_linux64/objstore/amscu_comp64.o differ diff --git a/build_linux64/objstore/amscu_cudafunctions.o b/build_linux64/objstore/amscu_cudafunctions.o index 2d8016e..c8def50 100644 Binary files a/build_linux64/objstore/amscu_cudafunctions.o and b/build_linux64/objstore/amscu_cudafunctions.o differ diff --git a/build_linux64/objstore/amscu_random.o b/build_linux64/objstore/amscu_random.o index 2671d27..c9163e1 100644 Binary files a/build_linux64/objstore/amscu_random.o and b/build_linux64/objstore/amscu_random.o differ diff --git a/build_linux64/objstore/amscuarray.o b/build_linux64/objstore/amscuarray.o index caafc0f..7b9bf27 100644 Binary files a/build_linux64/objstore/amscuarray.o and b/build_linux64/objstore/amscuarray.o differ diff --git a/build_linux64/objstore/amscuarray_dops.o b/build_linux64/objstore/amscuarray_dops.o index 41f8c25..25e8f42 100644 Binary files a/build_linux64/objstore/amscuarray_dops.o and b/build_linux64/objstore/amscuarray_dops.o differ diff --git a/build_linux64/objstore/amscugeom.o b/build_linux64/objstore/amscugeom.o index fc00e2b..7260fa5 100644 Binary files a/build_linux64/objstore/amscugeom.o and b/build_linux64/objstore/amscugeom.o differ diff --git a/build_linux64/objstore/amsculib2.o b/build_linux64/objstore/amsculib2.o index d313493..838b8fa 100644 Binary files a/build_linux64/objstore/amsculib2.o and b/build_linux64/objstore/amsculib2.o differ diff --git a/build_linux64/objstore/amscumath.o b/build_linux64/objstore/amscumath.o index d52001f..b947051 100644 Binary files a/build_linux64/objstore/amscumath.o and b/build_linux64/objstore/amscumath.o differ diff --git a/build_linux64/objstore/amscurarray.o b/build_linux64/objstore/amscurarray.o index 86b36d1..6e2bd50 100644 Binary files a/build_linux64/objstore/amscurarray.o and b/build_linux64/objstore/amscurarray.o differ diff --git a/build_linux64/objstore/cuvect2.o b/build_linux64/objstore/cuvect2.o index 8d550bb..1a20557 100644 Binary files a/build_linux64/objstore/cuvect2.o and b/build_linux64/objstore/cuvect2.o differ diff --git a/build_linux64/objstore/cuvect2f.o b/build_linux64/objstore/cuvect2f.o index 8c71cd0..9d85181 100644 Binary files a/build_linux64/objstore/cuvect2f.o and b/build_linux64/objstore/cuvect2f.o differ diff --git a/build_linux64/objstore/cuvect3.o b/build_linux64/objstore/cuvect3.o index 423c54f..629ecd0 100644 Binary files a/build_linux64/objstore/cuvect3.o and b/build_linux64/objstore/cuvect3.o differ diff --git a/build_linux64/objstore/cuvect3f.o b/build_linux64/objstore/cuvect3f.o index 2a51cb3..dbf481c 100644 Binary files a/build_linux64/objstore/cuvect3f.o and b/build_linux64/objstore/cuvect3f.o differ diff --git a/build_linux64/objstore/cuvect4.o b/build_linux64/objstore/cuvect4.o index 7aa2ade..038e6a4 100644 Binary files a/build_linux64/objstore/cuvect4.o and b/build_linux64/objstore/cuvect4.o differ diff --git a/build_linux64/objstore/cuvect4f.o b/build_linux64/objstore/cuvect4f.o index 6a6bfd2..78c5350 100644 Binary files a/build_linux64/objstore/cuvect4f.o and b/build_linux64/objstore/cuvect4f.o differ diff --git a/build_linux64/test b/build_linux64/test index 58f7bed..aa56a4f 100644 Binary files a/build_linux64/test and b/build_linux64/test differ diff --git a/include/amsculib2/cuvect2.hpp b/include/amsculib2/cuvect2.hpp index 1e1a5b9..170897e 100644 --- a/include/amsculib2/cuvect2.hpp +++ b/include/amsculib2/cuvect2.hpp @@ -42,6 +42,7 @@ namespace amscuda __host__ __device__ cumat2 operator/(double lhs); __host__ __device__ cuvect2 operator*(cuvect2 lhs); __host__ __device__ cumat2 operator*(cumat2 lhs); + __host__ __device__ friend cumat2 operator-(cumat2 rhs); __host__ __device__ double det(); __host__ __device__ cumat2 transpose(); diff --git a/include/amsculib2/cuvect2f.hpp b/include/amsculib2/cuvect2f.hpp index 9bd2c1b..237f736 100644 --- a/include/amsculib2/cuvect2f.hpp +++ b/include/amsculib2/cuvect2f.hpp @@ -42,6 +42,7 @@ namespace amscuda __host__ __device__ cumat2f operator/(float lhs); __host__ __device__ cuvect2f operator*(cuvect2f lhs); __host__ __device__ cumat2f operator*(cumat2f lhs); + __host__ __device__ friend cumat2f operator-(cumat2f rhs); __host__ __device__ float det(); __host__ __device__ cumat2f transpose(); diff --git a/include/amsculib2/cuvect3.hpp b/include/amsculib2/cuvect3.hpp index 60eaf3c..f0c96bc 100644 --- a/include/amsculib2/cuvect3.hpp +++ b/include/amsculib2/cuvect3.hpp @@ -43,6 +43,7 @@ namespace amscuda __host__ __device__ cumat3 operator/(double lhs); __host__ __device__ cuvect3 operator*(cuvect3 lhs); __host__ __device__ cumat3 operator*(cumat3 lhs); + __host__ __device__ friend cumat3 operator-(cumat3 rhs); __host__ __device__ double det(); __host__ __device__ cumat3 transpose(); diff --git a/include/amsculib2/cuvect3f.hpp b/include/amsculib2/cuvect3f.hpp index 36e14fd..bc66d68 100644 --- a/include/amsculib2/cuvect3f.hpp +++ b/include/amsculib2/cuvect3f.hpp @@ -43,10 +43,12 @@ namespace amscuda __host__ __device__ cumat3f operator/(float lhs); __host__ __device__ cuvect3f operator*(cuvect3f lhs); __host__ __device__ cumat3f operator*(cumat3f lhs); - + __host__ __device__ friend cumat3f operator-(cumat3f rhs); + __host__ __device__ float det(); __host__ __device__ cumat3f transpose(); __host__ __device__ cumat3f inverse(); + }; __host__ __device__ float cuvect3f_dot(cuvect3f a, cuvect3f b); diff --git a/include/amsculib2/cuvect4.hpp b/include/amsculib2/cuvect4.hpp index 4bafb99..2125852 100644 --- a/include/amsculib2/cuvect4.hpp +++ b/include/amsculib2/cuvect4.hpp @@ -43,6 +43,7 @@ namespace amscuda __host__ __device__ cumat4 operator/(double lhs); __host__ __device__ cuvect4 operator*(cuvect4 lhs); __host__ __device__ cumat4 operator*(cumat4 lhs); + __host__ __device__ friend cumat4 operator-(cumat4 rhs); __host__ __device__ double det(); __host__ __device__ cumat4 transpose(); diff --git a/include/amsculib2/cuvect4f.hpp b/include/amsculib2/cuvect4f.hpp index 169f753..e70b2f9 100644 --- a/include/amsculib2/cuvect4f.hpp +++ b/include/amsculib2/cuvect4f.hpp @@ -43,6 +43,7 @@ namespace amscuda __host__ __device__ cumat4f operator/(float lhs); __host__ __device__ cuvect4f operator*(cuvect4f lhs); __host__ __device__ cumat4f operator*(cumat4f lhs); + __host__ __device__ friend cumat4f operator-(cumat4f rhs); __host__ __device__ float det(); __host__ __device__ cumat4f transpose(); diff --git a/src/amsculib2/cuvect2.cu b/src/amsculib2/cuvect2.cu index 5ef57a6..22a3596 100644 --- a/src/amsculib2/cuvect2.cu +++ b/src/amsculib2/cuvect2.cu @@ -359,6 +359,14 @@ __host__ __device__ cuvect2 operator-(cuvect2 rhs) return ret; } +__host__ __device__ cumat2 operator-(cumat2 rhs) +{ + cumat2 ret; + int I; + for(I=0;I<4;I++) ret[I] = -rhs[I]; + return ret; +} + void test_cuvect2_1() { diff --git a/src/amsculib2/cuvect2f.cu b/src/amsculib2/cuvect2f.cu index 240ed6a..42c63db 100644 --- a/src/amsculib2/cuvect2f.cu +++ b/src/amsculib2/cuvect2f.cu @@ -359,6 +359,14 @@ __host__ __device__ cuvect2f operator-(cuvect2f rhs) return ret; } +__host__ __device__ cumat2f operator-(cumat2f rhs) +{ + cumat2f ret; + int I; + for(I=0;I<4;I++) ret[I] = -rhs[I]; + return ret; +} + void test_cuvect2f_1() { diff --git a/src/amsculib2/cuvect3.cu b/src/amsculib2/cuvect3.cu index fed1072..6a9357c 100644 --- a/src/amsculib2/cuvect3.cu +++ b/src/amsculib2/cuvect3.cu @@ -587,6 +587,12 @@ __host__ __device__ cuvect3 operator-(cuvect3 rhs) return ret; } - +__host__ __device__ cumat3 operator-(cumat3 rhs) +{ + cumat3 ret; + int I; + for(I=0;I<9;I++) ret[I] = -rhs[I]; + return ret; +} }; \ No newline at end of file diff --git a/src/amsculib2/cuvect3f.cu b/src/amsculib2/cuvect3f.cu index 71913d2..8be5f3d 100644 --- a/src/amsculib2/cuvect3f.cu +++ b/src/amsculib2/cuvect3f.cu @@ -587,4 +587,12 @@ __host__ __device__ cuvect3f operator-(cuvect3f rhs) return ret; } +__host__ __device__ cumat3f operator-(cumat3f rhs) +{ + cumat3f ret; + int I; + for(I=0;I<9;I++) ret[I] = -rhs[I]; + return ret; +} + }; \ No newline at end of file diff --git a/src/amsculib2/cuvect4.cu b/src/amsculib2/cuvect4.cu index 2b5f163..f8f4aff 100644 --- a/src/amsculib2/cuvect4.cu +++ b/src/amsculib2/cuvect4.cu @@ -420,5 +420,13 @@ __host__ __device__ cuvect4 operator-(cuvect4 rhs) return ret; } +__host__ __device__ cumat4 operator-(cumat4 rhs) +{ + cumat4 ret; + int I; + for(I=0;I<16;I++) ret[I] = -rhs[I]; + return ret; +} + }; \ No newline at end of file diff --git a/src/amsculib2/cuvect4f.cu b/src/amsculib2/cuvect4f.cu index 6701afa..3718341 100644 --- a/src/amsculib2/cuvect4f.cu +++ b/src/amsculib2/cuvect4f.cu @@ -424,4 +424,12 @@ __host__ __device__ cuvect4f operator-(cuvect4f rhs) return ret; } +__host__ __device__ cumat4f operator-(cumat4f rhs) +{ + cumat4f ret; + int I; + for(I=0;I<16;I++) ret[I] = -rhs[I]; + return ret; +} + }; //namespace amscuda