From 35cfeccc536d8b8395484f043970b4f014654fc8 Mon Sep 17 00:00:00 2001 From: madrocketsci Date: Thu, 9 Apr 2026 14:48:31 -0400 Subject: [PATCH] changing to refs to reduce pass-by-value overhead --- build_linux64/libamsculib2.linux64.a | Bin 821090 -> 823262 bytes build_linux64/objstore/amscu_comp128.o | Bin 104104 -> 104520 bytes build_linux64/objstore/amscu_comp64.o | Bin 96352 -> 96992 bytes build_linux64/objstore/amscu_cudafunctions.o | Bin 9424 -> 9424 bytes build_linux64/objstore/amscu_random.o | Bin 59016 -> 59016 bytes build_linux64/objstore/amscuarray.o | Bin 17856 -> 17856 bytes build_linux64/objstore/amscuarray_dops.o | Bin 35304 -> 35304 bytes build_linux64/objstore/amscugeom.o | Bin 8624 -> 8624 bytes build_linux64/objstore/amsculib2.o | Bin 8624 -> 8624 bytes build_linux64/objstore/amscumath.o | Bin 46832 -> 47792 bytes build_linux64/objstore/amscurarray.o | Bin 22256 -> 22256 bytes build_linux64/objstore/cuvect2.o | Bin 47600 -> 47600 bytes build_linux64/objstore/cuvect2f.o | Bin 43472 -> 43472 bytes build_linux64/objstore/cuvect3.o | Bin 83024 -> 83024 bytes build_linux64/objstore/cuvect3f.o | Bin 101344 -> 101344 bytes build_linux64/objstore/cuvect4.o | Bin 60936 -> 60936 bytes build_linux64/objstore/cuvect4f.o | Bin 55392 -> 55392 bytes build_linux64/test | Bin 1640072 -> 1648528 bytes include/amsculib2/amscumath.hpp | 28 +- include/amsculib2/amscumath_impl.hpp | 12 +- .../include/amsculib2/amscu_comp128.hpp | 89 ++ .../include/amsculib2/amscu_comp64.hpp | 88 ++ .../include/amsculib2/amscu_cudafunctions.hpp | 40 + .../amsculib2/amscu_cudafunctions_impl.hpp | 228 +++++ .../include/amsculib2/amscu_random.hpp | 55 ++ .../include/amsculib2/amscuarray.hpp | 47 + .../include/amsculib2/amscuarray_dops.hpp | 76 ++ .../amsculib2/amscuarray_dops_impl.hpp | 404 ++++++++ .../include/amsculib2/amscuarray_impl.hpp | 323 +++++++ .../include/amsculib2/amscuda_binarrrw.hpp | 19 + .../amsculib2/amscuda_binarrrw_impl.hpp | 194 ++++ .../include/amsculib2/amscugeom.hpp | 11 + .../include/amsculib2/amsculib2.hpp | 70 ++ .../include/amsculib2/amscumath.hpp | 56 ++ .../include/amsculib2/amscumath_impl.hpp | 42 + .../include/amsculib2/amscurarray.cuh | 66 ++ .../include/amsculib2/amscurarray_impl.cuh | 529 ++++++++++ .../include/amsculib2/cuvect2.hpp | 87 ++ .../include/amsculib2/cuvect2f.hpp | 86 ++ .../include/amsculib2/cuvect3.hpp | 88 ++ .../include/amsculib2/cuvect3f.hpp | 122 +++ .../include/amsculib2/cuvect4.hpp | 61 ++ .../include/amsculib2/cuvect4f.hpp | 62 ++ .../src/amsculib2/amscu_comp128.cu | 476 +++++++++ .../src/amsculib2/amscu_comp64.cu | 476 +++++++++ .../src/amsculib2/amscu_cudafunctions.cu | 21 + .../src/amsculib2/amscu_random.cu | 222 +++++ .../src/amsculib2/amscuarray.cu | 63 ++ .../src/amsculib2/amscuarray_dops.cu | 213 ++++ .../src/amsculib2/amscugeom.cu | 6 + .../src/amsculib2/amsculib2.cu | 6 + .../src/amsculib2/amscumath.cu | 269 +++++ .../src/amsculib2/amscurarray.cu | 85 ++ .../src/amsculib2/cuvect2.cu | 377 ++++++++ .../src/amsculib2/cuvect2f.cu | 377 ++++++++ .../src/amsculib2/cuvect3.cu | 598 ++++++++++++ .../src/amsculib2/cuvect3f.cu | 915 ++++++++++++++++++ .../src/amsculib2/cuvect4.cu | 432 +++++++++ .../src/amsculib2/cuvect4f.cu | 435 +++++++++ old/9apr26_prerefactor/src/main.cu | 27 + .../bin_linux64/libamsculib2.linux64.a | Bin old/{ => feb2026}/bin_linux64/test | Bin .../bin_winx64/libamsculib2.msvc64.lib | Bin old/{ => feb2026}/bin_winx64/test.exe | Bin old/{ => feb2026}/bin_winx64/test.exp | Bin old/{ => feb2026}/bin_winx64/test.lib | Bin .../__pycache__/complib2.cpython-310.pyc | Bin .../__pycache__/complib2.cpython-312.pyc | Bin .../__pycache__/complib2.cpython-36.pyc | Bin .../__pycache__/complib2.cpython-38.pyc | Bin .../__pycache__/complib2.cpython-39.pyc | Bin .../__pycache__/complib3.cpython-310.pyc | Bin .../__pycache__/complib3.cpython-312.pyc | Bin .../__pycache__/complib3.cpython-39.pyc | Bin old/{ => feb2026}/compscripts/complib2.py | 0 old/{ => feb2026}/compscripts/complib3.py | 0 .../compscripts/linux64.makelib.py | 0 .../compscripts/linux64.maketest.py | 0 old/{ => feb2026}/compscripts/old/complib2.py | 0 .../compscripts/old/linux64.makelib.py | 0 .../compscripts/old/linux64.maketest.py | 0 .../compscripts/old/msvc.makelib.py | 0 .../compscripts/old/msvc.maketest.py | 0 .../compscripts/old/winnvcc.makelib.py | 0 .../compscripts/old/winnvcc.maketest.py | 0 .../compscripts/winnvcc.makelib.py | 0 .../compscripts/winnvcc.maketest.py | 0 old/{ => feb2026}/run.py | 0 old/{ => feb2026}/run3.py | 0 src/amsculib2/amscumath.cu | 514 ++++++---- 90 files changed, 8180 insertions(+), 215 deletions(-) create mode 100644 old/9apr26_prerefactor/include/amsculib2/amscu_comp128.hpp create mode 100644 old/9apr26_prerefactor/include/amsculib2/amscu_comp64.hpp create mode 100644 old/9apr26_prerefactor/include/amsculib2/amscu_cudafunctions.hpp create mode 100644 old/9apr26_prerefactor/include/amsculib2/amscu_cudafunctions_impl.hpp create mode 100644 old/9apr26_prerefactor/include/amsculib2/amscu_random.hpp create mode 100644 old/9apr26_prerefactor/include/amsculib2/amscuarray.hpp create mode 100644 old/9apr26_prerefactor/include/amsculib2/amscuarray_dops.hpp create mode 100644 old/9apr26_prerefactor/include/amsculib2/amscuarray_dops_impl.hpp create mode 100644 old/9apr26_prerefactor/include/amsculib2/amscuarray_impl.hpp create mode 100644 old/9apr26_prerefactor/include/amsculib2/amscuda_binarrrw.hpp create mode 100644 old/9apr26_prerefactor/include/amsculib2/amscuda_binarrrw_impl.hpp create mode 100644 old/9apr26_prerefactor/include/amsculib2/amscugeom.hpp create mode 100644 old/9apr26_prerefactor/include/amsculib2/amsculib2.hpp create mode 100644 old/9apr26_prerefactor/include/amsculib2/amscumath.hpp create mode 100644 old/9apr26_prerefactor/include/amsculib2/amscumath_impl.hpp create mode 100644 old/9apr26_prerefactor/include/amsculib2/amscurarray.cuh create mode 100644 old/9apr26_prerefactor/include/amsculib2/amscurarray_impl.cuh create mode 100644 old/9apr26_prerefactor/include/amsculib2/cuvect2.hpp create mode 100644 old/9apr26_prerefactor/include/amsculib2/cuvect2f.hpp create mode 100644 old/9apr26_prerefactor/include/amsculib2/cuvect3.hpp create mode 100644 old/9apr26_prerefactor/include/amsculib2/cuvect3f.hpp create mode 100644 old/9apr26_prerefactor/include/amsculib2/cuvect4.hpp create mode 100644 old/9apr26_prerefactor/include/amsculib2/cuvect4f.hpp create mode 100644 old/9apr26_prerefactor/src/amsculib2/amscu_comp128.cu create mode 100644 old/9apr26_prerefactor/src/amsculib2/amscu_comp64.cu create mode 100644 old/9apr26_prerefactor/src/amsculib2/amscu_cudafunctions.cu create mode 100644 old/9apr26_prerefactor/src/amsculib2/amscu_random.cu create mode 100644 old/9apr26_prerefactor/src/amsculib2/amscuarray.cu create mode 100644 old/9apr26_prerefactor/src/amsculib2/amscuarray_dops.cu create mode 100644 old/9apr26_prerefactor/src/amsculib2/amscugeom.cu create mode 100644 old/9apr26_prerefactor/src/amsculib2/amsculib2.cu create mode 100644 old/9apr26_prerefactor/src/amsculib2/amscumath.cu create mode 100644 old/9apr26_prerefactor/src/amsculib2/amscurarray.cu create mode 100644 old/9apr26_prerefactor/src/amsculib2/cuvect2.cu create mode 100644 old/9apr26_prerefactor/src/amsculib2/cuvect2f.cu create mode 100644 old/9apr26_prerefactor/src/amsculib2/cuvect3.cu create mode 100644 old/9apr26_prerefactor/src/amsculib2/cuvect3f.cu create mode 100644 old/9apr26_prerefactor/src/amsculib2/cuvect4.cu create mode 100644 old/9apr26_prerefactor/src/amsculib2/cuvect4f.cu create mode 100644 old/9apr26_prerefactor/src/main.cu rename old/{ => feb2026}/bin_linux64/libamsculib2.linux64.a (100%) rename old/{ => feb2026}/bin_linux64/test (100%) rename old/{ => feb2026}/bin_winx64/libamsculib2.msvc64.lib (100%) rename old/{ => feb2026}/bin_winx64/test.exe (100%) rename old/{ => feb2026}/bin_winx64/test.exp (100%) rename old/{ => feb2026}/bin_winx64/test.lib (100%) rename old/{ => feb2026}/compscripts/__pycache__/complib2.cpython-310.pyc (100%) rename old/{ => feb2026}/compscripts/__pycache__/complib2.cpython-312.pyc (100%) rename old/{ => feb2026}/compscripts/__pycache__/complib2.cpython-36.pyc (100%) rename old/{ => feb2026}/compscripts/__pycache__/complib2.cpython-38.pyc (100%) rename old/{ => feb2026}/compscripts/__pycache__/complib2.cpython-39.pyc (100%) rename old/{ => feb2026}/compscripts/__pycache__/complib3.cpython-310.pyc (100%) rename old/{ => feb2026}/compscripts/__pycache__/complib3.cpython-312.pyc (100%) rename old/{ => feb2026}/compscripts/__pycache__/complib3.cpython-39.pyc (100%) rename old/{ => feb2026}/compscripts/complib2.py (100%) rename old/{ => feb2026}/compscripts/complib3.py (100%) rename old/{ => feb2026}/compscripts/linux64.makelib.py (100%) rename old/{ => feb2026}/compscripts/linux64.maketest.py (100%) rename old/{ => feb2026}/compscripts/old/complib2.py (100%) rename old/{ => feb2026}/compscripts/old/linux64.makelib.py (100%) rename old/{ => feb2026}/compscripts/old/linux64.maketest.py (100%) rename old/{ => feb2026}/compscripts/old/msvc.makelib.py (100%) rename old/{ => feb2026}/compscripts/old/msvc.maketest.py (100%) rename old/{ => feb2026}/compscripts/old/winnvcc.makelib.py (100%) rename old/{ => feb2026}/compscripts/old/winnvcc.maketest.py (100%) rename old/{ => feb2026}/compscripts/winnvcc.makelib.py (100%) rename old/{ => feb2026}/compscripts/winnvcc.maketest.py (100%) rename old/{ => feb2026}/run.py (100%) rename old/{ => feb2026}/run3.py (100%) diff --git a/build_linux64/libamsculib2.linux64.a b/build_linux64/libamsculib2.linux64.a index 6b696bbb19013d7476cb12a092d1d6633be78fdd..391c99e0c3c70df56f59108c615bf5300c80e072 100644 GIT binary patch delta 115924 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 UxzPOH;xB12jSKcK`qY delta 113799 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 gRgXVWB>pF diff --git a/build_linux64/objstore/amscu_comp128.o b/build_linux64/objstore/amscu_comp128.o index ff579cbc8aaddb9c852932169ab635e5d50944b1..9c023c45db8fbf16422afc0837470f7379068def 100644 GIT binary patch delta 36954 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%0DV!5swZRvXww5!umokTuX-hf2 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 F{{aJ`t_c7D diff --git a/build_linux64/objstore/amscu_comp64.o b/build_linux64/objstore/amscu_comp64.o index 43bc637d65a15b5e4a76ae22217ea1ceae58a85e..8c2125c90f3eddc4b764f44182ddddd6618b8dc1 100644 GIT binary patch delta 35243 zcmYIw3wRvGk#O~N&(7>~W_Kj*TCbg*m8I2M*1q&u`K7V^l4S$3F}8$cynYL8u)%-@ z0d{PhSR?@i1F`Qegy9ho$#ExR4wM{8HaX|eU6MN`#|7na$6{Vi0zo#|RuW_VH8Pjq z-{gw+5>RA=1_~LnfIL4{Bo`}CF48(Rx9~X9Xeud4A0YK*i%WFcZ!Y9)8 ztJpcozr04a$ygLRAH2Or?tJi`8gUjcoVx%$tY5B&IdC;#C4v8(*}^lW#4 z1448JlXqMx&%49?_c?Xy*T`(~>HLbdD>*_k0uZ=`!1rMgfz;r>lm7D87)z#8&F0Um zPnM_Fui3E-eB%!3HgLHjM7kTQrCM-E^US{uzczo1RxUMw;`Iu?1V{mamztmi>AX}a z1f(6XoOCcmRr=;Sq?mcXdJ}oo{G+;?tTZ=9c1z9kN_=sUR#LZbK1i3$pGJ1k`{oDD zZ)j!a8m*gyr1^xlog6kvbQ@vjj_CHrcUnVO#n(#h8qafrBxHj&;tL?n2e*{YhTT!{ z-3-_Vkp5tvkA@reXXpCr!6y*uT((6jWanT>`X(sYaU#8!ozK^Sa63qGtp1OtUZawE z=GK}ZDKYOtc)f3mN+B=qWMwngXBNW zFVxM=KTG`o6oQ6p(W=znIXa>0+D_1}5<*ZRhCn$Sg183|7(;}N`5zHcf(We!$)0Ya zT#s3dQ-(1s66Ig7lrAARL#Ct?%lkQH7iKc2d>tzM5K1QG$0d=ltf~(nu15@-l zpsvA=G}tBob2#1&_IQ8o$>qTj0zOLu-YZ>JZo{rxoca@Q4jOjbOqvhbud|^IK2*W#lZf8U}hS>m7eqs}eGBca0n@X~z;YM3p{vS}>CR<#w1jTLYCR#`76?yhV*t4jh zzU;ccn$0wC*_GnbE7=`avKOvo|1+Cu{@|73irGwkBA6u&H`zjhAr!aA7Q7dM9w2#8 zp9tk;14O2Oxl+0? zo2hFnvZP_JE$%54*K7CS7Zshe(hMO`iA?zd*qWLh=VMs@T%9QOPgp{2G*r#z3ihQ! z#R+>9i#WGG#tfOJF|#;rUiB=KdZ;=}8g91b{SxI}Z_5+HsMhO6qU^>7Y@<2;xwL=7 zDp``Boi>qajVhLPPT7hXa@&2u^<+;iu7p2hrV?#_1aq8Id;SNA`bs2A8g8+LxHS~l zXG4oL6xWBdg==kA+|NE2cNy#8aFWs4eAYV9X1OzpW2fG8yqgPB7rT#mXaCDJamNe`~A$}Z6!>zV7xgMe0Y}7pn9IyeD+pyWDaq(e$ zUfD3H_v7BuaJ!9+%|r4XHs3c8xYI^S4G0~yQ8yrPL*B-HwP6^lZoryseiD4=cKa

)80hdR+}a!k+v0S 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 delta 34486 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�aajI*6HIMAa+%MZcHc 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 delta 401 zcmeA;%iM96c|$M{i;0<;;pT824GRdX*=2JUm^ImIy%~g2vOWk+gk?h%n#dd^5kZiV z=83t*$)zcY#(9Z(u9Fov*rI9Jv(XDKf~p}iFAbZ9Gn)_^_>pZeD#)BHzrh}E8ia9Y zGeS8;BxMV_$eS(b9;?}kCbF4l8y6EqztoNZ2qSMtFdN7L@miB>w#!U5-C+t5m)RK! u6W_O8Y4Y5i5c@X2-no;9#mvAYW%G(-+^i6_+fO?|7>Z{^Hw&F9lL7#5{eE)* diff --git a/build_linux64/objstore/amscuarray.o b/build_linux64/objstore/amscuarray.o index 777dd9e45395f530a7e8d51543f5fb10d6085f44..1227dad8c2bd5ced15291297a69528b25d9ccb49 100644 GIT binary patch delta 319 zcmX@m&3K@jal=s#RzpimGo#I?I9{?rnLGG}Ss={G7le(WEDn)i46zwl#56=P)$I^< z#?WgahAFlKi*Zwwpse$<3X`YE sn!$Oc5Y}c-x!0U5CMjt~n=Ldln4!{3we8u!1~N>ZXKA`wUT2{s0Qrnn@Bjb+ delta 319 zcmX@m&3K@jal=s#RwEN*WAn|YI9{?rnLGG}Ss={G7le(WEDn)i46zwl#56=P)$I^< z#?WgahAFlKi*Zwwpse$<3X`YE sn!$Oc5Y}c-x!0U5rfCM2n=Ldln4!{3we8u!1~N>ZXKA`wUT2{s0APJo zm!>36u8S0(ywKPIu3ivX);KRQ&vo(!H!HX_gt5xRA5Fx{)EzE@VuVRrW?tIl`NmGz zrHu+QT^TTK*nG<@9^%u zm!>36u8S0(ywKPIu3ivX);KRQ&vo(!H!HX_gt5xRA5Fx{)EzE@VuVRrW?tIl`NmGz zrHu+QT^TTK*nG<@9^%uTi}qLAS^z4E4vw77Q#^Da77bYh9RQHiJ=Bbgdf=rMg^IZ71^y&joiG9 zOP3KMbe-Fm4WvF^YqA`-%w#tnBZznnPXL5*fhP>cP?+q+8wKWUUcsxv%3_iV44n%? Rf1yTQ6tRa$iipnP0RRT)Qz-xd delta 322 zcmdnsyuo?HQ6?4>6GM~DCz-M!tjQ;tWG9EPJ_id=wr4YjFv{3M;UYXB9p;I-#mS{9 ziIek%MJFq>Ti}qLAS^z4E4vw77Q#^Da77bYh9RQHiJ=Bbgdf=rMg^IZ71^y&joiG9 zOP3KMbe-Fm4WvF^YqA`-%w#tnBZznnPXL5*fhP>cP?+q+8wKWUUcsxv%3_*kYPR`; R&|j!g7e(wLk|LsWcmQ&7Q`Z0h diff --git a/build_linux64/objstore/amsculib2.o b/build_linux64/objstore/amsculib2.o index e93abb5bc6940ba60db0a3d5bb0b851f8aeece69..ba098f7646f46d69f9f21e697d91fad20f0e7837 100644 GIT binary patch delta 322 zcmdnsyuo?HQ6?4x12c=wCz-M!tjQ;tWG9EPJ_id=wr4YjFv{3M;UYXB9p;I-#mS{9 ziIek%MJFq>Ti}qLAS^z4E4vw77Q#^Da77bYh9RQHiJ=Bbgdf=rMg^IZ71^y&joiG9 zOP3KMbe-Fm4WvF^YqA`-%w#tnBZznnPXL5*fhP>cP?+q+8wKWUUcsxv%3_jgn!Ndf R&|j!g7e(wLk|LsWcmRfeR2~2T delta 322 zcmdnsyuo?HQ6?4>6H~LzCz-M!tjQ;tWG9EPJ_id=wr4YjFv{3M;UYXB9p;I-#mS{9 ziIek%MJFq>Ti}qLAS^z4E4vw77Q#^Da77bYh9RQHiJ=Bbgdf=rMg^IZ71^y&joiG9 zOP3KMbe-Fm4WvF^YqA`-%w#tnBZznnPXL5*fhP>cP?+q+8wKWUUcsxv%3_*kZm{`+ R&|j!g7e(wLk|LsWcmUgxRC@pb diff --git a/build_linux64/objstore/amscumath.o b/build_linux64/objstore/amscumath.o index 375cf4c2181fb843b28ff11788beb3a1877dcee6..469a8e53d358c6b32a0cdd2fd0af63cf7a535cf1 100644 GIT binary patch literal 47792 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 l2oJ~r^TgcZ z^JDAUDNpO`caPGg+kG0LI+|;X;%xs8^VrQEvj{ mB!L;5*&5OWSxnMQEjJfT6z70QcF(khFh0x_-TZJSzXAZrvu$|* delta 347 zcmezHnd!r4rVZDGSxn3<%s1Z>4zP!?^n$%rz^uu&<%ST(rgDEY5vvM>2oJ~r^TgcZ z^JDAUDNpO`caPGg+kG0LI+|;X;%xs8^VrQEvj{ mB!L;5*&5OWS zNb|(p;^fklMB}`~JlDyLnU-)3DAFcrK>5iNaY-9z=B44)4U|XG&5vxiQ99bA zNb|(p;^fklMB}`~JlDyLnU-)3DAFcrK>5iNaY-9z=B44)4U|XG&5vxiQ9!JOj;6-y zp*@<&ribou5h0MZ=83t*$)zcY#+i9(t_+g{`=A!WZC>>Vp#!2->oJTL SP2a)EXbWa-|H;W1ZUq3nKWSC~ delta 308 zcmcc6!Fr*Cb%Tx}i;20Z(Pjg~pjZg2t?zaKm^JzBeTd}bS@-?XM3f$&i>!JOj;6-y zp*@<&ribou5h0MZ=83t*$)zcY#+i9(t_+g{`=A!WZC>>Vp#!2->oJTL SP2a)EXbWa-|H;W1ZUq1|Vrk_7 diff --git a/build_linux64/objstore/cuvect3f.o b/build_linux64/objstore/cuvect3f.o index 0dfc3e2cbe8d658c2cdb03aae7e6393253dfddad..2ba5aa93fcae7eadb1fb8b9c537469a099473fa2 100644 GIT binary patch delta 707 zcmaDbo$bMNwhhy)`I3#zO)L$Q%;JpW*kK`e0KhhU!l9#N6WK(v-yM z>%AGprx$B6>SEI*ja`#*USgi>^oN>^`Xp#FNdxMdUZ_QqCgaS!G%{=g>cVN0Bz8X; z6=Y7ougPeL%|~cr+f#HIU0Bcrr*AW4bP_-{J6>!0KLbXY>E%X@>X=e8hEOSVlhzn9 wdSfb&Gh|epu3?Pf!tLqCjIH7DbEIO75n0NRDXWB>pF delta 696 zcmaDbo$bMNwhhy)`7DzXjgrmN4C0N<42?`SFR?Z)M;Cj(X${}x@Pqu!yn7iYdmoh9 zeDI)oI+~*CeVU9K=wddSj4tS6*wh`-Wc0zNP7Kv?=83t*$)zcY)7N`5icc@rV${W^ zNgBH*{FBVz^uu7Q;Z;tJCps;L{g@N!9{pL2AC)2 z7AKdcBu+lRR(!JXRCBnjAhN7+USgi>QXj81*>0B1`<8ayjhBq oGv+`{+`N2FssM{gTAJx*fwkM%A!<);v4b!Swu)|6+-k230CVGb(f|Me delta 373 zcmaE`f%(A(<_(vXSxhWUOg3LvPH}{=>{FBVz^uu7Q;Z;tJCps;L{g@N!9{pL2AC)2 z7AKdcBu+lRR(!JXRCBnjAhN7+USgi>QXj81*>0B1`<8ayjhBq oGv+`{+`N2FssM|bp@GR}fwkM%A!<);v4b!Swu)|6+-k230Fy0vpa1{> diff --git a/build_linux64/test b/build_linux64/test index 7862fc44a8217660bbd95504c93663c3e773cf2a..80ca5d3a92488750467cfb6ca2866b770c43777a 100644 GIT binary patch delta 431127 zcmb5133yZ07Vl32g@8cAPzcBnpkSE;h_^BZ1Pxj-ib_Gjh>8`58x^EDkf@+7SdAPt zb&k`uI1z_?Esjy9I$Z-e6ujCvaw=*Is8k&K)>?Zd*;(?w?>+8k&R)O&+S59F@3Z$w zxKvbK82RwRh^u@26@&hG)x}8m?S1EnCpxs;uk4mPcaI5;4LHb3Uk#@cZE$IeNoNNI z#C6nxPQ=q!JzqP@*OT+*UL9vBTyzCp&0B5Vx}Kq2!kMf2lr7rLnVZpY_KXg1b@elY zcJDyn;2xA+UN4-kO25$DVfP=Q1ao|w%X`ci6o2}B$J;BuS@lAE_B+0(u4?V}rukBv zq5=#T_M6&o+=!8IzGCigbBt|-IWVu6ZMiwNZ7I%s^Y0ZIpQ@*sIJP9bCw4 z50QNpeI78+2kk>je`lT!>Mkl{EtS!p{I^rOfz%u5^B3S_Y>$yT)12O+m+d&SYr9^y z30RKlEO6OuL^qSiTq=Dh<=jE_MJW9OmD`Ve&Y}EQ5c!t;^Qav|DSZlken&p5DQ|*2 zdr~@1o_>bG`TUDMZS=XDe14?Q7W$lz+>Aqe4^YlM)atv;8;=@e zJC|Cpig58Zm$`jFSNly8MOw)+^{JJhdy;$P97UunMO zbWw}{q|b8te24P+Z!Dy)sgeJhcbr^INCgMK(Vd8dBcFy z&E$X{kotDOh!8G+Hu&EN2qLauZurkXbmdWo(ZeWJD?RBaXnOZcF6nF--3@*cfZo;^ z$hsf$-+Jdg5P)vRQf9SecQTfUN&q!r1Ff{;8T^?!8o2Zw6E@s_2nCN4(LDjx(D^B zi}4XVMX7~H8DFq{7ug++Mz&Q1925b}{}So#jGtM*iYjPpw6d)_*oHcY{>wxc;C|-Cf`^%V1&=fL z37%r^S3H#Iv9nfHTq-hnnFj<9GA|Q6#ylu^l6iR!$ML^ORUFO{48y~`Lhu0dh~N?C z)q*FO#{~D|t;G84gy4P+20Q#o3hrfIFL;2tC3uW^i{MG-M%SKHf94jr0pOovzNQD` z(poi2{ep*>mkEA1^RVDG%&W7U)*mCmLOd%_Lv}E)6Z{+IDZvjjZxOuHCe;CFH`T#( z$NF#L`Bx-_F`U6G_zBEQ1wWg4Q1J7aR|sCtJQfnd?JU#^{s8l&;7>8P1b>6M(LJ}v zJD9tehti?=9}6Cl;RohE!GB>M5IpY{73y-qyEBjE@{lozg_>N!7{fdv_!Q>#f}hR2 zS@4UQJ9^|s;u_*G{@g;ikuwwvemir&;4$W9g1^K(EO;IBYUDWn)3@LY7UCkqFU;!% z@A9e&bxQDo%v%IMj=8fS8wr|!C$dna2{`{2GWQC84f9gLE0_lbe}s93;IF;fLCyb| z5I*7zwSxb|JSq5Z%q_v&y`~~$^vw1cJJyrAt7j-zC}P1QGE8Ca6Z|yh0m08>UM~2R z%p+;8`fnH&EYze0Y$p7kZ{!D!7MvQ1AekQ=xOb{}n96bOHD&Tu`mxiH-ah>0l{n8zg+P5m`8f|RO3H=3mRCc5gCfOf`s6Q*}q=!9&f4! zH4E-x?&y<_gsR^-kp*`~fcV3oMa+u@_j7~%f|oNd6TF&vSnx!Mg=!(Bn8yXbjvG`b zcop-M;4$Vcg1^E%ee{=iT!^O3vLkbPkLHTVqPrx9Oiz(&tqOD z_?67VS+3^att?b$1!_Q)d0g-(nb!%PV4e~@$-G7IFW(BOP&oVN_V`!MP$YQX+sfZ7 zcpv7af*->?DERTrD?&mzk%gGxrOayuzleEK@D~yqS3zIgbBysM~E(A*vP`dNPj-K9YHz;M16=1V4j$i^ggG zUCM%UU~VKE3as>me;AI{to zd@6HeP$;*@b6Ic=%H@|Z_XvJ1bD!XMGY<&<0`u}TSL>f)e8@s1EztUB7<-x52wu+* zm4x8NRVotol5bPIS@4jH1;^mr9=o|9x8P&hzgX~-nfnF5h(1nDZ!s%{}$pn|2fp@rnWnLIek}8(;OTNK!DoTL8h=A_dwez*KX_FE{w4E-;D?#l3tmvivmnEH{*7h9F*G+4r!jX6elhc6!Ea>l z7yKUPWrDvDVj(PqB=c&)_cD(Q?z&p_tWNN}cN9+vUd;ZX79kAc49;V6BQcJ7k>E3# zdj+4*yj1WY^Pu9{{r@@^Dny3In8yTvgL$psyO<{h-_P92;c)-ky{kfG6y^5V#oQ(M z80H?qr!)5nUdlWm_?5_U{FMvgHqHjl4rIE=q$A>7Cr93yihaVK-P;LkBH7W_Tte!;(DUWOdUe|q};#zI(R z==p&Pb+zE*na2e`nR%Vy7c)<3oaWzZ7Fsj`=ij}|ouhIi@e=bQ!HsKFL%o83$o{2* zfBOON|ARvKnKM)f-ub_(f|%fgnAZwk%seT$n;UA468rzNID;`dx5rm7cL~0hxkvDa znfnBPiFqK+)%s@`TUaPh3$*?j#%|^j!GB_2BX}$Ggy20tRFSI}JT#7lW+C{PJI3Tj z;sWMw!ONK!3%;JYU+`xY4;f`bc#|`P1>eEETJZ0g#|8KDJ+2eHjCqPU#6La#A}q9s z47JRip4><{k}9M{f*;M?E4anwlP9R5y1~LuMs@K4NVB% za|h3Y4Cnbbl!fMupyr>&1v$p$M#5393UUiRiOVS#+{6BU!AnCdlnEisJS=#Od9~n4 z=5fJ|m8zk2f}hC^4W)!o#2H!y_cM2n&yB>DTu_nVij0dzdG4INbjyxne6vFpLCqdTe=!S|$WX@I_(yJ! zW6WKG*E9DBzKkR4%jF^CHWmW8g0X>lx!?)r5y6ccRL^PzFJhh$+)o_FU%e3i#}zaS zzMr|HI5!gQK2jCC1@FteSn%VR`;p`LPfx$oStt`3{>eNnc$j-uEqDd{#|4iuuhTfq zzc*M&X#&o_7+26Dc!Ig}_}oZ*%;gjb{v&g*;HevU|6eKuW0eYNQ1HBu6|WGyH}ja_ zMO;p;;C|-GJgTA^7LaU4s9_+%34{6S|cl!y|;A zN-&BAAJ5z;xR1GC@bj4m1iyxP8F7ezditgKo|TIXE`COY1uteE5j@DeTJQ*0T%&Wm z{}Ij**9G7kI7344x0%-o{wec%!GB?%5jeLuc~bCh^(vw%!JRiM9Y!Gqj^Qo%oE|3D6h`yb&9!5qOb z_H%}E!E4#SLhz$@tB^(nx7a@>c+pMZkK?aK2tE|xPp#m`a0Lm$CoxY79_DiD1&=Ye zfYbO-uYjdoP_xKT#~F;Nx%YlK`#S`8+^jm_65PYwo#kr&`C0H}1&Tm~d9mPe=03se znfnDdR;vaD1Yf_KSF|!Aq!)^E!8dS^!-BubJR*28S6nT4fO$t-LR@5ci5pZac#!?;1mDU2Nx`exKc#V+e?M^sOA~PZb^J{AphfTj%nfhuy&uEe zDR>EUm*B};c>iA{gcfe8M{xJ8szF}C1I&GbS1>OXd@(mD;0@*WU=<5Nk-=nME_fYR zP$Bq6_KyhuF7sHLtM$(?K4+mOEztT0UruoawSpgJ|AgS3|ED696nqHtdci}JS+Imq zRG|uL7TnL=n4TNCd0dV|@XMLI1Ye_g$Z!kce$L<#{6*%)g1^VyC-`^F{eqWs2Li+) z{^{vg%R-sRkYZjgc-zlagu;TmDix0iK9K#Zb&mJHj5E~e0`Owa5Es0b{S$)EW&b+C zTiCx|aNk$Al6ke@j!>0qQA`L$ z%;SRlnb!&)WL_tD4fCYnb<9I4AvAE0Ex}#4tA@4+9$;>qkbCbdm^%gkmCJW2p56bq z|3XzzBr?=|MUtN=7KDd;cL#&Ecjo{ zjhVUkzMw%h)FJpt=B_MP^KS+V?yNvPUBuiY_|?pd1;3NIPw*P%e!&wBA=T1=5MmsO zGQktf%LTWXhXvom6-NYj-l^)X4hg}-LXF_Ra6xgwohemNLhzBy>jd{PuV?iG9=m*W#W%>Jb(iv7RiD^)>2WUx3xQ1GGbUoN=+ZdFc&;Bn@WG*{~% zd`S>R{x5ZuGuDR{GAHPj_|l6lB2gg6UD zf=8Hp1P?MV7TnL=E4YWbPx0*j-^qesWN1E3^`KPnB=dmaG3I502bl+RINX0f3*|Wi z{QrV54-1}}qZ(8pc!GIE@EG%I!NbUL{KbS2;0!f_`53soARHu;6j#6@o{YM+6Tuug>KmBgjH5S1ZczaR@OB10*2#nt<~!!MsTD7;}%{VdlkxmofJW?mwxcn*Tl_csPS!a3}Lp z!BZ!y4g>^`GcOZ7%shCq*#8GvC>I$@nTG}UGOrNa%{(Hw!Mr-nRsRhmHB0p%mKJFJ zgImD7M(`N(xZq*twSotjCj<|9S*R0&n|V@jgL%E+$(gDHDZ%5+Ex}`ohm2++ggHZt z-~r~wDPk5dcL?rg?iAc$?jjEHPfx$p2|No#h6M8>!DGxlf=8Ga3m#t2PE{3q70>Sf zBP{qth9Gml;9lmXg1eaq1W!#-6_@33xc_k$f;j>l%bAx89$+38+{?T|a5wXa;7;T? z{;Gx0JXy6gCU}y0jo@+SalymPYXuK5PXMR!pI!mIEYyh%PUcC$njY0QPYNDm zUN3lnJeLi4ez2R^}*%>9DLnU@M4W*!jS&%A7o*#Em(2#O4; z@v1@Pg2$ML1rIQ<5Zui?lICjtgZ=+FRY7%Hp!E+PPRwJ1hnd$1?qwbq++bcScqlPe zRh$q)n0cMx0p>};z0B(ccQa23ZYUlyEFq*kszJ?yCz!Vg9%F8tmOBf=%pHOUm^+C> z{4>*!1((R+X6_c;U|uA6YK-cDNALvmVx8mtkFns@1>hCTeS!y>`vvziFBQC)c|dSC za2kJQLNGW(Q1H}f)w6QJ6U@Vc$Cy_L9%ddnP3-^6Sf~~m{LEv5dzse=?qMDm+|9f; z!+HKWSx96AHUFANsUFt}o@AaBJkGpc@Cfsi;K2|JmJs~Rn+5kUZxP(d-09%JqnJi@$4@E~)K-~r~vif8x#UKYF}gNM0Ka3^!W;LRgck4ptl zG7sc%xc_k$%5nsF`Y{g*9%NoFxSx4ga1Zke!JWu){6&P&JY4mlTJQw(nBZaNHG+GY z#|3vYuLVxyKfMB`hN+4ZB14RMo!~*{Nx=im>jn2SPi489e;yXBtU&Y6$-G(c<|5V5 z7QvIujni{yL7cfm@JJEw|D8eza0Zv)UgmDW-OP&wH<)__Z$3tKpg1IidKSEbCz$&L zk1_WP9%f!Dc&b!Y9AKW=|0h@|6B%O6gMx>dmkSO#|3wugXO^Zs}(}?0#!jm@C5TZ!DGymf(Mw_3+`r~LXP7G%IaNH|r?{epXjs7RCwo?`!i;BNLW6TF%I9RacbcLY?$KE9@JO_&Sv3!dV?H5(AT z<^t8wGQm@eRr%#7Bc=;^Fn*|Tm z&Q^ls{M^A(lT_R-ctuL_V!@NYcA+Nw1ut*PCtfCa@*r{e|Nj(%^IrT1lHjeF;D)U$ z@wni{3ly&tyrok&@=pnl|8N!lX(0~rPv2wDElLP3P?5lY)KC4Rf#h$LYn=aeCKAFL zpQ>ExvqIziuQm~nXgrp_|EN@JLY!RHM@-`{Xxz#768{Cl`!rsErs_a@V5p`4q%>}4 zNcCHq&?fB-*Jh2=Kkdj`i^kPIRm8$s*^1RaiKw_k_p=9Qv=uvl6@+!7$W#R@|p?HJ%msYg`Rm#Y;7= zhNt2IjnnW<-~TdAP{UAV2x`1QA^I%WxC*)w!y50U`B!M%rSVWi6MAbxwZ{8sJf`uZ zHD06fz8a5fyr0Hv6%WC``eqpYH6fv87@+Ywjk`6T)c8P+*K2%`##0&}toFZ3wKSnn z%h0UxAsTPd_)v`-XJ==@F&cMhyeQ4_{yQ~cSXzLqOXI^e?$-DSjTdQrq{clOAEohP z;57d57L3*eua;qq#(f(1Xxy*yu^KPc_&ALRvOHvr*MzdHU>vLQpvEU?yj?@q4}B+(S!vWuh#fE8jorGT#eUge4)nU8egQi znt!#LaGsVSq49vm>ok78#*-Rftnqq{U!d{SJl_A~Ex1qheWX^{8P)|)p$_j zK8;_galgi|(s-%Hug>z25zvHXS-~jN_;QU0HGYl8%Qe12<6(`LYrKLu^dIm2N==Ap z8LriMwZ^a0cueEhYrIC|H)uSr@l~1lgF~$*=scnEuvSo=#&6VkQsXyiyk6rsGpBk| zny^~SU}=1f#+x;Mi^f|teyhff`Po@ep>fB2ZU0}X2~I7;T8+CjzE0zAjo+s6B8^vR z+>_zZ|Jya8I3pOw9UAv)Jfd-*#_!a)U*qdFUaD~udHOyFG~q5SLz%|!)_73k_h`Ia z<57)=HD0apP=zMks|gW}->>m%jX$9An8qK}c#Xy%(s*2Pwf}!u6Kb^#k7zuh@kcdY zr}4)$p49l`8n4&*6PfsfLrN3=rDd=*{-nm6HD06f7L9MvxWUJGTyLIAbG-i!O?Wyj zz}2boXEg58__G>!Yy3Hl7ioN>#y!Ak{9%ip*Mwp%!;2dCYWyXQ`!xPir3n{ee+1r?Eg+D{?L)!+NZ9Q zT!o+=I)uqyiZ;fyF-Z1ev>j*%$Xq;`JJC*&-3RTiXeY_;hITi!6J&QpyF1!(vh8U1 zKs!eE;TOR!z@gI^A#eZzuJMgwvcE^W7urFxze3xEc7W_XX!l0jPxel<@hwB6m+W`Z zJ{oNg*>9uW7i~A$ub>_3hrmhT1qApOq0u1wDYOTm-TWs;;8C>QXs5`&5AA_yC&^xq z_8_zqWUobgFxqjlZ$i5e?HJkDf*mRwf*?ZRDs&i%c9`s?Xdi=iknF{17oi;>djZAp}zpI0?Lf_EfYD zvY$eG8rsdj(-=V8i*}0a`_P__c9QJ%XwN`9LH1g-Pe40P_DyKdL_0=y=voA`5JU)E zh4zVPhsj=w_DN_5$zF`M5A6Wi3(%g8wx8@X&^{S$FWD!feG1whvS*-Og0>s&(2$7; zPDS7(hjD1nLE9jEINGP7-F%qF0NQ@EQ)Kr+`*gIEWOqaR473wucSL(G+Htb&XrGC8 z4D3+rki*XdI153991fs;Hripbzejr>+Cj3vLc0|00NH!co{zSl?44-i$+OW*_Pc1G zgSLn4x6wWqZTDfQzjeqf2o@r6lEVvV{=ZAW_<+MyVM!*Kx15k$y7fc7VDP0#-rfol=0 zL5B$0SD}3i+F`PnqJ1mcL9!R4U4eFh>;-67qU|U947Asx?IrtUwAZ2SA$tbex6$+8 zO<*E|Ds*s?Jr3>L(Kg5)j`kgBH~&gw0PP6cDYE;ZeJ9#Uvb&+Z9_<9#9nm(?j+1Ri z`z{J;jKJZI0PaSI2-yeFz6b3v+25lbMLS6LS7=wG9UyxT+V`UECwnK__o3}2`(3o} zN83a8+h~U#K;S0u3W5jGc9Q)9+7F>^ko^?e52M}u3ylG^V`!(yz7Oq3&`y%Q9_>fb zPLRD8?Z?oLlYJA|p|Zyj#0XrA4o{#RA^R${|Als#?4@WwiFT0e#c0={9UyxF+8faJ zlYIu-PoeE4`((7AM%zR7jE(sGe+Ge@z(jO-7HuclsDCROTek9r1Fq;EgF?gr&j)H{gaY=t&8F6t86N%{LwlWli=#I&ft{8@^Q*(O(n+$ z>o_KEYb22-Yc=e1u&TabLscPFS3X**uC|oiYyAOF9Ik6WCaJEyoN`#7bINJ$BF6^n zJtl7JEh0@;Z>Y;x+2E_(XFUf9JM}NRHdznRb*~k=hkP5XpJ4X^zSb>dH(6hRjqSV! z9kFi6eQM=j))LCtWG$lW-cu`ow&rq{Q|Q`IQu(#z#U$i%SjTb7X^m8}wVF%r3wB9J zE4mYc$|kEVU8(5b;4utAu=dlHivA9hRP_Hi<+OGx*&41ofgOGm5O(-wx;9xG>AKf? zl3iQjmP5&*lFDzbyGU!bZlmiVYc*Y)tn1l#8C{#K_f;Ouaz3DaUt_@LDY2yTpj84% z?7&RA?zJYxbnTf7n9Ikr*#LX9M&36 zxvcBRvBA2UiQBq_NRu^?>zWUCW=NNyp{klr$-N=#c$ERi^k_^{U4@)-SbaFwdb@V2E&@3cAu@xB-(i7_R1&)4D{-)<7X*rafW|A1W!cKBzyHd#N=b+7deTyc0jK(4T4d~59>snvRi zu7|9*;0oif$=bxe&(pQZx+I(DAwX)J-K9hvXO)n|d^gf{ueFk{t=5&~(qIjP{3Vrp zt*)>#VjFt1ZDYFw*b#IHnD976k5YI};+<@Uy$6=;BOBsy(3%2C^qs&iqm*QA1y{(5 zv%L?XeP5%Klf@b?CjgIAEWetZn=C)u6)Lmk4H0Ov${8f#0geqR;|y-jP|A7&9(Snw zSdWw4VAa4C8-Tkls*wF~vxOZhg{K~J+-y;Pw&DNDM`b7`01<$_2RfE=0V%SZEEi`; zf{hi`Zd3&(*sf7FM(jaIVx4yrYO<=>^=?%(M(kQZ6tR#MWVM_N3b0*9HiV4rQnFhu zFWA_CV#RT-8-+=nJJw)MIj!EDa#;Dw(dtD79I{%U!vb2ZLwJSpZ#6*zx{M`#1Ic~= z#^U#2>S;_RG4%+hwqYuYd0&GRl9%AhSvNqkaRof2aW*_adaHF8``woHyAl0PBfnN_ zS%@7jLpqV@Uh6zGMzL`Q8u$tc>zjo}cQ%T_z*~j8EsS^BJIco07CM)*jhijH=WOF< z3-h(W#v_CR?zZq+#174{_rL;LcB=wYV54rOZMdRd$2^u&ezjybSPAlLvTCTDCM(YV zHOymlZLlhSX$@gZaL_D-GO!b8(Y4jOfqiF@z1Nz;b)2Q@D1nfd%MyARoWtrytt2sZS;!FrTHlXV#OOxVx$?C?F?i@CrBaK(P_1di8} zna`kWll2Poaf)NNj-f0~)&O?tr6lVPD!Kv2-`7@KU}}v!+!6J$V~-9WR6V|4 z8BMVL2J@Jg-Ol9-J~xJ7uMOrrfD1YMSc1oFFmHX?-D{SDt0ofs$A%8jh$-QT<{K~f z?lnqjf1N_wNlG(H%%4CjP}&vnN uPieu6%>K2#d;M8MJ?er_nyP|}mF5hYb3pr6 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 delta 426190 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

qqeo71$eRcHud-CvmVu$XHUX!0 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

h8s}DHyyNbt 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 e5Js;f|zuTOqk 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 z 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 JPU+xn_kRW?V1xhw diff --git a/include/amsculib2/amscumath.hpp b/include/amsculib2/amscumath.hpp index 3c8d598..4ebce88 100644 --- a/include/amsculib2/amscumath.hpp +++ b/include/amsculib2/amscumath.hpp @@ -21,8 +21,8 @@ namespace amscuda AMSCU_CONST static const double pi = 3.1415926535897936; AMSCU_CONST static const float pif = 3.1415926535897936; - __host__ __device__ double dabs(double x); - __host__ __device__ float fabs(float x); + __host__ __device__ double dabs(const double &x); + __host__ __device__ float fabs(const float &x); template __host__ __device__ T abs(const T in) { @@ -31,19 +31,23 @@ namespace amscuda return ret; } - __host__ __device__ double mod(double a, double md); - __host__ __device__ float mod(float a, float md); - __host__ __device__ int mod(int x, int n); - __host__ __device__ long mod(long x, long n); + __host__ __device__ double mod(const double &a, const double &md); + __host__ __device__ float mod(const float &a, const float &md); + __host__ __device__ int mod(const int &x, const int &n); + __host__ __device__ long mod(const long &x, const long &n); - __host__ __device__ int truediv(int x, int y); - __host__ __device__ long truediv(long x, long y); + __host__ __device__ int truediv(const int &x, const int &y); + __host__ __device__ long truediv(const long &x, const long &y); - template __host__ __device__ T min(T a, T b); - template __host__ __device__ T max(T a, T b); + template __host__ __device__ T min(const T &a, const T &b); + template __host__ __device__ T max(const T &a, const T &b); - __device__ __host__ double arg(double x, double y); - __device__ __host__ void get_azel(double x, double y, double z, double *az, double *el); + __device__ __host__ double arg(const double &x, const double &y); + __device__ __host__ void get_azel(const double &x, const double &y, const double &z, double *az, double *el); + __device__ __host__ void get_azel(const double &x, const double &y, const double &z, double &az_out, double &el_out); + + __device__ __host__ double argf(const float &x, const float &y); + __device__ __host__ void get_azelf(const float &x, const float &y, const float &z, float &az_out, float &el_out); void test_amscumath1(); diff --git a/include/amsculib2/amscumath_impl.hpp b/include/amsculib2/amscumath_impl.hpp index 6e4b838..a436493 100644 --- a/include/amsculib2/amscumath_impl.hpp +++ b/include/amsculib2/amscumath_impl.hpp @@ -4,7 +4,7 @@ namespace amscuda { -template __host__ __device__ T min(T a, T b) +template __host__ __device__ T min(const T &a, const T &b) { if(a>b) { @@ -17,7 +17,7 @@ template __host__ __device__ T min(T a, T b) return a; } -template __host__ __device__ T max(T a, T b) +template __host__ __device__ T max(const T &a, const T &b) { if(a>b) { @@ -30,10 +30,10 @@ template __host__ __device__ T max(T a, T b) return a; } -template<> __host__ __device__ double min(double a, double b); -template<> __host__ __device__ float min(float a, float b); -template<> __host__ __device__ double max(double a, double b); -template<> __host__ __device__ float max(float a, float b); +template<> __host__ __device__ double min(const double &a, const double &b); +template<> __host__ __device__ float min(const float &a, const float &b); +template<> __host__ __device__ double max(const double &a, const double &b); +template<> __host__ __device__ float max(const float &a, const float &b); }; //end namespace amscuda diff --git a/old/9apr26_prerefactor/include/amsculib2/amscu_comp128.hpp b/old/9apr26_prerefactor/include/amsculib2/amscu_comp128.hpp new file mode 100644 index 0000000..05bb2c6 --- /dev/null +++ b/old/9apr26_prerefactor/include/amsculib2/amscu_comp128.hpp @@ -0,0 +1,89 @@ +#ifndef __AMSCU_COMP128_HPP__ +#define __AMSCU_COMP128_HPP__ + +namespace amscuda +{ +namespace cmp +{ + + class cucomp128 + { + public: + double real; + double imag; + + __host__ __device__ cucomp128(); + __host__ __device__ ~cucomp128(); + __host__ __device__ cucomp128(const cucomp128 &other); + __host__ __device__ cucomp128(const double &other); + + __host__ __device__ cucomp128& operator=(cucomp128& other); + __host__ __device__ const cucomp128& operator=(const cucomp128& other); + __host__ __device__ cucomp128& operator=(double& other); + __host__ __device__ const cucomp128& operator=(const double& other); + + __host__ __device__ double& operator[](int& ind); + __host__ __device__ const double& operator[](const int& ind) const; + + __host__ __device__ cucomp128 operator+(const cucomp128& z); + __host__ __device__ cucomp128 operator-(const cucomp128& z); + __host__ __device__ cucomp128 operator*(const cucomp128& z); + __host__ __device__ cucomp128 operator/(const cucomp128& z); + + __host__ __device__ cucomp128 operator+(const double& z); + __host__ __device__ cucomp128 operator-(const double& z); + __host__ __device__ cucomp128 operator*(const double& z); + __host__ __device__ cucomp128 operator/(const double& z); + + __host__ __device__ friend cucomp128 operator-(const cucomp128& z); //negation sign + + //comparison operators + __host__ __device__ bool operator==(const cucomp128& z) const; + __host__ __device__ bool operator!=(const cucomp128& z) const; + __host__ __device__ bool operator>(const cucomp128& z) const; + __host__ __device__ bool operator<(const cucomp128& z) const; + __host__ __device__ bool operator>=(const cucomp128& z) const; + __host__ __device__ bool operator<=(const cucomp128& z) const; + + __host__ __device__ bool isnan() const; + __host__ __device__ bool isinf() const; + + __host__ __device__ bool isreal() const; + __host__ __device__ bool isimag() const; + __host__ __device__ bool iszero() const; + __host__ __device__ double arg() const; + __host__ __device__ double mag() const; + __host__ __device__ cucomp128 conj() const; + }; + + __host__ __device__ double arg(cucomp128 z); + + __host__ __device__ cucomp128 dtocomp(double _r, double _i); + __host__ __device__ double real(cucomp128 z); + __host__ __device__ double imag(cucomp128 z); + __host__ __device__ cucomp128 sin(cucomp128 z); + __host__ __device__ cucomp128 cos(cucomp128 z); + __host__ __device__ cucomp128 tan(cucomp128 z); + __host__ __device__ cucomp128 exp(cucomp128 z); + __host__ __device__ cucomp128 log(cucomp128 z); + __host__ __device__ double abs(cucomp128 z); + __host__ __device__ cucomp128 conj(cucomp128 z); + + // //need hyperbolic trig Functions + __host__ __device__ cucomp128 cosh(cucomp128 z); + __host__ __device__ cucomp128 sinh(cucomp128 z); + __host__ __device__ cucomp128 tanh(cucomp128 z); + + __host__ __device__ cucomp128 pow(cucomp128 z1, cucomp128 z2); + + // //returns "complex sign" of complex number - 0, or a unit number with same argument + __host__ __device__ cucomp128 csgn(cucomp128 z); + +void test_cucomp128_1(); + + +}; //end namespace cmp +}; //end namespace amscuda + +#endif + diff --git a/old/9apr26_prerefactor/include/amsculib2/amscu_comp64.hpp b/old/9apr26_prerefactor/include/amsculib2/amscu_comp64.hpp new file mode 100644 index 0000000..53c86c0 --- /dev/null +++ b/old/9apr26_prerefactor/include/amsculib2/amscu_comp64.hpp @@ -0,0 +1,88 @@ +#ifndef __AMSCU_COMP64_HPP__ +#define __AMSCU_COMP64_HPP__ + +namespace amscuda +{ +namespace cmp +{ + + class cucomp64 + { + public: + float real; + float imag; + + __host__ __device__ cucomp64(); + __host__ __device__ ~cucomp64(); + __host__ __device__ cucomp64(const cucomp64 &other); + __host__ __device__ cucomp64(const float &other); + + __host__ __device__ cucomp64& operator=(cucomp64& other); + __host__ __device__ const cucomp64& operator=(const cucomp64& other); + __host__ __device__ cucomp64& operator=(float& other); + __host__ __device__ const cucomp64& operator=(const float& other); + + __host__ __device__ float& operator[](int& ind); + __host__ __device__ const float& operator[](const int& ind) const; + + __host__ __device__ cucomp64 operator+(const cucomp64& z); + __host__ __device__ cucomp64 operator-(const cucomp64& z); + __host__ __device__ cucomp64 operator*(const cucomp64& z); + __host__ __device__ cucomp64 operator/(const cucomp64& z); + + __host__ __device__ cucomp64 operator+(const float& z); + __host__ __device__ cucomp64 operator-(const float& z); + __host__ __device__ cucomp64 operator*(const float& z); + __host__ __device__ cucomp64 operator/(const float& z); + + __host__ __device__ friend cucomp64 operator-(const cucomp64& z); //negation sign + + //comparison operators + __host__ __device__ bool operator==(const cucomp64& z) const; + __host__ __device__ bool operator!=(const cucomp64& z) const; + __host__ __device__ bool operator>(const cucomp64& z) const; + __host__ __device__ bool operator<(const cucomp64& z) const; + __host__ __device__ bool operator>=(const cucomp64& z) const; + __host__ __device__ bool operator<=(const cucomp64& z) const; + + __host__ __device__ bool isnan() const; + __host__ __device__ bool isinf() const; + + __host__ __device__ bool isreal() const; + __host__ __device__ bool isimag() const; + __host__ __device__ bool iszero() const; + __host__ __device__ float arg() const; + __host__ __device__ float mag() const; + __host__ __device__ cucomp64 conj() const; + }; + + __host__ __device__ float arg(cucomp64 z); + + __host__ __device__ cucomp64 dtocomp64(float _r, float _i); + __host__ __device__ float real(cucomp64 z); + __host__ __device__ float imag(cucomp64 z); + __host__ __device__ cucomp64 sin(cucomp64 z); + __host__ __device__ cucomp64 cos(cucomp64 z); + __host__ __device__ cucomp64 tan(cucomp64 z); + __host__ __device__ cucomp64 exp(cucomp64 z); + __host__ __device__ cucomp64 log(cucomp64 z); + __host__ __device__ float abs(cucomp64 z); + __host__ __device__ cucomp64 conj(cucomp64 z); + + // //need hyperbolic trig Functions + __host__ __device__ cucomp64 cosh(cucomp64 z); + __host__ __device__ cucomp64 sinh(cucomp64 z); + __host__ __device__ cucomp64 tanh(cucomp64 z); + + __host__ __device__ cucomp64 pow(cucomp64 z1, cucomp64 z2); + + // //returns "complex sign" of complex number - 0, or a unit number with same argument + __host__ __device__ cucomp64 csgn(cucomp64 z); + +void test_cucomp64_1(); + +}; //end namespace cmp +}; //end namespace amscuda + +#endif + diff --git a/old/9apr26_prerefactor/include/amsculib2/amscu_cudafunctions.hpp b/old/9apr26_prerefactor/include/amsculib2/amscu_cudafunctions.hpp new file mode 100644 index 0000000..4f18731 --- /dev/null +++ b/old/9apr26_prerefactor/include/amsculib2/amscu_cudafunctions.hpp @@ -0,0 +1,40 @@ +#ifndef __AMSCU_CUDAFUNCTIONS_HPP__ +#define __AMSCU_CUDAFUNCTIONS_HPP__ + + +namespace amscuda +{ + // device memory operations + // I'm trying to avoid some of the boilerplate mental overhead involved + // in calling cuda functions and handling errors + + //frees devbuffer if it is not already NULL, and sets devbuffer to NULL + //wrapper to cudaFree + template int cuda_free(T **devptr); + + //copies hostbuffer to devbuffer + //initializes devbuffer from NULL if devbuffer is NULL + //if overwrite is true, deletes and reallocates devbuffer on device (for resizing) + template int buffer_copytodevice(T *hostbuffer, T **devbuffer, long N, bool overwrite); + + //copies info from devbuffer to hostbuffer + //initialzies hostbuffer from NULL if NULL + //if overwrite is true, deletes and reallocates hostbuffer on host with new[] (for resizing) + template int buffer_copyfromdevice(T *devbuffer, T **hostbuffer, long N, bool overwrite); + + //wrapper for cudaMemcpy - copies an item or struct (count 1) to the device + //initializes devptr from NULL if not already initialized + template int cuda_copytodevice(T *hostptr, T **devptr); + + //wrapper for cudaMemcpy - copies an item or struct (count 1) from device + //initializes hostptr from NULL with new if not already initialized + template int cuda_copyfromdevice(T *devptr, T **hostptr); + + int cuda_errortrap(const char *msgheader); + +}; + +#include + +#endif + diff --git a/old/9apr26_prerefactor/include/amsculib2/amscu_cudafunctions_impl.hpp b/old/9apr26_prerefactor/include/amsculib2/amscu_cudafunctions_impl.hpp new file mode 100644 index 0000000..7c3a408 --- /dev/null +++ b/old/9apr26_prerefactor/include/amsculib2/amscu_cudafunctions_impl.hpp @@ -0,0 +1,228 @@ +#ifndef __AMSCU_CUDAFUNCTIONS_IMPL_HPP__ +#define __AMSCU_CUDAFUNCTIONS_IMPL_HPP__ + +namespace amscuda +{ + +//frees devbuffer if it is not already NULL, and sets devbuffer to NULL +//wrapper to cudaFree +template int cuda_free(T **devptr) +{ + int ret = 0; + cudaError_t err = cudaSuccess; + + if(*devptr==NULL) + { + return ret; //devbuffer is already NULL/freed + } + + err = cudaFree(*devptr); + if(err!=cudaSuccess) + { + ret = -1; //failed to free device pointer + *devptr = NULL; // - ? should only happen if I'm trying to double-free something + } + else + { + ret = 1; + *devptr = NULL; + } + + return ret; +} + +//copies hostbuffer to devbuffer +//initializes devbuffer from NULL if devbuffer is NULL +//if overwrite is true, deletes and reallocates devbuffer on device (for resizing) +template int buffer_copytodevice(T *hostbuffer, T **devbuffer, long N, bool overwrite) +{ + int ret = 0; + cudaError_t err = cudaSuccess; + + if(N<=0) + { + ret = 0; + return ret; + } + + if(hostbuffer==NULL) + { + ret = -2; //host buffer is NULL + return ret; + } + + if(overwrite==1) + { + if(*devbuffer !=NULL) + { + cuda_free(devbuffer); + } + } + + if(*devbuffer==NULL) + { + err = cudaMalloc(devbuffer,sizeof(T)*N); + if(err!=cudaSuccess) + { + ret = -3; //failed to allocate + *devbuffer = NULL; + return ret; + } + } + + err = cudaMemcpy(*devbuffer,hostbuffer,sizeof(T)*N,cudaMemcpyHostToDevice); + if(err!=cudaSuccess) + { + ret = -4; //failed to copy + } + else + { + ret = 1; + } + + + return ret; +} + +//copies info from devbuffer to hostbuffer +//initialzies hostbuffer from NULL if NULL +//if overwrite is true, deletes and reallocates hostbuffer on host (for resizing) +template int buffer_copyfromdevice(T *devbuffer, T **hostbuffer, long N, bool overwrite) +{ + int ret = 0; + cudaError_t err = cudaSuccess; + + if(N<=0) + { + ret = 0; + return ret; + } + + if(devbuffer==NULL) + { + ret = -5; //null dev buffer + return ret; + } + + if(overwrite==1 && *hostbuffer!=NULL) + { + delete[] (*hostbuffer); hostbuffer = NULL; + } + + if(*hostbuffer==NULL) + { + *hostbuffer = new(std::nothrow) T[N]; + if(*hostbuffer==NULL) + { + ret = -6; //failed to allocate host buffer + return ret; + } + } + + err = cudaMemcpy(*hostbuffer, devbuffer, sizeof(T)*N, cudaMemcpyDeviceToHost); + if(err!=cudaSuccess) + { + ret = -7; //failed to copy + } + else + { + ret = 1; + } + + return ret; +} + +//wrapper for cudaMemcpy - copies an item or struct (count 1) to the device +//initializes devptr from NULL if not already initialized +template int cuda_copytodevice(T *hostptr, T **devptr) +{ + int ret = 0; + cudaError_t err = cudaSuccess; + bool overwrite = 1; + + if(hostptr==NULL) + { + ret = -2; //host buffer is NULL + return ret; + } + + if(overwrite==1) + { + if(*devptr !=NULL) + { + cuda_free(devptr); + } + } + + if(*devptr==NULL) + { + err = cudaMalloc(devptr,sizeof(T)); + if(err!=cudaSuccess) + { + ret = -3; //failed to allocate + *devptr = NULL; + return ret; + } + } + + err = cudaMemcpy(*devptr,hostptr,sizeof(T),cudaMemcpyHostToDevice); + if(err!=cudaSuccess) + { + ret = -4; //failed to copy + } + else + { + ret = 1; + } + + + return ret; +} + +//wrapper for cudaMemcpy - copies an item or struct (count 1) from device +//initializes hostptr from NULL with new if not already initialized +template int cuda_copyfromdevice(T *devptr, T **hostptr) +{ + int ret = 0; + cudaError_t err = cudaSuccess; + bool overwrite = 1; + + if(devptr==NULL) + { + ret = -5; //null dev buffer + return ret; + } + + if(overwrite==1 && *hostptr!=NULL) + { + delete (*hostptr); hostptr = NULL; + } + + if(*hostptr==NULL) + { + *hostptr = new(std::nothrow) T; + if(*hostptr==NULL) + { + ret = -6; //failed to allocate host buffer + return ret; + } + } + + err = cudaMemcpy(*hostptr, devptr, sizeof(T), cudaMemcpyDeviceToHost); + if(err!=cudaSuccess) + { + ret = -7; //failed to copy + } + else + { + ret = 1; + } + + return ret; +} + + +}; + +#endif + diff --git a/old/9apr26_prerefactor/include/amsculib2/amscu_random.hpp b/old/9apr26_prerefactor/include/amsculib2/amscu_random.hpp new file mode 100644 index 0000000..e974e47 --- /dev/null +++ b/old/9apr26_prerefactor/include/amsculib2/amscu_random.hpp @@ -0,0 +1,55 @@ +#ifndef __AMSCU_RANDOM_HPP__ +#define __AMSCU_RANDOM_HPP__ + +namespace amscuda +{ + +// Random Number Gerneators + + +// faster floating point hash function used in fractal generators +__device__ __host__ float fhash1d_su(float x); + +__device__ __host__ float fhash3d_su(float x, float y, float z); + +__device__ __host__ float fhash4d_su(float x, float y, float z, float w); + + +////////////////////////////////////////////////// +// Deterministic Pseudorandom int32_t Generator // +////////////////////////////////////////////////// + +//Next seed in simple 32 bit integer deterministic psuedo-rand generator +__host__ __device__ void dpr32_nextseed(int32_t *rseed_inout); + +//Simple 32 bit integer deterministic pseudo-random generator +// *not* for cryptography +// Frequency of generated floats should be uniform [0,1) +__host__ __device__ float dpr32_randf(int32_t *rseed_inout); + +//box muller standard normal pseudorandom variable +__host__ __device__ float dpr32_randnf(int32_t *rseed_inout); + +////////////////////////////////////////////////// +// Deterministic Pseudorandom int64_t Generator // +////////////////////////////////////////////////// + +//operates without side-effects on explicit seed for threaded use +//deterministic pseudorandom number generator - takes seed and returns next seed +__host__ __device__ void dpr64_nextseed(int64_t *seedinout); + +//deterministic pseudorandom number generator - takes seed and returns next seed +//returns uniformly distributed double +__host__ __device__ double dpr64_randd(int64_t *seedinout); + +__host__ __device__ float dpr64_randf(int64_t *seedinout); + + +void test_dprg64(); +void test_dprg32(); + + +}; //end namespace amscuda + +#endif + diff --git a/old/9apr26_prerefactor/include/amsculib2/amscuarray.hpp b/old/9apr26_prerefactor/include/amsculib2/amscuarray.hpp new file mode 100644 index 0000000..e7edb6d --- /dev/null +++ b/old/9apr26_prerefactor/include/amsculib2/amscuarray.hpp @@ -0,0 +1,47 @@ +#ifndef __CUARRAY_HPP__ +#define __CUARRAY_HPP__ + +namespace amscuda +{ + +template class cuarray +{ +public: + int length; + T* data; + + __device__ __host__ cuarray(); + __device__ __host__ ~cuarray(); + + //Only call this on the device for thread/block local + // dynamic arrays + __device__ __host__ int resize(const int _length); + + __device__ __host__ int size() const; + __device__ __host__ T& at(const int I); + __device__ __host__ const T& at(const int I) const; + + __device__ __host__ T& operator[](const int I); + __device__ __host__ const T& operator[](const int I) const; + + + + __host__ int device_send(cuarray **dptr); + __host__ int _device_send_overwrite(cuarray **dptr); + __host__ int _device_send_copy(cuarray *dptr); + + __host__ int device_pull(cuarray *dptr); + __host__ int device_free(cuarray **dptr); + + __host__ int device_length(cuarray *dptr); + __host__ T* device_data_ptr(cuarray *dptr); + +}; + +void test_cuarray(); + +}; + +#include + +#endif \ No newline at end of file diff --git a/old/9apr26_prerefactor/include/amsculib2/amscuarray_dops.hpp b/old/9apr26_prerefactor/include/amsculib2/amscuarray_dops.hpp new file mode 100644 index 0000000..eff18a6 --- /dev/null +++ b/old/9apr26_prerefactor/include/amsculib2/amscuarray_dops.hpp @@ -0,0 +1,76 @@ +#ifndef __AMSCUARRAY_DOPS_HPP__ +#define __AMSCUARRAY_DOPS_HPP__ + +//Device Operations on Arrays +// + +//Device Operations on Device Buffers +// dodb + +namespace amscuda +{ + + + //sum + template T devcuarray_sum(cuarray *devptr); + + template T dbuff_sum(T *devbuffer, int N); + + + struct dbuff_statstruct + { + public: + float min; + float max; + float mean; + float stdev; + float sum; + }; + + //stats (min,max,mean,stdev) + + template void dbuff_minmax(T *devbuffer, int N, T *min, T *max); + + template dbuff_statstruct dbuff_stats(T *devbuffer, int N); // + + //sets all elements to setto + template void dbuff_setall(T *devbuffer, int N, T setto, int nblocks, int nthreads); + + //random device buffer functions + void dbuff_rand_dpr32(float *devbuffer, int N, int32_t *rseedinout, int nblocks, int nthreads); // + void dbuff_rand_dpr32n(float *devbuffer, int N, int32_t *rseedinout, int nblocks, int nthreads); // + + + void dbuff_rand_dpr64(float *devbuffer, int N, int64_t *rseedinout, int nblocks, int nthreads); // + + //Elementwise device-buffer vector binary operation + //takes two input arrays ( , ) --> one output array + template void dbuff_vectorbinop(T1 *dbuf_a, T2 *dbuf_b, T3 *dbuf_out, int N, T3 (*fpnt)(T1,T2), int nblocks, int nthreads); + + //Elementwise device-buffer vector two-parameter operation + //takes one input array, and a constant paramter ( ) ---> one output array + template void dbuff_vectorbinop(T1 *dbuf_a, T2 par_b, T3 *dbuf_out, int N, T3 (*fpnt)(T1,T2), int nblocks, int nthreads); + + + //vector_add + template void dbuff_add(T *dbuff_a, T *dbuff_b, T *dbuff_out, int N, int nblocks, int nthreads); + template void dbuff_add(T *dbuff_a, T par_b, T *dbuff_out, int N, int nblocks, int nthreads); + template void dbuff_sub(T *dbuff_a, T *dbuff_b, T *dbuff_out, int N, int nblocks, int nthreads); + template void dbuff_sub(T *dbuff_a, T par_b, T *dbuff_out, int N, int nblocks, int nthreads); + template void dbuff_mult(T *dbuff_a, T *dbuff_b, T *dbuff_out, int N, int nblocks, int nthreads); + template void dbuff_mult(T *dbuff_a, T par_b, T *dbuff_out, int N, int nblocks, int nthreads); + template void dbuff_div(T *dbuff_a, T *dbuff_b, T *dbuff_out, int N, int nblocks, int nthreads); + template void dbuff_div(T *dbuff_a, T par_b, T *dbuff_out, int N, int nblocks, int nthreads); + template void dbuff_div(T par_a, T *dbuff_b, T *dbuff_out, int N, int nblocks, int nthreads); + + + // Tests // + + void test_dbuff_rand_dpr32(); + +}; + +#include + +#endif + diff --git a/old/9apr26_prerefactor/include/amsculib2/amscuarray_dops_impl.hpp b/old/9apr26_prerefactor/include/amsculib2/amscuarray_dops_impl.hpp new file mode 100644 index 0000000..b666b3f --- /dev/null +++ b/old/9apr26_prerefactor/include/amsculib2/amscuarray_dops_impl.hpp @@ -0,0 +1,404 @@ +#ifndef __AMSCUARRAY_DOPS_IMPL_HPP__ +#define __AMSCUARRAY_DOPS_IMPL_HPP__ + +namespace amscuda +{ + +template __global__ void dbuff_sum_kf(T *devbuffer, int N, T *rets) +{ + int I0 = threadIdx.x + blockIdx.x*blockDim.x; + int Is = blockDim.x*gridDim.x; + int I; + + T ret = (T) 0; + for(I=I0;I T devcuarray_sum(cuarray *devptr) +{ + T ret = T(); + cudaError_t err = cudaSuccess; + + cuarray ldptr; + + cudaMemcpy(&ldptr,devptr,sizeof(cuarray),cudaMemcpyDeviceToHost); + + ret = devbuffer_sum(ldptr.data,ldptr.length); + + ldptr.data = NULL; + ldptr.length=0; + + return ret; +} + +template T dbuff_sum(T *dbuff, int N) +{ + int I; + T ret = T(); + cudaError_t err = cudaSuccess; + + int nblocks; + int nthreads; + + if(dbuff==NULL || N<=0) + { + return ret; + } + + if(N>100) + { + nblocks = 10; + nthreads = (int)sqrt((float) (N/nblocks)); + if(nthreads<=0) nthreads=1; + if(nthreads>512) nthreads=512; + } + else + { + nblocks = 1; + nthreads = 1; + } + + T *rets = NULL; + T *devrets = NULL; + + rets = new T[nblocks*nthreads]; + cudaMalloc(&devrets,sizeof(T)*nblocks*nthreads); + + dbuff_sum_kf<<>>(dbuff,N,devrets); + cudaDeviceSynchronize(); + err = cudaGetLastError(); + if(err!=cudaSuccess) + { + printf("amscu::dbuff_sum error: %s\n",cudaGetErrorString(err)); + } + + cudaMemcpy(rets,devrets,sizeof(T)*nblocks*nthreads,cudaMemcpyDeviceToHost); + + ret = (T)0; + for(I=0;I __global__ void dbuff_minmax_kf(T *devbuffer, int N, T *maxs, T *mins) +{ + int I0 = threadIdx.x + blockIdx.x*blockDim.x; + int Is = blockDim.x*gridDim.x; + int I; + + for(I=I0;Imaxs[I0]) + { + maxs[I0] = devbuffer[I]; + } + if(devbuffer[I] void dbuff_minmax(T *devbuffer, int N, T *min, T *max) +{ + cudaError_t err = cudaSuccess; + int nblocks; + int nthreads; + int I; + + T *maxs = NULL; + T *dev_maxs = NULL; + T *mins = NULL; + T *dev_mins = NULL; + + T localmax = T(0); + T localmin = T(0); + + if(devbuffer==NULL || N<=0) + { + if(min!=NULL) *min = T(0); + if(max!=NULL) *max = T(0); + return; + } + + if(N>25) + { + nblocks = 25; + nthreads = (int) sqrt((float)(N/nblocks)); + if(nthreads<1) nthreads = 1; + if(nthreads>512) nthreads = 512; + } + else + { + nblocks = 1; + nthreads = 1; + } + + maxs = new T[nblocks*nthreads]; + mins = new T[nblocks*nthreads]; + cudaMalloc(&dev_maxs,nblocks*nthreads); + cudaMalloc(&dev_mins,nblocks*nthreads); + + dbuff_minmax_kf<<>>(devbuffer,N,dev_maxs,dev_mins); + cudaDeviceSynchronize(); + err = cudaGetLastError(); + if(err!=cudaSuccess) + { + printf("amscu::dbuff_minmax error: %s\n",cudaGetErrorString(err)); + } + + cudaMemcpy(maxs,dev_maxs,sizeof(T)*nblocks*nthreads,cudaMemcpyDeviceToHost); + cudaMemcpy(mins,dev_mins,sizeof(T)*nblocks*nthreads,cudaMemcpyDeviceToHost); + + + for(I=0;Ilocalmax) localmax = maxs[I]; + if(mins[I] __global__ void dbuff_setall_kf(T *devbuffer, int N, T setto) +{ + int I0 = threadIdx.x + blockIdx.x*blockDim.x; + int Is = blockDim.x*gridDim.x; + int I; + + for(I=I0;I void dbuff_setall(T *devbuffer, int N, T setto, int nblocks, int nthreads) +{ + cudaError_t err = cudaSuccess; + + if(devbuffer==NULL || N<=0) + { + return; + } + + dbuff_setall_kf<<>>(devbuffer,N,setto); + cudaDeviceSynchronize(); + err = cudaGetLastError(); + if(err!=cudaSuccess) + { + printf("amscu::dbuff_setall error: %s\n",cudaGetErrorString(err)); + } + + return; +} + +template __global__ void dbuff_vectorbinop_kf1(T1 *dbuf_a, T2 *dbuf_b, T3 *dbuf_out, int N, T3 (*fpnt)(T1,T2)) +{ + int I0 = threadIdx.x + blockIdx.x*blockDim.x; + int Is = blockDim.x*gridDim.x; + int I; + + T1 a; + T2 b; + T3 c; + + for(I=I0;I __global__ void dbuff_vectorbinop_kf2(T1 *dbuf_a, T2 par_b, T3 *dbuf_out, int N, T3 (*fpnt)(T1,T2)) +{ + int I0 = threadIdx.x + blockIdx.x*blockDim.x; + int Is = blockDim.x*gridDim.x; + int I; + + T1 a; + T2 b; + T3 c; + + for(I=I0;I one output array +template void dbuff_vectorbinop(T1 *dbuf_a, T2 *dbuf_b, T3 *dbuf_out, int N, T3 (*fpnt)(T1,T2), int nblocks, int nthreads) +{ + cudaError_t err = cudaSuccess; + + if(dbuf_a == NULL || dbuf_b == NULL || dbuf_out == NULL || N<=0) + { + return; + } + + dbuff_vectorbinop_kf1<<>>(dbuf_a,dbuf_b,dbuf_out,N); + cudaDeviceSynchronize(); + err = cudaGetLastError(); + if(err!=cudaSuccess) + { + printf("amscu::devbuffer_vectorbinop error: %s\n",cudaGetErrorString(err)); + } + + return; +} + +//Elementwise device-buffer vector two-parameter operation +//takes one input array, and a constant paramter ( ) ---> one output array +template void dbuff_vectorbinop(T1 *dbuf_a, T2 par_b, T3 *dbuf_out, int N, T3 (*fpnt)(T1,T2), int nblocks, int nthreads) +{ + cudaError_t err = cudaSuccess; + + if(dbuf_a == NULL || dbuf_out == NULL || N<=0) + { + return; + } + + dbuff_vectorbinop_kf2<<>>(dbuf_a,par_b,dbuf_out,N); + cudaDeviceSynchronize(); + err = cudaGetLastError(); + if(err!=cudaSuccess) + { + printf("amscu::devbuffer_vectorbinop error: %s\n",cudaGetErrorString(err)); + } + + return; +} + +template T dbuff_add_fn(T a, T b) +{ + return a+b; +} + +template void dbuff_add(T *dbuff_a, T *dbuff_b, T *dbuff_out, int N, int nblocks, int nthreads) +{ + dbuff_vectorbinop(dbuff_a,dbuff_b,dbuff_out,N,&dbuff_add_fn,nblocks,nthreads); + return; +} + +template void dbuff_add(T *dbuff_a, T par_b, T *dbuff_out, int N, int nblocks, int nthreads) +{ + dbuff_vectorbinop(dbuff_a,par_b,dbuff_out,N,&dbuff_add_fn,nblocks,nthreads); + return; +} + +template T dbuff_sub_fn(T a, T b) +{ + return a-b; +} + +template void dbuff_sub(T *dbuff_a, T *dbuff_b, T *dbuff_out, int N, int nblocks, int nthreads) +{ + dbuff_vectorbinop(dbuff_a,dbuff_b,dbuff_out,N,&dbuff_sub_fn,nblocks,nthreads); + return; +} + +template void dbuff_sub(T *dbuff_a, T par_b, T *dbuff_out, int N, int nblocks, int nthreads) +{ + dbuff_vectorbinop(dbuff_a,par_b,dbuff_out,N,&dbuff_sub_fn,nblocks,nthreads); + return; +} + +template T dbuff_mult_fn(T a, T b) +{ + return a*b; +} + +template void dbuff_mult(T *dbuff_a, T *dbuff_b, T *dbuff_out, int N, int nblocks, int nthreads) +{ + dbuff_vectorbinop(dbuff_a,dbuff_b,dbuff_out,N,&dbuff_mult_fn,nblocks,nthreads); + return; +} + +template void dbuff_mult(T *dbuff_a, T par_b, T *dbuff_out, int N, int nblocks, int nthreads) +{ + dbuff_vectorbinop(dbuff_a,par_b,dbuff_out,N,&dbuff_mult_fn,nblocks,nthreads); + return; +} + +template T dbuff_div_fn(T a, T b) +{ + return a/b; +} + +template void dbuff_div(T *dbuff_a, T *dbuff_b, T *dbuff_out, int N, int nblocks, int nthreads) +{ + dbuff_vectorbinop(dbuff_a,dbuff_b,dbuff_out,N,&dbuff_div_fn,nblocks,nthreads); + return; +} + +template void dbuff_div(T *dbuff_a, T par_b, T *dbuff_out, int N, int nblocks, int nthreads) +{ + dbuff_vectorbinop(dbuff_a,par_b,dbuff_out,N,&dbuff_div_fn,nblocks,nthreads); + return; +} + +template T dbuff_ldiv_fn(T a, T b) +{ + return b/a; +} + + +template void dbuff_div(T par_a, T *dbuff_b, T *dbuff_out, int N, int nblocks, int nthreads) +{ + dbuff_vectorbinop(dbuff_b,par_a,dbuff_out,N,&dbuff_ldiv_fn,nblocks,nthreads); + return; +} + + +}; + +#endif + diff --git a/old/9apr26_prerefactor/include/amsculib2/amscuarray_impl.hpp b/old/9apr26_prerefactor/include/amsculib2/amscuarray_impl.hpp new file mode 100644 index 0000000..6aae6ac --- /dev/null +++ b/old/9apr26_prerefactor/include/amsculib2/amscuarray_impl.hpp @@ -0,0 +1,323 @@ +#ifndef __CUARRAY_IMPL_HPP__ +#define __CUARRAY_IMPL_HPP__ + +namespace amscuda +{ + +// New Version cuarray +// simpler, less crap going on + +template __device__ __host__ cuarray::cuarray() +{ + length = 0; + data = NULL; +} + +template __device__ __host__ cuarray::~cuarray() +{ + if(data!=NULL) + { + delete[] data; data = NULL; + } + length = 0; +} + +template __device__ __host__ int cuarray::resize(const int _length) +{ + int ret = 0; + + T *newbuffer = NULL; + + if(length==_length) + { + //do nothing + ret = 1; + return ret; + } + if(_length<=0) + { + if(data!=NULL) + { + delete[] data; + data = NULL; + } + length = 0; + ret = 1; + } + + newbuffer = new T[_length]; + if(newbuffer==NULL) + { + ret = -1; //failed to allocate memory + return ret; + } + + int I; + T def; + + if(data!=NULL) + { + for(I=0;I __host__ int cuarray::device_send(cuarray **dptr) +{ + int ret = 0; + int dlength; + + if(*dptr==NULL) + { + ret = _device_send_overwrite(dptr); + } + else + { + dlength = device_length(*dptr); + if(dlength=length) + { + ret = _device_send_copy(*dptr); + } + else + { + ret = _device_send_overwrite(dptr); + } + } + + return ret; +} + +template __host__ int cuarray::_device_send_overwrite(cuarray **dptr) +{ + int ret = 0; + cuarray dlocal; + cudaError_t err = cudaSuccess; + device_free(dptr); + + if(length>=0 && data!=NULL) + { + err = cudaMalloc(dptr,sizeof(cuarray)); + if(err==cudaSuccess) + { + err = cudaMalloc(&(dlocal.data),sizeof(T)*length); + dlocal.length = length; + + if(err==cudaSuccess) + { + cudaMemcpy(*dptr,&dlocal,sizeof(cuarray),cudaMemcpyHostToDevice); + if(data!=NULL) + err = cudaMemcpy(dlocal.data,data,sizeof(T)*length,cudaMemcpyHostToDevice); + else + err = cudaSuccess; + if(err==cudaSuccess) + { + ret = 1; + } + else + { + ret = -3; + } + } + else + { + ret = -2; + } + } + else + { + ret = -1; + } + } + else + { + dlocal.data = NULL; + dlocal.length = 0; + err = cudaMalloc(dptr,sizeof(cuarray)); + if(err==cudaSuccess) + { + cudaMemcpy(*dptr,&dlocal,sizeof(cuarray),cudaMemcpyHostToDevice); + ret = 1; + } + else + { + ret = -4; + } + } + + + dlocal.data = NULL; + dlocal.length = -1; + + return ret; +} + +template __host__ int cuarray::_device_send_copy(cuarray *dptr) +{ + int ret = 0; + cudaError_t err = cudaSuccess; + T* ddata = NULL; + ddata = device_data_ptr(dptr); + + err = cudaMemcpy(ddata,data,sizeof(T)*length,cudaMemcpyHostToDevice); + if(err==cudaSuccess) + { + ret = 1; + } + else + { + ret = -1; + } + + return ret; +} + +template __host__ int cuarray::device_pull(cuarray *dptr) +{ + int ret = 0; + int dlength; + T* ddata; + cudaError_t err; + + if(dptr==NULL) + { + ret = -1; // null d pointer + return ret; + } + + dlength = device_length(dptr); + if(dlength!=length) + { + this->resize(dlength); + } + + ddata = device_data_ptr(dptr); + + if(length>0 && data!=NULL && ddata!=NULL) + { + err = cudaMemcpy(data,dptr,length*sizeof(T),cudaMemcpyDeviceToHost); + if(err==cudaSuccess) + { + ret = 1; + } + else + { + ret = -2; + } + } + + return ret; +} + +template __host__ int cuarray::device_free(cuarray **dptr) +{ + int ret = 0; + cuarray dlocal; + + if(*dptr!=NULL) + { + cudaMemcpy(&dlocal,dptr,sizeof(cuarray),cudaMemcpyDeviceToHost); + if(dlocal.data!=NULL) + { + cudaFree(dlocal.data); + dlocal.data = NULL; + } + + cudaFree(*dptr); + *dptr = NULL; + ret = 1; + } + + dlocal.data = NULL; + dlocal.length = -1; + + return ret; +} + +template __host__ int cuarray::device_length(cuarray *dptr) +{ + int ret = -1; + cuarray dlocal; + + if(dptr==NULL) + { + return ret; + } + + cudaMemcpy(&dlocal,dptr,sizeof(cuarray),cudaMemcpyDeviceToHost); + ret = dlocal.length; + + dlocal.data = NULL; + dlocal.length = -1; + + return ret; +} + +template __host__ T* cuarray::device_data_ptr(cuarray *dptr) +{ + T* ret = NULL; + cuarray dlocal; + + if(dptr==NULL) + { + return ret; + } + + cudaMemcpy(&dlocal,dptr,sizeof(cuarray),cudaMemcpyDeviceToHost); + ret = dlocal.data; + + dlocal.data = NULL; + dlocal.length = -1; + + return ret; +} + +template __device__ __host__ int cuarray::size() const +{ + return this->length; +} + +template __device__ __host__ T& cuarray::at(const int I) +{ + return this->data[I]; +} + +template __device__ __host__ const T& cuarray::at(const int I) const +{ + return this->data[I]; +} + +template __device__ __host__ T& cuarray::operator[](const int I) +{ + return this->data[I]; +} + +template __device__ __host__ const T& cuarray::operator[](const int I) const +{ + return this->data[I]; +} + +}; + + +#endif \ No newline at end of file diff --git a/old/9apr26_prerefactor/include/amsculib2/amscuda_binarrrw.hpp b/old/9apr26_prerefactor/include/amsculib2/amscuda_binarrrw.hpp new file mode 100644 index 0000000..0014d35 --- /dev/null +++ b/old/9apr26_prerefactor/include/amsculib2/amscuda_binarrrw.hpp @@ -0,0 +1,19 @@ +#ifndef __AMSCUDA_BINARRRW_HPP__ +#define __AMSCUDA_BINARRRW_HPP__ + +namespace amscuda +{ + +template int fread_ndarray(FILE *fp, cuarray *shape, cuarray *buffer); +template int fwrite_ndarray(FILE *fp, const cuarray *shape, const cuarray *buffer); + +template int fwrite_buffer(FILE *fp, const int N, const T *buffer); +template int fread_buffer(FILE *fp, const int Nmax, const T *buffer); + + +}; //end namespace amscuda + +#include + +#endif + diff --git a/old/9apr26_prerefactor/include/amsculib2/amscuda_binarrrw_impl.hpp b/old/9apr26_prerefactor/include/amsculib2/amscuda_binarrrw_impl.hpp new file mode 100644 index 0000000..f797f73 --- /dev/null +++ b/old/9apr26_prerefactor/include/amsculib2/amscuda_binarrrw_impl.hpp @@ -0,0 +1,194 @@ +#ifndef __AMSCUDA_BINARRRW_IMPL_HPP__ +#define __AMSCUDA_BINARRRW_IMPL_HPP__ + +namespace amscuda +{ + +template int fread_ndarray(FILE *fp, cuarray *shape, cuarray *buffer) +{ + int ret = 1; + int I; + long piprod; + int32_t q; + int cnt; + + int32_t Nd; + + if(fp!=NULL) + { + if(!feof(fp)) + { + cnt = fread(&Nd,sizeof(int32_t),1,fp); + if(Nd>0 && cnt>0) + { + shape->resize(Nd); + piprod = 1; + for(I=0;Iat(I) = q; + if(q>0) + { + piprod = piprod*q; + } + else + { + piprod = 0; + } + } + + buffer->resize(piprod); + if(piprod>0) + { + cnt = fread((buffer->data),sizeof(T),piprod,fp); + if(piprod==cnt) + { + ret = 1; + } + else + { + printf("fread_ndarray, read %d values, expecting %ld\n",cnt,piprod); + ret = 0; + } + } + } + else + { + printf("fread_ndarray: Read a number of dimensions<=0.\n"); + Nd = 0; + shape->resize(0); + buffer->resize(0); + } + } + else + { + printf("fread_ndarray: fp=NULL.\n"); + ret = 0; + } + } + else + { + ret = 0; + } + + return ret; +} + +template int fwrite_ndarray(FILE *fp, const cuarray *shape, const cuarray *buffer) +{ + int ret = 1; + long piprod; + int I; + int32_t Nd; + + if(fp==NULL) + { + ret = 0; + printf("fwrite_ndarray: fp=NULL\n"); + return ret; + } + + piprod = 1; + for(I=0;Isize();I++) + { + if(shape->at(I)>0) + { + piprod = piprod*shape->at(I); + } + else + { + piprod = 0; + } + } + + Nd = (int32_t) shape->size(); + + if(piprod!=buffer->size()) + { + ret = 0; + printf("fwrite_ndarray: buffer is size %ld, while shape is size %ld\n",(long)buffer->size(),(long)piprod); + return ret; + } + + fwrite(&Nd,sizeof(int32_t),1,fp); + if(Nd>0) + { + fwrite(shape->data,sizeof(int32_t),Nd,fp); + if(piprod>0) + { + fwrite(buffer->data,sizeof(T),buffer->size(),fp); + } + } + + return ret; +} + +template int fwrite_buffer(FILE *fp, const int N, const T *buffer) +{ + int ret = 0; + int Nd = 1; + + if(fp==NULL) + { + ret = 0; + printf("fwrite_buffer: fp=NULL\n"); + return ret; + } + + fwrite(&Nd,sizeof(int32_t),1,fp); + fwrite(&N,sizeof(int32_t),1,fp); + fwrite(buffer,sizeof(T),N,fp); + + return ret; +} + +template int fread_buffer(FILE *fp, const int Nmax, const T *buffer) +{ + int ret = 0; + + int cnt; + int32_t Nd; + int32_t *dims = NULL; + int piprod; + int32_t q; + int I; + + int Nr; + + + if(fp==NULL) {ret = -1; return ret;} + if(feof(fp)) {ret = -2; return ret;} + + cnt = fread(&Nd,sizeof(int32_t),1,fp); + if(Nd>0 && cnt>0) + { + piprod = 1; + dims = new(std::nothrow) int32_t[Nd]; + for(I=0;I(Nmax,piprod); + cnt = fread(buffer,sizeof(T),Nr,fp); + } + + if(dims!=NULL) {delete[] dims; dims=NULL;} + + return ret; +} + +}; //end namespace amscuda + +#endif + diff --git a/old/9apr26_prerefactor/include/amsculib2/amscugeom.hpp b/old/9apr26_prerefactor/include/amsculib2/amscugeom.hpp new file mode 100644 index 0000000..d927c71 --- /dev/null +++ b/old/9apr26_prerefactor/include/amsculib2/amscugeom.hpp @@ -0,0 +1,11 @@ +#ifndef __AMSCUGEOM_HPP__ +#define __AMSCUGEOM_HPP__ + +namespace amscuda +{ + + +}; //end namespace amscuda + +#endif + diff --git a/old/9apr26_prerefactor/include/amsculib2/amsculib2.hpp b/old/9apr26_prerefactor/include/amsculib2/amsculib2.hpp new file mode 100644 index 0000000..2c026c4 --- /dev/null +++ b/old/9apr26_prerefactor/include/amsculib2/amsculib2.hpp @@ -0,0 +1,70 @@ +#ifndef __AMSCULIB2_HPP__ +#define __AMSCULIB2_HPP__ + +//Std Lib Includes +#include +#include +#include +#include +#include +#include + +#include //where all the cuda functions live +#include +#include + +//Dependencies + +//Predeclarations +class cuvect2; +class cuvect3; +class cuvect4; +class cuvect2f; +class cuvect3f; +class cuvect4f; + +//Need a way to define the same symbols using both host and device code +//A solution was found here: https://stackoverflow.com/questions/9457572/cuda-host-and-device-using-same-constant-memory +#ifdef __CUDA_ARCH__ +#define AMSCU_CONST __constant__ +#else +#define AMSCU_CONST +#endif + +namespace amscuda +{ + + //default thread and block execution + AMSCU_CONST static const int amscu_defnblocks = 256; + AMSCU_CONST static const int amscu_defnthreads = 512; + + //default numthreads to execute on cpu + AMSCU_CONST static const int amscu_defcputhreads = 8; + +}; //end namespace amscuda + +//Components +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include + + + + +#endif + diff --git a/old/9apr26_prerefactor/include/amsculib2/amscumath.hpp b/old/9apr26_prerefactor/include/amsculib2/amscumath.hpp new file mode 100644 index 0000000..3c8d598 --- /dev/null +++ b/old/9apr26_prerefactor/include/amsculib2/amscumath.hpp @@ -0,0 +1,56 @@ +#ifndef __AMSCUMATH_HPP__ +#define __AMSCUMATH_HPP__ + +namespace amscuda +{ + + + + //Problem: These are not in the namespace + //#define nan NAN + //#define fnan (float) NAN + //#define inf INFINITY + //#define finf (float) INFINITY + //#define pi 3.1415926535897936 + + //These need to be the same symbol for both host and device code + AMSCU_CONST static const double nan = NAN; + AMSCU_CONST static const float fnan = (float) NAN; + AMSCU_CONST static const double inf = INFINITY; + AMSCU_CONST static const float finf = (float) INFINITY; + AMSCU_CONST static const double pi = 3.1415926535897936; + AMSCU_CONST static const float pif = 3.1415926535897936; + + __host__ __device__ double dabs(double x); + __host__ __device__ float fabs(float x); + + template __host__ __device__ T abs(const T in) + { + T ret = in; + if(in<0) ret = -in; + return ret; + } + + __host__ __device__ double mod(double a, double md); + __host__ __device__ float mod(float a, float md); + __host__ __device__ int mod(int x, int n); + __host__ __device__ long mod(long x, long n); + + __host__ __device__ int truediv(int x, int y); + __host__ __device__ long truediv(long x, long y); + + template __host__ __device__ T min(T a, T b); + template __host__ __device__ T max(T a, T b); + + __device__ __host__ double arg(double x, double y); + __device__ __host__ void get_azel(double x, double y, double z, double *az, double *el); + + void test_amscumath1(); + + +}; //end namespace amscuda + +#include + +#endif + diff --git a/old/9apr26_prerefactor/include/amsculib2/amscumath_impl.hpp b/old/9apr26_prerefactor/include/amsculib2/amscumath_impl.hpp new file mode 100644 index 0000000..6e4b838 --- /dev/null +++ b/old/9apr26_prerefactor/include/amsculib2/amscumath_impl.hpp @@ -0,0 +1,42 @@ +#ifndef __AMSCUMATH_IMPL_HPP__ +#define __AMSCUMATH_IMPL_HPP__ + +namespace amscuda +{ + +template __host__ __device__ T min(T a, T b) +{ + if(a>b) + { + return b; + } + else + { + return a; + } + return a; +} + +template __host__ __device__ T max(T a, T b) +{ + if(a>b) + { + return a; + } + else + { + return b; + } + return a; +} + +template<> __host__ __device__ double min(double a, double b); +template<> __host__ __device__ float min(float a, float b); +template<> __host__ __device__ double max(double a, double b); +template<> __host__ __device__ float max(float a, float b); + + +}; //end namespace amscuda + +#endif + diff --git a/old/9apr26_prerefactor/include/amsculib2/amscurarray.cuh b/old/9apr26_prerefactor/include/amsculib2/amscurarray.cuh new file mode 100644 index 0000000..ec2a210 --- /dev/null +++ b/old/9apr26_prerefactor/include/amsculib2/amscurarray.cuh @@ -0,0 +1,66 @@ +#ifndef __AMSCURARRAY_HPP__ +#define __AMSCURARRAY_HPP__ + +namespace amscuda +{ + +//Cuda ragged array class +template class curarray +{ +public: + int device; + curarray* devptr; //pointer to mirror class on the device + + int Narrays; //number of arrays + + int *N; //dimension of each array + T** hostarrayptrs; //pointers to each array on the host - null on the device + T** devarrayptrs; //pointers to each array on the device + //the double pointer is a host pointer to device pointers on the host class + //for the device class, only the second set of arrays is in use + + //the constructor and destructor set all pointers to NULL, they + // do *not* manage memory. This is done with curarray_new and curarray_delete + __device__ __host__ curarray(); + __device__ __host__ ~curarray(); + + __host__ int push(); + __host__ int pull(); + //__device__ int dev_resizearray(int arraynum, int arraysize); + __host__ int resizearray(int arraynum, int arraysize); + // I may want a way to resize arrays on the device without pushing/pulling all the array contents + + +}; + +template int curarray_new(curarray** ptr, int Narrays); + +template int curarray_delete(curarray** ptr); + +template int curarray_device_new(curarray *hostptr); + +template int curarray_device_delete(curarray *hostptr); + +template int curarray_push(curarray *hostptr); + +template int curarray_pull(curarray *hostptr); + + +//template int curarray_host_fillall(curarray *hostptr, const T &val); +//template int curarray_device_fillall(curarray *hostptr, const T &val); + + +//template __host__ int curarray_deletearray(curarray *hostptr, int arrayindex); +//template __device__ int curarray_dev_deletearray(curarray *devptr, int arrayindex); + +//template __host__ int curarray_allocarray(curarray *hostptr, int arrayindex, int size); +//template __device__ int curarray_dev_allocarray(curarray *devptr, int arrayindex, int size); + + +void test_amscurarray1(); + +}; + +#include + +#endif \ No newline at end of file diff --git a/old/9apr26_prerefactor/include/amsculib2/amscurarray_impl.cuh b/old/9apr26_prerefactor/include/amsculib2/amscurarray_impl.cuh new file mode 100644 index 0000000..76ba783 --- /dev/null +++ b/old/9apr26_prerefactor/include/amsculib2/amscurarray_impl.cuh @@ -0,0 +1,529 @@ +#ifndef __AMSCURARRAY_IMPL_HPP__ +#define __AMSCURARRAY_IMPL_HPP__ + +namespace amscuda +{ + +template curarray::curarray() +{ + device = -1; + devptr = NULL; + Narrays = 0; + N = NULL; + hostarrayptrs = NULL; + devarrayptrs = NULL; + +} + +template curarray::~curarray() +{ + device = -1; + devptr = NULL; + Narrays = 0; + N = NULL; + hostarrayptrs = NULL; + devarrayptrs = NULL; + +} + +template int curarray_new(curarray** ptr, int Narrays) +{ + int ret = 0; + int device; + curarray *lhptr = *ptr; + + cudaGetDevice(&device); + + if(lhptr!=NULL) + { + curarray_delete(ptr); + } + + *ptr = new(std::nothrow) curarray(); + lhptr = *ptr; + + int I; + + if(Narrays<0) Narrays=0; + + lhptr->Narrays = Narrays; + lhptr->device = device; + lhptr->N = new(std::nothrow) int[Narrays]; + lhptr->hostarrayptrs = new(std::nothrow) T*[Narrays]; + lhptr->devarrayptrs = new(std::nothrow) T*[Narrays]; + + for(I=0;IN[I] = 0; + lhptr->hostarrayptrs[I] = NULL; + lhptr->devarrayptrs[I] = NULL; + } + + curarray_device_new(lhptr); + + return ret; +} + +template int curarray_delete(curarray** ptr) +{ + int ret = 0; + curarray *lptr = NULL; + int olddev; + + int I; + + if(*ptr==NULL) + { + return 0; + } + lptr = *ptr; + + cudaGetDevice(&olddev); + cudaSetDevice(lptr->device); + + + if(lptr->devptr!=NULL) + { + curarray_device_delete(lptr); + } + + lptr->device = -1; + + for(I=0;INarrays;I++) + { + if(lptr->hostarrayptrs!=NULL) + { + if(lptr->hostarrayptrs[I]!=NULL) + { + delete[] lptr->hostarrayptrs[I]; + lptr->hostarrayptrs[I] = NULL; + } + } + + if(lptr->devarrayptrs!=NULL) + { + if(lptr->devarrayptrs[I]!=NULL) + { + //erasing device memory should have been handled in curarray_device_delete + lptr->devarrayptrs[I] = NULL; + } + } + + lptr->N[I] = 0; + } + + if(lptr->N != NULL) {delete[] lptr->N; lptr->N = NULL;} + if(lptr->hostarrayptrs!=NULL) {delete[] lptr->hostarrayptrs; lptr->hostarrayptrs=NULL;} + if(lptr->devarrayptrs!=NULL) {delete[] lptr->devarrayptrs; lptr->devarrayptrs=NULL;} + + if(*ptr!=NULL) {delete *ptr; *ptr = NULL;} + + cudaSetDevice(olddev); + + return ret; +} + +template int curarray_device_new(curarray *hostptr) +{ + int ret = 0; + curarray ldevdata; + + if(hostptr==NULL) return -1; + if(hostptr->devptr!=NULL) + { + curarray_device_delete(hostptr); + } + + int I; + + cudaGetDevice(&(hostptr->device)); + + ldevdata.device = hostptr->device; + ldevdata.Narrays = hostptr->Narrays; + int Narrays = hostptr->Narrays; + + cudaMalloc(&(ldevdata.N),sizeof(int)*Narrays); + cudaMemcpy(ldevdata.N,hostptr->N,sizeof(int)*Narrays,cudaMemcpyHostToDevice); + + ldevdata.hostarrayptrs = NULL; + + for(I=0;IN[I]>0) + { + if(hostptr->devarrayptrs[I]!=NULL) + { + cudaFree(hostptr->devarrayptrs[I]); + hostptr->devarrayptrs[I] = NULL; + } + + cudaMalloc(&(hostptr->devarrayptrs[I]),sizeof(T)*hostptr->N[I]); + cudaMemcpy(hostptr->devarrayptrs[I],hostptr->hostarrayptrs[I],sizeof(T)*hostptr->N[I],cudaMemcpyHostToDevice); + } + else + { + if(hostptr->devarrayptrs[I]!=NULL) + { + cudaFree(hostptr->devarrayptrs[I]); + hostptr->devarrayptrs[I] = NULL; + } + } + } + + cudaMalloc(&(ldevdata.devarrayptrs),sizeof(T*)*Narrays); + cudaMemcpy(ldevdata.devarrayptrs,hostptr->devarrayptrs,sizeof(T*)*Narrays,cudaMemcpyHostToDevice); + + cudaMalloc(&(hostptr->devptr),sizeof(curarray)); + cudaMemcpy(hostptr->devptr,&ldevdata,sizeof(curarray),cudaMemcpyHostToDevice); + + ret = 1; + + return ret; +} + +template int curarray_device_delete(curarray *hostptr) +{ + int ret = 0; + + curarray ldevdata; + int olddev; + + if(hostptr->devptr==NULL) + { + return 0; + } + + cudaGetDevice(&olddev); + cudaSetDevice(hostptr->device); + + cudaMemcpy(&ldevdata,hostptr->devptr,sizeof(curarray),cudaMemcpyDeviceToHost); + + int I; + for(I=0;INarrays;I++) + { + if(hostptr->devarrayptrs[I]!=NULL) + { + cudaFree(hostptr->devarrayptrs[I]); + hostptr->devarrayptrs[I] = NULL; + } + } + + cudaFree(ldevdata.devarrayptrs); + cudaFree(ldevdata.N); + + cudaFree(hostptr->devptr); + hostptr->devptr = NULL; + hostptr->device = -1; + + cudaSetDevice(olddev); + + ret = 1; + return ret; +} + +template int curarray_push(curarray *hostptr) +{ + int ret = 0; + + int olddev; + + curarray ldevdata; + T** ldevarrayptrs = NULL; + int *devN = NULL; + + if(hostptr==NULL) return -1; + + cudaGetDevice(&olddev); + cudaSetDevice(hostptr->device); + + int Narrays = hostptr->Narrays; + + cudaMemcpy(&ldevdata,hostptr->devptr,sizeof(curarray),cudaMemcpyDeviceToHost); + ldevarrayptrs = new(std::nothrow) T*[Narrays]; + devN = new(std::nothrow) int[Narrays]; + + cudaMemcpy(ldevarrayptrs,ldevdata.devarrayptrs,sizeof(T*)*Narrays,cudaMemcpyDeviceToHost); + cudaMemcpy(devN,ldevdata.N,sizeof(int)*Narrays,cudaMemcpyDeviceToHost); + + + int I; + + for(I=0;IN[I]!=devN[I]) || + (hostptr->devarrayptrs[I] != ldevarrayptrs[I]) + ) + { + cudaFree(ldevarrayptrs[I]); + ldevarrayptrs[I] = NULL; + hostptr->devarrayptrs[I] = NULL; + + if(hostptr->N[I]>0) + { + cudaMalloc(&(hostptr->devarrayptrs[I]),sizeof(T)*hostptr->N[I]); + ldevarrayptrs[I] = hostptr->devarrayptrs[I]; + devN[I] = hostptr->N[I]; + } + else + { + devN[I] = 0; + } + } + if(hostptr->N[I]>0) + { + //copy host data to device + cudaMemcpy(hostptr->devarrayptrs[I],hostptr->hostarrayptrs[I],sizeof(T)*hostptr->N[I],cudaMemcpyHostToDevice); + } + } //for each array + + //rectify and copy device data structure to device + ldevdata.device = hostptr->device; + ldevdata.devptr = NULL; + ldevdata.Narrays = hostptr->Narrays; //later - logic for dealing with when this is not true + ldevdata.hostarrayptrs = NULL; + + + cudaMemcpy(ldevdata.N,hostptr->N,sizeof(int)*Narrays,cudaMemcpyHostToDevice); + cudaMemcpy(ldevdata.devarrayptrs,hostptr->devarrayptrs,sizeof(T*)*Narrays,cudaMemcpyHostToDevice); + + cudaMemcpy(hostptr->devptr,&ldevdata,sizeof(curarray),cudaMemcpyHostToDevice); + + cuda_errortrap("curarray_push cuda error:"); + + cudaSetDevice(olddev); + + delete[] ldevarrayptrs; + delete[] devN; + + return ret; +} + +template int curarray_pull(curarray *hostptr) +{ + int ret = 0; + + int olddev; + + curarray ldevdata; + T** ldevarrayptrs = NULL; + int *devN = NULL; + + if(hostptr==NULL) return -1; + + cudaGetDevice(&olddev); + cudaSetDevice(hostptr->device); + + cuda_errortrap("dbg1"); + + int Narrays = hostptr->Narrays; + + cudaMemcpy(&ldevdata,hostptr->devptr,sizeof(curarray),cudaMemcpyDeviceToHost); + ldevarrayptrs = new(std::nothrow) T*[Narrays]; + devN = new(std::nothrow) int[Narrays]; + + cuda_errortrap("dbg2"); + + cudaMemcpy(ldevarrayptrs,ldevdata.devarrayptrs,sizeof(T*)*Narrays,cudaMemcpyDeviceToHost); + cudaMemcpy(devN,ldevdata.N,sizeof(int)*Narrays,cudaMemcpyDeviceToHost); + + cuda_errortrap("dbg3"); + char dbgjnk[50]; + + int I; + for(I=0;Idevarrayptrs[I] != ldevarrayptrs[I]) + { + hostptr->devarrayptrs[I] = ldevarrayptrs[I]; + } + + if(hostptr->N[I]!=devN[I]) + { + if(hostptr->hostarrayptrs[I]!=NULL) + { + delete[] hostptr->hostarrayptrs[I]; + hostptr->hostarrayptrs[I] = NULL; + } + + if(devN[I]>0) + { + hostptr->hostarrayptrs[I] = new(std::nothrow) T[devN[I]]; + hostptr->N[I] = devN[I]; + } + else + { + hostptr->N[I] = 0; + } + } + + if(hostptr->hostarrayptrs[I]!=NULL && hostptr->devarrayptrs[I]!=NULL) + { + cudaMemcpy(hostptr->hostarrayptrs[I],hostptr->devarrayptrs[I],sizeof(T)*hostptr->N[I],cudaMemcpyDeviceToHost); + sprintf(dbgjnk,"%d dbg %d",I,hostptr->N[I]); + cuda_errortrap(dbgjnk); + } + } //for each array + + //for the pull operation, I don't think any update of the device data structure is necessary + + cudaSetDevice(olddev); + + delete[] ldevarrayptrs; + delete[] devN; + + return ret; +} + +template __host__ int curarray::push() +{ + return curarray_push(this); +} +template __host__ int curarray::pull() +{ + return curarray_pull(this); +} + + + +/* +https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#memory-allocation-and-lifetime%5B/url%5D + +cudaMalloc() and cudaFree() have distinct semantics between the host and +device environments. When invoked from the host, cudaMalloc() allocates a +new region from unused device memory. When invoked from the device runtime +these functions map to device-side malloc() and free(). This implies that +within the device environment the total allocatable memory is limited to the +device malloc() heap size, which may be smaller than the available unused +device memory. Also, it is an error to invoke cudaFree() from the host +program on a pointer which was allocated by cudaMalloc() on the device +or vice-versa. + +So, basically this entire function is not going to work. I'll be unable to resize within +a kernel. +*/ + +/* + +template __device__ int curarray::dev_resizearray(int arraynum, int arraysize) +{ + int ret = 0; + T* newptr = NULL; + int I; + T def; + + if(arraynum>=0 && arraynum __host__ int curarray::resizearray(int arraynum, int arraysize) +{ + int ret = 0; + T* newptr = NULL; + int I; + T def; + + if(arraynum>=0 && arraynum + +namespace amscuda +{ +namespace cmp +{ + +__host__ __device__ cucomp128::cucomp128() +{ + real = 0.0; + imag = 0.0; + return; +} + +__host__ __device__ cucomp128::~cucomp128() +{ + real = 0.0; + imag = 0.0; + return; +} + +__host__ __device__ cucomp128::cucomp128(const cucomp128 &other) +{ + real = other.real; + imag = other.imag; + + return; +} + +__host__ __device__ cucomp128::cucomp128(const double &other) +{ + real = other; + imag = 0.0; + return; +} + +__host__ __device__ cucomp128& cucomp128::operator=(cucomp128& other) +{ + real = other.real; + imag = other.imag; + return *this; +} + +__host__ __device__ const cucomp128& cucomp128::operator=(const cucomp128& other) +{ + this->real = other.real; + this->imag = other.imag; + return *this; +} + +__host__ __device__ cucomp128& cucomp128::operator=(double& other) +{ + real = other; + imag = 0.0; + return *this; +} + +__host__ __device__ const cucomp128& cucomp128::operator=(const double& other) +{ + this->real = other; + this->imag = 0.0; + return *this; +} + +__host__ __device__ double& cucomp128::operator[](int& ind) +{ + if(ind==0) + { + return this->real; + } + else + { + return this->imag; + } +} + +__host__ __device__ const double& cucomp128::operator[](const int& ind) const +{ + if(ind==0) + { + return this->real; + } + else + { + return this->imag; + } +} + +__host__ __device__ cucomp128 cucomp128::operator+(const cucomp128& z) +{ + cucomp128 ret; + ret.real = real + z.real; + ret.imag = imag + z.imag; + return ret; +} + +__host__ __device__ cucomp128 cucomp128::operator-(const cucomp128& z) +{ + cucomp128 ret; + ret.real = real - z.real; + ret.imag = imag - z.imag; + return ret; +} + +__host__ __device__ cucomp128 cucomp128::operator*(const cucomp128& z) +{ + cucomp128 ret; + ret.real = (real*z.real - imag*z.imag); + ret.imag = (imag*z.real + real*z.imag); + return ret; +} + +__host__ __device__ cucomp128 cucomp128::operator/(const cucomp128& z) +{ + cucomp128 ret; + double zm2 = z.real*z.real+z.imag*z.imag; + + if(zm2>0.0) + { + ret.real = (this->real*z.real+this->imag*z.imag)/zm2; + ret.imag = (this->imag*z.real-this->real*z.imag)/zm2; + } + else + { + ret.real = (double) finf; + ret.imag = (double) finf; + } + + return ret; +} + +__host__ __device__ cucomp128 cucomp128::operator+(const double& z) +{ + cucomp128 ret; + ret.real = this->real + z; + ret.imag = this->imag; + return ret; +} +__host__ __device__ cucomp128 cucomp128::operator-(const double& z) +{ + cucomp128 ret; + ret.real = real-z; + ret.imag = imag; + return ret; +} +__host__ __device__ cucomp128 cucomp128::operator*(const double& z) +{ + cucomp128 ret; + ret.real = real*z; + ret.imag = imag*z; + return ret; +} +__host__ __device__ cucomp128 cucomp128::operator/(const double& z) +{ + cucomp128 ret; + if(z!=0.0f) + { + ret.real = real/z; + ret.imag = imag/z; + } + else + { + ret.real = finf; + ret.imag = finf; + } + + return ret; +} + +__host__ __device__ bool cucomp128::operator==(const cucomp128& z) const +{ + bool ret = 0; + if(z.real == real && z.imag == imag) + { + ret = 1; + } + return ret; +} + +__host__ __device__ bool cucomp128::operator!=(const cucomp128& z) const +{ + return !(*this==z); +} + +//sort first by real value, then by imaginary value +//this is done so that an ordering exists, as long as two values aren't equal +__host__ __device__ bool cucomp128::operator>(const cucomp128& z) const +{ + bool ret = 0; + if(this->real>z.real) + { + ret = 1; + } + else if(this->real==z.real) + { + if(this->imag>z.imag) + { + ret = 1; + } + else + { + ret = 0; + } + } + else + { + ret = 0; + } + return ret; +} + +__host__ __device__ bool cucomp128::operator<(const cucomp128& z) const +{ + bool ret = 0; + if(this->realreal==z.real) + { + if(this->imag=(const cucomp128& z) const +{ + bool ret = (*this==z || *this>z); + return ret; +} + +__host__ __device__ bool cucomp128::operator<=(const cucomp128& z) const +{ + bool ret = (*this==z || *thisreal) || ::isnan(this->imag)) + { + ret = 1; + } + return ret; +} + +__host__ __device__ bool cucomp128::isinf() const +{ + bool ret = 0; + //calls math.h isinf() + if(::isinf(this->real) || ::isinf(this->imag)) + { + ret = 1; + } + return ret; +} + +__host__ __device__ bool cucomp128::isreal() const +{ + bool ret = 1; + if(imag!=0.0f) + { + ret = 0; + } + return ret; +} + +__host__ __device__ bool cucomp128::isimag() const +{ + bool ret = 1; + if(real!=0.0f) + { + ret = 0; + } + return ret; +} + +__host__ __device__ bool cucomp128::iszero() const +{ + bool ret = 1; + if(real!=0.0f || imag!=0.0f) + { + ret = 0; + } + return ret; +} + +__host__ __device__ double cucomp128::arg() const +{ + double ret = 0.0; + ret = (double) amscuda::arg((double)real,(double)imag); + return ret; +} + +__host__ __device__ double cucomp128::mag() const +{ + double ret = 0.0; + ret = ::sqrt(real*real+imag*imag); + return ret; +} + +__host__ __device__ cucomp128 cucomp128::conj() const +{ + cucomp128 ret; + ret.real = real; + ret.imag = -imag; + return ret; +} + +__host__ __device__ double arg(cucomp128 z) +{ + return z.arg(); +} + +__host__ __device__ double abs(cucomp128 z) +{ + return z.mag(); +} + +__host__ __device__ cucomp128 dtocomp(double _r, double _i) +{ + cucomp128 ret; + ret.real = _r; + ret.imag = _i; + return ret; +} + +__host__ __device__ double real(cucomp128 z) +{ + return z.real; +} + +__host__ __device__ double imag(cucomp128 z) +{ + return z.imag; +} + +__host__ __device__ cucomp128 sin(cucomp128 z) +{ + cucomp128 ret; + cucomp128 im1 = dtocomp(0.0f,1.0f); + cucomp128 div = dtocomp(0.0f,2.0f); + + ret = (exp(im1*z)-exp(-im1*z))/div; + + return ret; +} + +__host__ __device__ cucomp128 cos(cucomp128 z) +{ + cucomp128 ret; + cucomp128 im1 = dtocomp(0.0f,1.0f); + cucomp128 div = dtocomp(2.0f,0.0f); + + ret = (exp(im1*z)+exp(-im1*z))/div; + + return ret; +} + +__host__ __device__ cucomp128 tan(cucomp128 z) +{ + return sin(z)/cos(z); +} + +__host__ __device__ cucomp128 exp(cucomp128 z) +{ + cucomp128 ret; + ret.real = ::exp(z.real)*::cos(z.imag); + ret.imag = ::exp(z.real)*::sin(z.imag); + return ret; +} + +__host__ __device__ cucomp128 log(cucomp128 z) +{ + cucomp128 ret; + ret.real = ::log(::sqrt(z.real*z.real+z.imag*z.imag)); + ret.imag = amscuda::arg(z.real,z.imag); + return ret; +} + +__host__ __device__ cucomp128 conj(cucomp128 z) +{ + return z.conj(); +} + +__host__ __device__ cucomp128 cosh(cucomp128 z) +{ + cucomp128 ret; + cucomp128 div = dtocomp(2.0f,0.0f); + + ret = (exp(z)+exp(-z))/div; + + return ret; +} + +__host__ __device__ cucomp128 sinh(cucomp128 z) +{ + cucomp128 ret; + cucomp128 div = dtocomp(2.0f,0.0f); + + ret = (exp(z)-exp(-z))/div; + + return ret; +} + +__host__ __device__ cucomp128 tanh(cucomp128 z) +{ + return sinh(z)/cosh(z); +} + +__host__ __device__ cucomp128 pow(cucomp128 z1, cucomp128 z2) +{ + cucomp128 ret; + if(z1.mag()>0.0) + ret = exp(z2*log(z1)); + else + ret = dtocomp(0.0f,0.0f); + return ret; +} + + +void test_cucomp128_1() +{ + cucomp128 z1; + cucomp128 a,b,c; + double d1; + double f1; + + printf("sizeof double=%ld\n",(long)(8*sizeof(f1))); + printf("sizeof double=%ld\n",(long)(8*sizeof(d1))); + printf("sizeof complex=%ld\n",(long)(8*sizeof(z1))); + printf("sizeof cucomp128=%ld\n",(long)(8*sizeof(a))); + + a = dtocomp(1.0,1.0); + b = dtocomp(1.0,-1.0); + + printf("a=%1.4f + %1.4fi\n",a[0],a[1]); + printf("b=%1.4f + %1.4fi\n",b[0],b[1]); + c = a+b; + printf("c=a+b: c=%1.4f + %1.4fi\n",c[0],c[1]); + c = a-b; + printf("c=a-b: c=%1.4f + %1.4fi\n",c[0],c[1]); + c = a*b; + printf("c=a*b: c=%1.4f + %1.4fi\n",c[0],c[1]); + c = a/b; + printf("c=a/b: c=%1.4f + %1.4fi\n",c[0],c[1]); + f1 = abs(a); + printf("abs(a)=%1.4f\n",f1); + f1 = arg(a); + printf("abs(a)=%1.4f pi\n",f1/pi); + + +} + +}; //end namespace cmp +}; //end namespace amscuda \ No newline at end of file diff --git a/old/9apr26_prerefactor/src/amsculib2/amscu_comp64.cu b/old/9apr26_prerefactor/src/amsculib2/amscu_comp64.cu new file mode 100644 index 0000000..b5d3dde --- /dev/null +++ b/old/9apr26_prerefactor/src/amsculib2/amscu_comp64.cu @@ -0,0 +1,476 @@ +#include + +namespace amscuda +{ +namespace cmp +{ + +__host__ __device__ cucomp64::cucomp64() +{ + real = 0.0; + imag = 0.0; + return; +} + +__host__ __device__ cucomp64::~cucomp64() +{ + real = 0.0; + imag = 0.0; + return; +} + +__host__ __device__ cucomp64::cucomp64(const cucomp64 &other) +{ + real = other.real; + imag = other.imag; + + return; +} + +__host__ __device__ cucomp64::cucomp64(const float &other) +{ + real = other; + imag = 0.0; + return; +} + +__host__ __device__ cucomp64& cucomp64::operator=(cucomp64& other) +{ + real = other.real; + imag = other.imag; + return *this; +} + +__host__ __device__ const cucomp64& cucomp64::operator=(const cucomp64& other) +{ + this->real = other.real; + this->imag = other.imag; + return *this; +} + +__host__ __device__ cucomp64& cucomp64::operator=(float& other) +{ + real = other; + imag = 0.0; + return *this; +} + +__host__ __device__ const cucomp64& cucomp64::operator=(const float& other) +{ + this->real = other; + this->imag = 0.0; + return *this; +} + +__host__ __device__ float& cucomp64::operator[](int& ind) +{ + if(ind==0) + { + return this->real; + } + else + { + return this->imag; + } +} + +__host__ __device__ const float& cucomp64::operator[](const int& ind) const +{ + if(ind==0) + { + return this->real; + } + else + { + return this->imag; + } +} + +__host__ __device__ cucomp64 cucomp64::operator+(const cucomp64& z) +{ + cucomp64 ret; + ret.real = real + z.real; + ret.imag = imag + z.imag; + return ret; +} + +__host__ __device__ cucomp64 cucomp64::operator-(const cucomp64& z) +{ + cucomp64 ret; + ret.real = real - z.real; + ret.imag = imag - z.imag; + return ret; +} + +__host__ __device__ cucomp64 cucomp64::operator*(const cucomp64& z) +{ + cucomp64 ret; + ret.real = (real*z.real - imag*z.imag); + ret.imag = (imag*z.real + real*z.imag); + return ret; +} + +__host__ __device__ cucomp64 cucomp64::operator/(const cucomp64& z) +{ + cucomp64 ret; + float zm2 = z.real*z.real+z.imag*z.imag; + + if(zm2>0.0) + { + ret.real = (this->real*z.real+this->imag*z.imag)/zm2; + ret.imag = (this->imag*z.real-this->real*z.imag)/zm2; + } + else + { + ret.real = (float) finf; + ret.imag = (float) finf; + } + + return ret; +} + +__host__ __device__ cucomp64 cucomp64::operator+(const float& z) +{ + cucomp64 ret; + ret.real = this->real + z; + ret.imag = this->imag; + return ret; +} +__host__ __device__ cucomp64 cucomp64::operator-(const float& z) +{ + cucomp64 ret; + ret.real = real-z; + ret.imag = imag; + return ret; +} +__host__ __device__ cucomp64 cucomp64::operator*(const float& z) +{ + cucomp64 ret; + ret.real = real*z; + ret.imag = imag*z; + return ret; +} +__host__ __device__ cucomp64 cucomp64::operator/(const float& z) +{ + cucomp64 ret; + if(z!=0.0f) + { + ret.real = real/z; + ret.imag = imag/z; + } + else + { + ret.real = finf; + ret.imag = finf; + } + + return ret; +} + +__host__ __device__ bool cucomp64::operator==(const cucomp64& z) const +{ + bool ret = 0; + if(z.real == real && z.imag == imag) + { + ret = 1; + } + return ret; +} + +__host__ __device__ bool cucomp64::operator!=(const cucomp64& z) const +{ + return !(*this==z); +} + +//sort first by real value, then by imaginary value +//this is done so that an ordering exists, as long as two values aren't equal +__host__ __device__ bool cucomp64::operator>(const cucomp64& z) const +{ + bool ret = 0; + if(this->real>z.real) + { + ret = 1; + } + else if(this->real==z.real) + { + if(this->imag>z.imag) + { + ret = 1; + } + else + { + ret = 0; + } + } + else + { + ret = 0; + } + return ret; +} + +__host__ __device__ bool cucomp64::operator<(const cucomp64& z) const +{ + bool ret = 0; + if(this->realreal==z.real) + { + if(this->imag=(const cucomp64& z) const +{ + bool ret = (*this==z || *this>z); + return ret; +} + +__host__ __device__ bool cucomp64::operator<=(const cucomp64& z) const +{ + bool ret = (*this==z || *thisreal) || ::isnan(this->imag)) + { + ret = 1; + } + return ret; +} + +__host__ __device__ bool cucomp64::isinf() const +{ + bool ret = 0; + //calls math.h isinf() + if(::isinf(this->real) || ::isinf(this->imag)) + { + ret = 1; + } + return ret; +} + +__host__ __device__ bool cucomp64::isreal() const +{ + bool ret = 1; + if(imag!=0.0f) + { + ret = 0; + } + return ret; +} + +__host__ __device__ bool cucomp64::isimag() const +{ + bool ret = 1; + if(real!=0.0f) + { + ret = 0; + } + return ret; +} + +__host__ __device__ bool cucomp64::iszero() const +{ + bool ret = 1; + if(real!=0.0f || imag!=0.0f) + { + ret = 0; + } + return ret; +} + +__host__ __device__ float cucomp64::arg() const +{ + float ret = 0.0; + ret = (float) amscuda::arg((double)real,(double)imag); + return ret; +} + +__host__ __device__ float cucomp64::mag() const +{ + float ret = 0.0; + ret = ::sqrt(real*real+imag*imag); + return ret; +} + +__host__ __device__ cucomp64 cucomp64::conj() const +{ + cucomp64 ret; + ret.real = real; + ret.imag = -imag; + return ret; +} + +__host__ __device__ float arg(cucomp64 z) +{ + return z.arg(); +} + +__host__ __device__ float abs(cucomp64 z) +{ + return z.mag(); +} + +__host__ __device__ cucomp64 dtocomp64(float _r, float _i) +{ + cucomp64 ret; + ret.real = _r; + ret.imag = _i; + return ret; +} + +__host__ __device__ float real(cucomp64 z) +{ + return z.real; +} + +__host__ __device__ float imag(cucomp64 z) +{ + return z.imag; +} + +__host__ __device__ cucomp64 sin(cucomp64 z) +{ + cucomp64 ret; + cucomp64 im1 = dtocomp64(0.0f,1.0f); + cucomp64 div = dtocomp64(0.0f,2.0f); + + ret = (exp(im1*z)-exp(-im1*z))/div; + + return ret; +} + +__host__ __device__ cucomp64 cos(cucomp64 z) +{ + cucomp64 ret; + cucomp64 im1 = dtocomp64(0.0f,1.0f); + cucomp64 div = dtocomp64(2.0f,0.0f); + + ret = (exp(im1*z)+exp(-im1*z))/div; + + return ret; +} + +__host__ __device__ cucomp64 tan(cucomp64 z) +{ + return sin(z)/cos(z); +} + +__host__ __device__ cucomp64 exp(cucomp64 z) +{ + cucomp64 ret; + ret.real = ::exp(z.real)*::cos(z.imag); + ret.imag = ::exp(z.real)*::sin(z.imag); + return ret; +} + +__host__ __device__ cucomp64 log(cucomp64 z) +{ + cucomp64 ret; + ret.real = ::log(::sqrt(z.real*z.real+z.imag*z.imag)); + ret.imag = amscuda::arg(z.real,z.imag); + return ret; +} + +__host__ __device__ cucomp64 conj(cucomp64 z) +{ + return z.conj(); +} + +__host__ __device__ cucomp64 cosh(cucomp64 z) +{ + cucomp64 ret; + cucomp64 div = dtocomp64(2.0f,0.0f); + + ret = (exp(z)+exp(-z))/div; + + return ret; +} + +__host__ __device__ cucomp64 sinh(cucomp64 z) +{ + cucomp64 ret; + cucomp64 div = dtocomp64(2.0f,0.0f); + + ret = (exp(z)-exp(-z))/div; + + return ret; +} + +__host__ __device__ cucomp64 tanh(cucomp64 z) +{ + return sinh(z)/cosh(z); +} + +__host__ __device__ cucomp64 pow(cucomp64 z1, cucomp64 z2) +{ + cucomp64 ret; + if(z1.mag()>0.0) + ret = exp(z2*log(z1)); + else + ret = dtocomp64(0.0f,0.0f); + return ret; +} + + +void test_cucomp64_1() +{ + cucomp64 z1; + cucomp64 a,b,c; + double d1; + float f1; + + printf("sizeof double=%ld\n",(long)(8*sizeof(f1))); + printf("sizeof double=%ld\n",(long)(8*sizeof(d1))); + printf("sizeof complex=%ld\n",(long)(8*sizeof(z1))); + printf("sizeof cucomp128=%ld\n",(long)(8*sizeof(a))); + + a = dtocomp64(1.0,1.0); + b = dtocomp64(1.0,-1.0); + + printf("a=%1.4f + %1.4fi\n",a[0],a[1]); + printf("b=%1.4f + %1.4fi\n",b[0],b[1]); + c = a+b; + printf("c=a+b: c=%1.4f + %1.4fi\n",c[0],c[1]); + c = a-b; + printf("c=a-b: c=%1.4f + %1.4fi\n",c[0],c[1]); + c = a*b; + printf("c=a*b: c=%1.4f + %1.4fi\n",c[0],c[1]); + c = a/b; + printf("c=a/b: c=%1.4f + %1.4fi\n",c[0],c[1]); + f1 = abs(a); + printf("abs(a)=%1.4f\n",f1); + f1 = arg(a); + printf("abs(a)=%1.4f pi\n",f1/pi); + + +} + +}; //end namespace cmp +}; //end namespace amscuda \ No newline at end of file diff --git a/old/9apr26_prerefactor/src/amsculib2/amscu_cudafunctions.cu b/old/9apr26_prerefactor/src/amsculib2/amscu_cudafunctions.cu new file mode 100644 index 0000000..52d1329 --- /dev/null +++ b/old/9apr26_prerefactor/src/amsculib2/amscu_cudafunctions.cu @@ -0,0 +1,21 @@ +#include + +namespace amscuda +{ + +int cuda_errortrap(const char *msgheader) +{ + int ret = 0; + cudaError_t err = cudaSuccess; + + err = cudaGetLastError(); + if(err!=cudaSuccess) + { + printf("%s :%s\n",msgheader,cudaGetErrorString(err)); + ret = 1; + } + + return ret; +} + +}; //end namespace amscuda \ No newline at end of file diff --git a/old/9apr26_prerefactor/src/amsculib2/amscu_random.cu b/old/9apr26_prerefactor/src/amsculib2/amscu_random.cu new file mode 100644 index 0000000..c7e1942 --- /dev/null +++ b/old/9apr26_prerefactor/src/amsculib2/amscu_random.cu @@ -0,0 +1,222 @@ +#include + +namespace amscuda +{ + +__device__ __host__ float fhash1d_su(float x) +{ + float ret; + ret = x*(x>0.0f) + -x*(x<0.0f); //sign without conditionals? + ret = fmodf(ret,10000.0f); //restrain domain + ret = fmodf(ret*(ret+3678.453f)+7890.453f,10000.0f); + ret = fmodf(ret*(ret+8927.2134f),10000.0f); + ret = fmodf(ret*(ret+3656.234f),10000.0f); + //ret = fmodf(ret*(ret+892.2134f),1000.0f); + //ret = fmodf(ret,1000.0f); + ret = ret/10000.0f; + return ret; +} + + +__device__ __host__ float fhash3d_su(float x, float y=0.0f, float z=0.0f) +{ + float ret = 0.0f; + + ret = fhash1d_su(z); + ret = fhash1d_su(1000.0f*ret*ret + y); + ret = fhash1d_su(1000.0f*ret*ret + x); + + return ret; +} + +__device__ __host__ float fhash4d_su(float x, float y=0.0f, float z=0.0f, float w=0.0f) +{ + float ret = 0.0f; + + ret = fhash1d_su(w); + ret = fhash1d_su(1000.0f*ret*ret + z); + ret = fhash1d_su(1000.0f*ret*ret + y); + ret = fhash1d_su(1000.0f*ret*ret + x); + + return ret; +} + +////////////////////////////////////////////////// +// Deterministic Pseudorandom int32_t Generator // +////////////////////////////////////////////////// + +//Simple 32 bit integer deterministic pseudo-random generator +// *not* for cryptography +// Frequency of generated floats should be uniform [0,1) + +AMSCU_CONST static const int32_t dpr32_mod = 1<<30-1; +AMSCU_CONST static const int32_t dpr32_mult = 25137; + +//Next seed in simple 32 bit integer deterministic psuedo-rand generator +__host__ __device__ void dpr32_nextseed(int32_t *rseed_inout) +{ + int32_t lseed; + if(rseed_inout!=NULL) lseed = *rseed_inout; + + lseed = (lseed*dpr32_mult + 1)%dpr32_mod; + lseed = (lseed>=0)*(lseed)+(lseed<0)*(lseed+dpr32_mod); //ensure mod is positive + + if(rseed_inout!=NULL) *rseed_inout = lseed; + + return; +} + +//Simple 32 bit integer deterministic pseudo-random generator +// *not* for cryptography +// Frequency of generated floats should be uniform [0,1) +__host__ __device__ float dpr32_randf(int32_t *rseed_inout) +{ + int32_t lseed = 1; + float ret = 0.0f; + + if(rseed_inout!=NULL) lseed = *rseed_inout; + + dpr32_nextseed(&lseed); + ret = ((float)(lseed))/((float)dpr32_mod); + + if(rseed_inout!=NULL) *rseed_inout = lseed; + + return ret; +} + +//box muller standard normal variable +__host__ __device__ float dpr32_randnf(int32_t *rseed_inout) +{ + int32_t lseed = 1; + float ret = 0.0f; + float u1,u2; + + if(rseed_inout!=NULL) lseed = *rseed_inout; + + u1 = dpr32_randf(&lseed); + u2 = dpr32_randf(&lseed); + + ret = ::sqrtf(-2.0f*::logf(u1))*::cosf(2.0f*pif*u2); + + if(rseed_inout!=NULL) *rseed_inout = lseed; + + return ret; +} + +////////////////////////////////////////////////// +// Deterministic Pseudorandom int64_t Generator // +////////////////////////////////////////////////// + +//"goodenough" deterministic pseudo-random number generator +//random enough for procedural applications, deterministic, +//operates without side-effects for thread safety + +AMSCU_CONST const int64_t random_dpr64_mod = (2LL<<31LL)-1LL; +AMSCU_CONST const int64_t random_dpr64_mult = 1201633LL; + +__host__ __device__ void dpr64_nextseed(int64_t *seedinout) +{ + int64_t lseed = 0LL; + if(seedinout!=NULL) lseed = *seedinout; + + lseed = (random_dpr64_mult*lseed+1LL)%random_dpr64_mod; + lseed = (lseed>=0)*(lseed)+(lseed<0)*(lseed+random_dpr64_mod); + + if(seedinout!=NULL) *seedinout = lseed; + + return; +} + +__host__ __device__ double dpr64_randd(int64_t *seedinout) +{ + double ret = 0.0; + int64_t lseed = 0LL; + + if(seedinout!=NULL) lseed = *seedinout; + + dpr64_nextseed(&lseed); + ret = ((double)lseed)/((double)(random_dpr64_mod-1LL)); + + if(seedinout!=NULL) *seedinout = lseed; + + return ret; +} + +__host__ __device__ float dpr64_randf(int64_t *seedinout) +{ + float ret = 0.0f; + int64_t lseed = 0LL; + + if(seedinout!=NULL) lseed = *seedinout; + + dpr64_nextseed(&lseed); + ret = ((float)lseed)/((float)(random_dpr64_mod-1LL)); + + if(seedinout!=NULL) *seedinout = lseed; + + return ret; +} + +/////////// +// Tests // +/////////// + +void test_dprg64() +{ + printf("Tests for dprg:\n"); + long I; + int64_t seed = 133LL; + double d; + float f; + cuvect3 qv; + + printf("dpr64_randd test\n"); + seed = 133LL; + for(I=0;I<10;I++) + { + d = dpr64_randd(&seed); + printf("seed: %lld rand: %1.4f\n",(long long)seed,d); + } + + printf("\n\n"); + printf("dpr64_randf test\n"); + seed = 133LL; + for(I=0;I<10;I++) + { + f = dpr64_randf(&seed); + printf("seed: %lld rand: %1.4f\n",(long long)seed,f); + } + + return; +} + +void test_dprg32() +{ + printf("Tests for dprg:\n"); + long I; + int32_t seed = 133; + double d; + float f; + cuvect3 qv; + + printf("dpr32_randf test\n"); + seed = 133; + for(I=0;I<10;I++) + { + f = dpr32_randf(&seed); + printf("seed: %lld rand: %1.4f\n",(long long)seed,f); + } + + printf("\n\ndpr32_randnf test\n"); + seed = 133; + for(I=0;I<10;I++) + { + f = dpr32_randnf(&seed); + printf("seed: %lld rand: %1.4f\n",(long long)seed,f); + } + + return; +} + + +}; //namespace amscuda \ No newline at end of file diff --git a/old/9apr26_prerefactor/src/amsculib2/amscuarray.cu b/old/9apr26_prerefactor/src/amsculib2/amscuarray.cu new file mode 100644 index 0000000..91fc95c --- /dev/null +++ b/old/9apr26_prerefactor/src/amsculib2/amscuarray.cu @@ -0,0 +1,63 @@ +#include + +namespace amscuda +{ + +__global__ void test_cuarray_sum_kf(cuarray *dq1, float *sum) +{ + int I; + *sum = 0.0f; + for(I=0;Ilength;I++) + { + *sum = *sum + dq1->data[I]; + } + //*sum = (float)dq1->length; + return; +} + +float test_cuarray_sum(cuarray *q1) +{ + float ret = 0.0f; + int res; + cuarray *dq1 = NULL; + float *dsum; + cudaError_t err = cudaSuccess; + + cudaMalloc(&dsum,sizeof(float)); + res = q1->device_send(&dq1); + printf("error: res=%d\n",res); + test_cuarray_sum_kf<<<1,1>>>(dq1,dsum); + cudaDeviceSynchronize(); + + err = cudaGetLastError(); + if(err!=cudaSuccess) + { + printf("test_cuarray_sum Error: %s\n",cudaGetErrorString(err)); + } + + cudaMemcpy(&ret,dsum,sizeof(float),cudaMemcpyDeviceToHost); + + q1->device_free(&dq1); + cudaFree(dsum); dsum = NULL; + + return ret; +} + +void test_cuarray() +{ + cuarray q1; + + int I; + + q1.resize(100); + for(I=0;I + +namespace amscuda +{ + +//template instantiations +template float dbuff_sum(float *devbuffer, int N); +template void dbuff_minmax(float *devbuffer, int N, float *min, float *max); + + +template void dbuff_setall(float *devbuffer, int N, float setto, int nblocks, int nthreads); + + + + +//fill devbuffer with random uniform numbers between 0 and 1 using int32_t based generator +__global__ void dbuff_rand_dpr32_kf(float *devbuffer, int N, int32_t *seeds) +{ + int I0 = threadIdx.x + blockIdx.x*blockDim.x; + int Is = blockDim.x*gridDim.x; + int I; + + int32_t lseed; + float f; + + lseed = seeds[I0]; + for(I=I0;I>>(devbuffer,N,devseeds); + cudaDeviceSynchronize(); + err = cudaGetLastError(); + if(err!=cudaSuccess) + { + printf("amscu::dbuff_rand_dpr32 error: %s\n",cudaGetErrorString(err)); + } + + cudaFree(devseeds); devseeds = NULL; + delete[] seeds; seeds = NULL; + + return; +} + +__global__ void dbuff_rand_dpr32n_kf(float *devbuffer, int N, int32_t *seeds) +{ + int I0 = threadIdx.x + blockIdx.x*blockDim.x; + int Is = blockDim.x*gridDim.x; + int I; + + int32_t lseed; + float f; + + lseed = seeds[I0]; + for(I=I0;I>>(devbuffer,N,devseeds); + cudaDeviceSynchronize(); + err = cudaGetLastError(); + if(err!=cudaSuccess) + { + printf("amscu::dbuff_rand_dpr32 error: %s\n",cudaGetErrorString(err)); + } + + cudaFree(devseeds); devseeds = NULL; + delete[] seeds; seeds = NULL; + + return; +} + + + +void dbuff_rand_dpr64(float *devbuffer, int N, int64_t *rseedinout, int nblocks, int nthreads) +{ + int I; + + return; +} + + + +/////////// +// Tests // +/////////// + +void test_dbuff_rand_dpr32() +{ + cuarray data; + float *dev_data = NULL; + int Nx = 5000; + int Ny = 5000; + cuarray dims; + int32_t rseed = 15; + FILE *fp = NULL; + const char *fname = "./test_scripts/test_dbuff_rand_dpr32.bin"; + + clock_t t0,t1,t2; + double dt0,dt1; + + printf("Tests of dbuff_rand_dpr32...\n"); + + fp = fopen(fname,"w+"); + if(fp==NULL) + { + printf("Error: Could not open %s for writing.\n",fname); + return; + } + + data.resize(Nx*Ny); + dims.resize(2); + dims[0] = Nx; dims[1] = Ny; + cudaMalloc(&dev_data,Nx*Ny*sizeof(float)); + + t0 = clock(); + dbuff_rand_dpr32(dev_data,Nx*Ny,&rseed,256,512); + t1 = clock(); + cudaMemcpy(data.data,dev_data,Nx*Ny*sizeof(float),cudaMemcpyDeviceToHost); + t2 = clock(); + + dt0 = (double)(t1-t0)/(double)CLOCKS_PER_SEC*1000.0; + dt1 = (double)(t2-t1)/(double)CLOCKS_PER_SEC*1000.0; + printf("dbuff_rand_dpr32 exec time: %1.3f msec\n",dt0); + printf("copy (%d,%d) to host time: %1.3f msec\n",Nx,Ny,dt1); + + fwrite_ndarray(fp,&dims,&data); + + t0 = clock(); + dbuff_rand_dpr32n(dev_data,Nx*Ny,&rseed,256,512); + t1 = clock(); + cudaMemcpy(data.data,dev_data,Nx*Ny*sizeof(float),cudaMemcpyDeviceToHost); + t2 = clock(); + + dt0 = (double)(t1-t0)/(double)CLOCKS_PER_SEC*1000.0; + dt1 = (double)(t2-t1)/(double)CLOCKS_PER_SEC*1000.0; + printf("dbuff_rand_dpr32n exec time: %1.3f msec\n",dt0); + printf("copy (%d,%d) to host time: %1.3f msec\n",Nx,Ny,dt1); + + fwrite_ndarray(fp,&dims,&data); + + fclose(fp); + + cudaFree(dev_data); dev_data = NULL; + +} + +}; + diff --git a/old/9apr26_prerefactor/src/amsculib2/amscugeom.cu b/old/9apr26_prerefactor/src/amsculib2/amscugeom.cu new file mode 100644 index 0000000..3ffc878 --- /dev/null +++ b/old/9apr26_prerefactor/src/amsculib2/amscugeom.cu @@ -0,0 +1,6 @@ +#include + +namespace amscuda +{ + +}; \ No newline at end of file diff --git a/old/9apr26_prerefactor/src/amsculib2/amsculib2.cu b/old/9apr26_prerefactor/src/amsculib2/amsculib2.cu new file mode 100644 index 0000000..3ffc878 --- /dev/null +++ b/old/9apr26_prerefactor/src/amsculib2/amsculib2.cu @@ -0,0 +1,6 @@ +#include + +namespace amscuda +{ + +}; \ No newline at end of file diff --git a/old/9apr26_prerefactor/src/amsculib2/amscumath.cu b/old/9apr26_prerefactor/src/amsculib2/amscumath.cu new file mode 100644 index 0000000..e082fff --- /dev/null +++ b/old/9apr26_prerefactor/src/amsculib2/amscumath.cu @@ -0,0 +1,269 @@ +#include + +namespace amscuda +{ + + __host__ __device__ double dabs(double x) + { + if(x<0.0) + { + x = -x; + } + return x; + } + + __host__ __device__ float fabs(float x) + { + if(x<0.0f) + { + x = -x; + } + return x; + } + + __host__ __device__ double mod(double x, double md) + { + x = fmod(x,md); + if(x<0.0) + { + x = x + md; + } + return x; + } + + __host__ __device__ float mod(float x, float md) + { + x = fmodf(x,md); + if(x<0.0f) + { + x = x + md; + } + return x; + } + + __host__ __device__ int mod(int x, int n) + { + x = x % n; + if(x<0) + { + x = x + n; + } + return x; + } + + __host__ __device__ long mod(long x, long n) + { + x = x % n; + if(x<0) + { + x = x + n; + } + return x; + } + + __host__ __device__ int truediv(int x, int y) + { + int z = 0; + if(x>=0 && y>0) + { + z = x/y; + } + else if(x<0 && y>0) + { + z = -((-x)/y) - 1; + } + else if(x>=0 && y<0) + { + z = -(x/(-y)) - 1; + } + else if(x<0 && y<0) + { + z = ((-x)/(-y)); + } + + return z; + } + + __host__ __device__ long truediv(long x, long y) + { + int z = 0; + if(x>=0 && y>0) + { + z = x/y; + } + else if(x<0 && y>0) + { + z = -((-x)/y) - 1; + } + else if(x>=0 && y<0) + { + z = -(x/(-y)) - 1; + } + else if(x<0 && y<0) + { + z = ((-x)/(-y)); + } + + return z; + } + + + template<> __host__ __device__ double min(double a, double b) + { + if(isnan(a)) + { + return b; + } + else if(isnan(b)) + { + return a; + } + else if(a>b) + { + return b; + } + else + { + return a; + } + } + + template<> __host__ __device__ float min(float a, float b) + { + if(isnan(a)) + { + return b; + } + else if(isnan(b)) + { + return a; + } + else if(a>b) + { + return b; + } + else + { + return a; + } + } + + template<> __host__ __device__ double max(double a, double b) + { + if(isnan(a)) + { + return b; + } + else if(isnan(b)) + { + return a; + } + else if(a>b) + { + return a; + } + else + { + return b; + } + } + + template<> __host__ __device__ float max(float a, float b) + { + if(isnan(a)) + { + return b; + } + else if(isnan(b)) + { + return a; + } + else if(a>b) + { + return a; + } + else + { + return b; + } + } + + __device__ __host__ double arg(double x, double y) + { + double ret = 0.0; + double z = ::sqrt(x*x+y*y); + + if(z>0.0) + { + if(y<=x && y>=-x) + { + ret = asin(y/z); + } + else if(y>=x && y>=-x) + { + ret = acos(x/z); + } + else if(y>=x && y<=-x) + { + ret = pi-asin(y/z); + } + else + { + ret = 2.0*pi-acos(x/z); + } + } + + if(ret<0.0) + { + ret = 2.0*pi+ret; + } + + return ret; + } + + __device__ __host__ void get_azel(double x, double y, double z, double *az, double *el) + { + //int ret = -2; //should never see this return + double n, rp; + n = ::sqrt(x*x+y*y+z*z); + if(n>0.0) + { + rp = ::sqrt(x*x+y*y); + if(rp>0.0) + { + //ret = 1; //nonzero vector - should work + *az = arg(x,y); + *el = ::atan(z/rp); + } + else + { + //ret = 0; //straight up or straight down + if(z>0.0) + { + *az = 0.0; + *el = pi/2.0; + } + else + { + *az = 0.0; + *el = -pi/2.0; + } + } + } + else + { + *az = 0.0; + *el = 0.0; + //ret = -1; //zero vector - no real azimuth/elevation + } + + return; + } + + + void test_amscumath1() + { + printf("pi = %1.16f\n",amscuda::pi); + } + +}; \ No newline at end of file diff --git a/old/9apr26_prerefactor/src/amsculib2/amscurarray.cu b/old/9apr26_prerefactor/src/amsculib2/amscurarray.cu new file mode 100644 index 0000000..e2b0e17 --- /dev/null +++ b/old/9apr26_prerefactor/src/amsculib2/amscurarray.cu @@ -0,0 +1,85 @@ +#include + +namespace amscuda +{ + +__global__ void test_amscurarray1_kf1(curarray *q) +{ + int I,J,Na; + int I0 = threadIdx.x + blockIdx.x*blockDim.x; + int Is = blockDim.x*gridDim.x; + int N = q->Narrays; + + for(I=I0; IN[I]; + + //printf("I:%d Na: %d\n",I,Na); + //q->dev_resizearray(I, Na); + for(J=0;Jdevarrayptrs[I][J] = J; + } + } +} + +void test_amscurarray1() +{ + int I; + cudaError_t err = cudaSuccess; + + printf("test_amscurarray1:\n"); + curarray *qarray = NULL; + + curarray_new(&qarray,100); + err = cudaGetLastError(); + if(err!=cudaSuccess) + { + printf("debug error trap 1: %s\n",cudaGetErrorString(err)); + } + + for(I=0;I<100;I++) + { + qarray->resizearray(I,5); + } + + qarray->push(); + qarray->pull(); + + cuda_errortrap("debug: error trap 2"); + + for(I=0;I<5;I++) + { + printf("array[%d], size %d\n",I,qarray->N[I]); + } + + // + for(I=0;I<100;I++) + { + qarray->resizearray(I,I%5); + cuda_errortrap("debug: error trap resize2"); + } + + qarray->push(); + qarray->pull(); + test_amscurarray1_kf1<<<128,1>>>(qarray->devptr); + + cuda_errortrap("debug: error trap kf1"); + + qarray->pull(); + cuda_errortrap("debug: error trap pull2"); + + + for(I=0;I<5;I++) + { + printf("array[%d], size %d\n",I,qarray->N[I]); + } + + curarray_delete(&qarray); + + cuda_errortrap("debug: error trap 3"); + + return; +} + +}; \ No newline at end of file diff --git a/old/9apr26_prerefactor/src/amsculib2/cuvect2.cu b/old/9apr26_prerefactor/src/amsculib2/cuvect2.cu new file mode 100644 index 0000000..22a3596 --- /dev/null +++ b/old/9apr26_prerefactor/src/amsculib2/cuvect2.cu @@ -0,0 +1,377 @@ +#include + +namespace amscuda +{ + + __host__ __device__ cuvect2::cuvect2() + { + x = 0.0; y = 0.0; + return; + } + + __host__ __device__ cuvect2::~cuvect2() + { + x = 0.0; y = 0.0; + return; + } + + __host__ __device__ cuvect2::cuvect2(double _x, double _y) + { + x = _x; y = _y; + return; + } + + __host__ __device__ double& cuvect2::operator[](const int I) + { + if(I==0) return x; + if(I==1) return y; + return x; + } + + __host__ __device__ const double& cuvect2::operator[](const int I) const + { + if(I==0) return x; + if(I==1) return y; + return x; + } + + __host__ __device__ cuvect2 cuvect2::operator+(cuvect2 lhs) + { + cuvect2 ret; + ret.x = x + lhs.x; + ret.y = y + lhs.y; + return ret; + } + + __host__ __device__ cuvect2 cuvect2::operator-(cuvect2 lhs) + { + cuvect2 ret; + ret.x = x - lhs.x; + ret.y = y - lhs.y; + return ret; + } + __host__ __device__ cuvect2 cuvect2::operator*(double lhs) + { + cuvect2 ret; + ret.x = x*lhs; + ret.y = y*lhs; + return ret; + } + + __host__ __device__ cuvect2 cuvect2::operator/(double lhs) + { + cuvect2 ret; + ret.x = x/lhs; + ret.y = y/lhs; + return ret; + } + + __host__ __device__ double cuvect2_dot(cuvect2 a, cuvect2 b) + { + double ret = a.x*b.x+a.y*b.y; + return ret; + } + + __host__ __device__ double cuvect2_cross(cuvect2 a, cuvect2 b) + { + double ret = a.x*b.y-a.y*b.x; + return ret; + } + + __host__ __device__ double cuvect2_norm(cuvect2 a) + { + double ret = ::sqrt(a.x*a.x+a.y*a.y); + return ret; + } + + __host__ __device__ cuvect2 cuvect2_normalize(cuvect2 a) + { + cuvect2 ret; + double m = cuvect2_norm(a); + if(m>0.0) + { + ret.x = a.x/m; ret.y = a.y/m; + } + else + { + ret.x = 0.0; ret.y = 0.0; + } + return ret; + } + + __host__ __device__ cuvect2 cuvect2_proj(cuvect2 a, cuvect2 b) + { + cuvect2 ret; + cuvect2 bn = cuvect2_normalize(b); + double m = cuvect2_dot(a,bn); + ret = bn*m; + return ret; + } + + +__host__ __device__ cumat2::cumat2() +{ + int I; + for(I=0;I<4;I++) + { + dat[I] = 0.0; + } + return; +} + +__host__ __device__ cumat2::~cumat2() +{ + int I; + for(I=0;I<4;I++) + { + dat[I] = 0.0; + } + return; +} + +__host__ __device__ double& cumat2::operator[](const int I) +{ + return dat[I]; +} + +__host__ __device__ double& cumat2::operator()(const int I, const int J) +{ + return dat[I+2*J]; +} + +__host__ __device__ cumat2 cumat2::operator+(cumat2 lhs) +{ + int I; + cumat2 ret; + for(I=0;I<4;I++) + { + ret.dat[I] = this->dat[I] + lhs.dat[I]; + } + return ret; +} + +__host__ __device__ cumat2 cumat2::operator-(cumat2 lhs) +{ + int I; + cumat2 ret; + for(I=0;I<4;I++) + { + ret.dat[I] = this->dat[I] - lhs.dat[I]; + } + return ret; +} + +__host__ __device__ cumat2 cumat2::operator*(double lhs) +{ + cumat2 ret; + int I; + for(I=0;I<4;I++) + { + ret.dat[I] = this->dat[I]*lhs; + } + return ret; +} + +__host__ __device__ cumat2 cumat2::operator/(double lhs) +{ + cumat2 ret; + int I; + for(I=0;I<4;I++) + { + ret.dat[I] = this->dat[I]/lhs; + } + return ret; +} + +__host__ __device__ double& cumat2::at(const int I, const int J) +{ + return dat[I+2*J]; +} + + +__host__ __device__ cuvect2 cumat2::operator*(cuvect2 lhs) +{ + cuvect2 ret = cuvect2(0.0,0.0); + int I,J; + for(I=0;I<2;I++) + { + for(J=0;J<2;J++) + { + ret[I] = ret[I] + this->at(I,J)*lhs[J]; + } + } + return ret; +} + +__host__ __device__ cumat2 cumat2::operator*(cumat2 lhs) +{ + cumat2 ret; + int I,J,K; + + for(I=0;I<2;I++) + { + for(J=0;J<2;J++) + { + ret(I,J) = 0.0; + for(K=0;K<2;K++) + { + ret(I,J) = ret(I,J) + this->at(I,K)*lhs(K,J); + } + } + } + + return ret; +} + +__host__ __device__ double cumat2::det() +{ + double ret = 0.0; + ret = ret + this->at(0,0)*this->at(1,1); + ret = ret - this->at(1,0)*this->at(0,1); + return ret; +} + +__host__ __device__ cumat2 cumat2::transpose() +{ + cumat2 q; + int I,J; + for(I=0;I<2;I++) + { + for(J=0;J<2;J++) + { + q.at(I,J) = this->at(J,I); + } + } + return q; +} + +__host__ __device__ cumat2 cumat2::inverse() +{ + cumat2 q; + double dt = q.det(); + if(dt!=0.0) + { + q(0,0) = this->at(1,1)/dt; + q(0,1) = -this->at(0,1)/dt; + q(1,0) = -this->at(1,0)/dt; + q(1,1) = this->at(0,0)/dt; + } + else + { + q(0,0) = inf; + q(0,1) = inf; + q(1,0) = inf; + q(1,1) = inf; + } + + return q; +} + +//2x2 matrix operations +//matrix order is assumed to be mat[I,J] = mat[I+3*J] + +//transpose a 2x2 matrix in place +__host__ __device__ void mat2_transpose(double *mat2inout) +{ + double mat2_in[4]; + + mat2_copy(mat2_in,mat2inout); + mat2inout[0+0*2] = mat2_in[0+0*2]; + mat2inout[1+0*2] = mat2_in[0+1*2]; + mat2inout[0+1*2] = mat2_in[1+0*2]; + mat2inout[1+1*2] = mat2_in[1+1*2]; + + return; +} + +//copies src to dest +__host__ __device__ void mat2_copy(double *mat2_dest, const double *mat2_src) +{ + mat2_dest[0+0*2] = mat2_src[0+0*2]; + mat2_dest[1+0*2] = mat2_src[1+0*2]; + mat2_dest[0+1*2] = mat2_src[0+1*2]; + mat2_dest[1+1*2] = mat2_src[1+1*2]; + + return; +} + +//inverts mat?inout[4] +__host__ __device__ void mat2_inverse(double *mat2inout) +{ + double det = mat2inout[0+0*2]*mat2inout[1+1*2]-mat2inout[0+1*2]*mat2inout[1+0*2]; + double mat2in[4]; + + mat2_copy(mat2in,mat2inout); + mat2inout[0+0*2] = mat2inout[1+1*2]/det; + mat2inout[1+0*2] = -mat2inout[1+0*2]/det; + mat2inout[0+1*2] = -mat2inout[0+1*2]/det; + mat2inout[1+1*2] = mat2inout[0+0*2]/det; + + return; +} + +//rotatin matrix from angle +__host__ __device__ void mat2_rot_from_angle(double angle, double *mat2) +{ + mat2[0+0*2] = ::cos(angle); + mat2[1+0*2] = ::sin(angle); + mat2[0+1*2] = -::sin(angle); + mat2[1+1*2] = ::cos(angle); + return; +} + +//multiplies c = a*b +__host__ __device__ void mat2_mult(double *mat2a, double *mat2b, double *mat2c) +{ + double mat2a_in[4]; + double mat2b_in[4]; + + if(mat2a==NULL || mat2b==NULL || mat2c==NULL) + { + return; + } + + mat2_copy(mat2a_in,mat2a); + mat2_copy(mat2b_in,mat2b); + + mat2c[0+0*2] = mat2a_in[0+0*2]*mat2b_in[0+0*2] + mat2a_in[1+0*2]*mat2b_in[0+1*2]; + mat2c[1+0*2] = mat2a_in[0+0*2]*mat2b_in[1+0*2] + mat2a_in[1+0*2]*mat2b_in[1+1*2]; + mat2c[0+1*2] = mat2a_in[0+1*2]*mat2b_in[0+0*2] + mat2a_in[1+1*2]*mat2b_in[0+1*2]; + mat2c[1+1*2] = mat2a_in[0+1*2]*mat2b_in[1+0*2] + mat2a_in[1+1*2]*mat2b_in[1+1*2]; + + return; +} + +// ret = a*b +__host__ __device__ cuvect2 mat2_mult(double *mat2a, cuvect2 b) +{ + cuvect2 ret; + ret.x = b.x*mat2a[0+0*2] + b.y*mat2a[1+0*2]; + ret.y = b.x*mat2a[0+1*2] + b.y*mat2a[1+1*2]; + return ret; +} + +__host__ __device__ cuvect2 operator-(cuvect2 rhs) +{ + cuvect2 ret; + ret[0] = -rhs[0]; + ret[1] = -rhs[1]; + 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() +{ + + + return; +} + +}; \ No newline at end of file diff --git a/old/9apr26_prerefactor/src/amsculib2/cuvect2f.cu b/old/9apr26_prerefactor/src/amsculib2/cuvect2f.cu new file mode 100644 index 0000000..9b53d79 --- /dev/null +++ b/old/9apr26_prerefactor/src/amsculib2/cuvect2f.cu @@ -0,0 +1,377 @@ +#include + +namespace amscuda +{ + + __host__ __device__ cuvect2f::cuvect2f() + { + x = 0.0; y = 0.0; + return; + } + + __host__ __device__ cuvect2f::~cuvect2f() + { + x = 0.0; y = 0.0; + return; + } + + __host__ __device__ cuvect2f::cuvect2f(const float &_x, const float &_y) + { + x = _x; y = _y; + return; + } + + __host__ __device__ float& cuvect2f::operator[](const int &I) + { + if(I==0) return x; + if(I==1) return y; + return x; + } + + __host__ __device__ const float& cuvect2f::operator[](const int &I) const + { + if(I==0) return x; + if(I==1) return y; + return x; + } + + __host__ __device__ cuvect2f cuvect2f::operator+(const cuvect2f &lhs) + { + cuvect2f ret; + ret.x = x + lhs.x; + ret.y = y + lhs.y; + return ret; + } + + __host__ __device__ cuvect2f cuvect2f::operator-(const cuvect2f &lhs) + { + cuvect2f ret; + ret.x = x - lhs.x; + ret.y = y - lhs.y; + return ret; + } + __host__ __device__ cuvect2f cuvect2f::operator*(const float &lhs) + { + cuvect2f ret; + ret.x = x*lhs; + ret.y = y*lhs; + return ret; + } + + __host__ __device__ cuvect2f cuvect2f::operator/(const float &lhs) + { + cuvect2f ret; + ret.x = x/lhs; + ret.y = y/lhs; + return ret; + } + + __host__ __device__ float cuvect2f_dot(const cuvect2f &a, const cuvect2f &b) + { + float ret = a.x*b.x+a.y*b.y; + return ret; + } + + __host__ __device__ float cuvect2f_cross(const cuvect2f &a, const cuvect2f &b) + { + float ret = a.x*b.y-a.y*b.x; + return ret; + } + + __host__ __device__ float cuvect2f_norm(const cuvect2f &a) + { + float ret = ::sqrtf(a.x*a.x+a.y*a.y); + return ret; + } + + __host__ __device__ cuvect2f cuvect2f_normalize(const cuvect2f &a) + { + cuvect2f ret; + float m = cuvect2f_norm(a); + if(m>0.0) + { + ret.x = a.x/m; ret.y = a.y/m; + } + else + { + ret.x = 0.0; ret.y = 0.0; + } + return ret; + } + + __host__ __device__ cuvect2f cuvect2f_proj(const cuvect2f &a, const cuvect2f &b) + { + cuvect2f ret; + cuvect2f bn = cuvect2f_normalize(b); + float m = cuvect2f_dot(a,bn); + ret = bn*m; + return ret; + } + + +__host__ __device__ cumat2f::cumat2f() +{ + int I; + for(I=0;I<4;I++) + { + dat[I] = 0.0; + } + return; +} + +__host__ __device__ cumat2f::~cumat2f() +{ + int I; + for(I=0;I<4;I++) + { + dat[I] = 0.0; + } + return; +} + +__host__ __device__ float& cumat2f::operator[](const int I) +{ + return dat[I]; +} + +__host__ __device__ float& cumat2f::operator()(const int I, const int J) +{ + return dat[I+2*J]; +} + +__host__ __device__ cumat2f cumat2f::operator+(cumat2f lhs) +{ + int I; + cumat2f ret; + for(I=0;I<4;I++) + { + ret.dat[I] = this->dat[I] + lhs.dat[I]; + } + return ret; +} + +__host__ __device__ cumat2f cumat2f::operator-(cumat2f lhs) +{ + int I; + cumat2f ret; + for(I=0;I<4;I++) + { + ret.dat[I] = this->dat[I] - lhs.dat[I]; + } + return ret; +} + +__host__ __device__ cumat2f cumat2f::operator*(float lhs) +{ + cumat2f ret; + int I; + for(I=0;I<4;I++) + { + ret.dat[I] = this->dat[I]*lhs; + } + return ret; +} + +__host__ __device__ cumat2f cumat2f::operator/(float lhs) +{ + cumat2f ret; + int I; + for(I=0;I<4;I++) + { + ret.dat[I] = this->dat[I]/lhs; + } + return ret; +} + +__host__ __device__ float& cumat2f::at(const int I, const int J) +{ + return dat[I+2*J]; +} + + +__host__ __device__ cuvect2f cumat2f::operator*(cuvect2f lhs) +{ + cuvect2f ret = cuvect2f(0.0,0.0); + int I,J; + for(I=0;I<2;I++) + { + for(J=0;J<2;J++) + { + ret[I] = ret[I] + this->at(I,J)*lhs[J]; + } + } + return ret; +} + +__host__ __device__ cumat2f cumat2f::operator*(cumat2f lhs) +{ + cumat2f ret; + int I,J,K; + + for(I=0;I<2;I++) + { + for(J=0;J<2;J++) + { + ret(I,J) = 0.0; + for(K=0;K<2;K++) + { + ret(I,J) = ret(I,J) + this->at(I,K)*lhs(K,J); + } + } + } + + return ret; +} + +__host__ __device__ float cumat2f::det() +{ + float ret = 0.0; + ret = ret + this->at(0,0)*this->at(1,1); + ret = ret - this->at(1,0)*this->at(0,1); + return ret; +} + +__host__ __device__ cumat2f cumat2f::transpose() +{ + cumat2f q; + int I,J; + for(I=0;I<2;I++) + { + for(J=0;J<2;J++) + { + q.at(I,J) = this->at(J,I); + } + } + return q; +} + +__host__ __device__ cumat2f cumat2f::inverse() +{ + cumat2f q; + float dt = q.det(); + if(dt!=0.0) + { + q(0,0) = this->at(1,1)/dt; + q(0,1) = -this->at(0,1)/dt; + q(1,0) = -this->at(1,0)/dt; + q(1,1) = this->at(0,0)/dt; + } + else + { + q(0,0) = inf; + q(0,1) = inf; + q(1,0) = inf; + q(1,1) = inf; + } + + return q; +} + +//2x2 matrix operations +//matrix order is assumed to be mat[I,J] = mat[I+3*J] + +//transpose a 2x2 matrix in place +__host__ __device__ void mat2f_transpose(float *mat2inout) +{ + float mat2f_in[4]; + + mat2f_copy(mat2f_in,mat2inout); + mat2inout[0+0*2] = mat2f_in[0+0*2]; + mat2inout[1+0*2] = mat2f_in[0+1*2]; + mat2inout[0+1*2] = mat2f_in[1+0*2]; + mat2inout[1+1*2] = mat2f_in[1+1*2]; + + return; +} + +//copies src to dest +__host__ __device__ void mat2f_copy(float *mat2f_dest, const float *mat2f_src) +{ + mat2f_dest[0+0*2] = mat2f_src[0+0*2]; + mat2f_dest[1+0*2] = mat2f_src[1+0*2]; + mat2f_dest[0+1*2] = mat2f_src[0+1*2]; + mat2f_dest[1+1*2] = mat2f_src[1+1*2]; + + return; +} + +//inverts mat?inout[4] +__host__ __device__ void mat2f_inverse(float *mat2inout) +{ + float det = mat2inout[0+0*2]*mat2inout[1+1*2]-mat2inout[0+1*2]*mat2inout[1+0*2]; + float mat2in[4]; + + mat2f_copy(mat2in,mat2inout); + mat2inout[0+0*2] = mat2inout[1+1*2]/det; + mat2inout[1+0*2] = -mat2inout[1+0*2]/det; + mat2inout[0+1*2] = -mat2inout[0+1*2]/det; + mat2inout[1+1*2] = mat2inout[0+0*2]/det; + + return; +} + +//rotatin matrix from angle +__host__ __device__ void mat2f_rot_from_angle(float angle, float *mat2) +{ + mat2[0+0*2] = ::cosf(angle); + mat2[1+0*2] = ::sinf(angle); + mat2[0+1*2] = -::sinf(angle); + mat2[1+1*2] = ::cosf(angle); + return; +} + +//multiplies c = a*b +__host__ __device__ void mat2f_mult(float *mat2a, float *mat2b, float *mat2c) +{ + float mat2a_in[4]; + float mat2b_in[4]; + + if(mat2a==NULL || mat2b==NULL || mat2c==NULL) + { + return; + } + + mat2f_copy(mat2a_in,mat2a); + mat2f_copy(mat2b_in,mat2b); + + mat2c[0+0*2] = mat2a_in[0+0*2]*mat2b_in[0+0*2] + mat2a_in[1+0*2]*mat2b_in[0+1*2]; + mat2c[1+0*2] = mat2a_in[0+0*2]*mat2b_in[1+0*2] + mat2a_in[1+0*2]*mat2b_in[1+1*2]; + mat2c[0+1*2] = mat2a_in[0+1*2]*mat2b_in[0+0*2] + mat2a_in[1+1*2]*mat2b_in[0+1*2]; + mat2c[1+1*2] = mat2a_in[0+1*2]*mat2b_in[1+0*2] + mat2a_in[1+1*2]*mat2b_in[1+1*2]; + + return; +} + +// ret = a*b +__host__ __device__ cuvect2f mat2f_mult(float *mat2a, const cuvect2f &b) +{ + cuvect2f ret; + ret.x = b.x*mat2a[0+0*2] + b.y*mat2a[1+0*2]; + ret.y = b.x*mat2a[0+1*2] + b.y*mat2a[1+1*2]; + return ret; +} + +__host__ __device__ cuvect2f operator-(cuvect2f rhs) +{ + cuvect2f ret; + ret[0] = -rhs[0]; + ret[1] = -rhs[1]; + 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() +{ + + + return; +} + +}; \ No newline at end of file diff --git a/old/9apr26_prerefactor/src/amsculib2/cuvect3.cu b/old/9apr26_prerefactor/src/amsculib2/cuvect3.cu new file mode 100644 index 0000000..6a9357c --- /dev/null +++ b/old/9apr26_prerefactor/src/amsculib2/cuvect3.cu @@ -0,0 +1,598 @@ +#include + +namespace amscuda +{ + + __host__ __device__ cuvect3::cuvect3() + { + x = 0.0; y = 0.0; z = 0.0; + return; + } + + __host__ __device__ cuvect3::~cuvect3() + { + x = 0.0; y = 0.0; z = 0.0; + return; + } + + __host__ __device__ double& cuvect3::operator[](const int I) + { + if(I==0) return x; + if(I==1) return y; + if(I==2) return z; + return x; + } + + __host__ __device__ const double& cuvect3::operator[](const int I) const + { + if(I==0) return x; + if(I==1) return y; + if(I==2) return z; + return x; + } + + __host__ __device__ cuvect3 cuvect3::operator+(cuvect3 lhs) + { + cuvect3 ret; + ret.x = x+lhs.x; + ret.y = y+lhs.y; + ret.z = z+lhs.z; + + return ret; + } + + __host__ __device__ cuvect3 cuvect3::operator-(cuvect3 lhs) + { + cuvect3 ret; + ret.x = x-lhs.x; + ret.y = y-lhs.y; + ret.z = z-lhs.z; + + return ret; + } + + __host__ __device__ cuvect3 cuvect3::operator*(double lhs) + { + cuvect3 ret; + ret.x = x*lhs; + ret.y = y*lhs; + ret.z = z*lhs; + return ret; + } + + __host__ __device__ cuvect3 cuvect3::operator/(double lhs) + { + cuvect3 ret; + ret.x = x/lhs; + ret.y = y/lhs; + ret.z = z/lhs; + return ret; + } + + __host__ __device__ cuvect3::cuvect3(double _x, double _y, double _z) + { + x = _x; y = _y; z = _z; + return; + } + + + __host__ __device__ double cuvect3_dot(cuvect3 a, cuvect3 b) + { + double ret = a.x*b.x+a.y*b.y+a.z*b.z; + + return ret; + } + + __host__ __device__ cuvect3 cuvect3_cross(cuvect3 a, cuvect3 b) + { + cuvect3 ret; + ret[0] = a[1]*b[2]-a[2]*b[1]; + ret[1] = a[2]*b[0]-a[0]*b[2]; + ret[2] = a[0]*b[1]-a[1]*b[0]; + + return ret; + } + + __host__ __device__ double cuvect3_norm(cuvect3 a) + { + double ret; + ret = ::sqrt(a.x*a.x+a.y*a.y+a.z*a.z); + return ret; + } + + __host__ __device__ cuvect3 cuvect3_normalize(cuvect3 a) + { + cuvect3 ret; + double m; + m = ::sqrt(a.x*a.x+a.y*a.y+a.z*a.z); + if(m>0.0) + { + ret.x = a.x/m; ret.y = a.y/m; ret.z = a.z/m; + } + else + { + ret.x = 0.0; ret.y = 0.0; ret.z = 0.0; + } + + return ret; + } + + __host__ __device__ cuvect3 cuvect3_proj(cuvect3 a, cuvect3 b) + { + cuvect3 ret; + cuvect3 bn = cuvect3_normalize(b); + double m = cuvect3_dot(a,bn); + ret = bn*m; + return ret; + } + +//transposes a 3x3 (9 element) matrix +__host__ __device__ void mat3_transpose(double *mat3inout) +{ + int I,J; + double matint[9]; + for(I=0;I<9;I++) + { + matint[I] = mat3inout[I]; + } + + for(I=0;I<3;I++) + { + for(J=0;J<3;J++) + { + mat3inout[I+J*3] = matint[J+I*3]; + } + } + + return; +} + +//copies src to dest +__host__ __device__ void mat3_copy(double *mat3_dest, const double *mat3_src) +{ + int I; + if(mat3_dest==NULL || mat3_src==NULL) + return; + + for(I=0;I<9;I++) + mat3_dest[I] = mat3_src[I]; + + return; +} + + +__host__ __device__ double mat3_det(double *mat3in) +{ + double ret = 0.0; + + ret = ret + mat3in[0+0*3]*mat3in[1+1*3]*mat3in[2+2*3]; + ret = ret + mat3in[0+1*3]*mat3in[1+2*3]*mat3in[2+0*3]; + ret = ret + mat3in[0+2*3]*mat3in[1+0*3]*mat3in[2+1*3]; + ret = ret - mat3in[0+0*3]*mat3in[1+2*3]*mat3in[2+1*3]; + ret = ret - mat3in[0+1*3]*mat3in[1+0*3]*mat3in[2+2*3]; + ret = ret - mat3in[0+2*3]*mat3in[1+1*3]*mat3in[2+0*3]; + + return ret; +} + +//inverts a 3x3 (9 element) matrix +__host__ __device__ void mat3_inverse(double *mat3inout) +{ + int I; + double matint[9]; + double det = mat3_det(mat3inout); + + for(I=0;I<9;I++) + { + matint[I] = mat3inout[I]; + } + + mat3inout[0+0*3] = (matint[1+1*3]*matint[2+2*3]-matint[1+2*3]*matint[2+1*3])/det; + mat3inout[0+1*3] = -(matint[1+0*3]*matint[2+2*3]-matint[1+2*3]*matint[2+0*3])/det; + mat3inout[0+2*3] = (matint[1+0*3]*matint[2+1*3]-matint[1+1*3]*matint[2+0*3])/det; + mat3inout[1+0*3] = -(matint[0+1*3]*matint[2+2*3]-matint[0+2*3]*matint[2+1*3])/det; + mat3inout[1+1*3] = (matint[0+0*3]*matint[2+2*3]-matint[0+2*3]*matint[2+0*3])/det; + mat3inout[1+2*3] = -(matint[0+0*3]*matint[2+1*3]-matint[0+1*3]*matint[2+0*3])/det; + mat3inout[2+0*3] = (matint[0+1*3]*matint[1+2*3]-matint[0+2*3]*matint[1+1*3])/det; + mat3inout[2+1*3] = -(matint[0+0*3]*matint[1+2*3]-matint[0+2*3]*matint[1+0*3])/det; + mat3inout[2+2*3] = (matint[0+0*3]*matint[1+1*3]-matint[0+1*3]*matint[1+0*3])/det; + + mat3_transpose(mat3inout); + + return; +} + +__host__ __device__ cuvect3 mat3_mult(double *mat3in, cuvect3 cvin) +{ + int I,J; + cuvect3 ret; + for(I=0;I<3;I++) + { + ret[I] = 0.0; + for(J=0;J<3;J++) + { + ret[I] = ret[I] + mat3in[I+3*J]*cvin[J]; + } + } + + return ret; +} + +__host__ __device__ void mat3_mult(double *matina, double *matinb, double *matout) +{ + double wrk[9]; + int I,J,K; + + for(I=0;I<3;I++) + { + for(J=0;J<3;J++) + { + wrk[I+3*J] = 0.0; + } + } + + for(I=0;I<3;I++) + { + for(J=0;J<3;J++) + { + for(K=0;K<3;K++) + { + wrk[I+3*K] = wrk[I+3*K] + matina[I+3*J]*matinb[J+3*K]; + } + } + } + + for(I=0;I<3;I++) + { + for(J=0;J<3;J++) + { + matout[I+3*J] = wrk[I+3*J]; + } + } + + return; +} + +__host__ __device__ void mat3_hodgedual(cuvect3 vecin, double *matout) +{ + matout[0 + 0*3] = 0.0f; + matout[1 + 0*3] = -vecin[2]; + matout[2 + 0*3] = vecin[1]; + + matout[0 + 1*3] = vecin[2]; + matout[1 + 1*3] = 0.0f; + matout[2 + 1*3] = -vecin[0]; + + matout[0 + 2*3] = -vecin[1]; + matout[1 + 2*3] = vecin[0]; + matout[2 + 2*3] = 0.0f; + return; +} + +__host__ __device__ void mat3_hodgedual(double *matin, cuvect3 vecout) +{ + vecout[0] = 0.5*(matin[1 + 2*3] - matin[2 + 1*3]); + vecout[1] = 0.5*(matin[2 + 0*3] - matin[0 + 2*3]); + vecout[2] = 0.5*(matin[0 + 1*3] - matin[1 + 0*3]); + + return; +} + +//returns direction cosine rotation matrix from axis and angle +__host__ __device__ void mat3_rot_from_axisangle(cuvect3 axis, double angle, double *matout) +{ + int I; + double H[9]; + double Hsq[9]; + double II[9]; + + for(I=0;I<9;I++) II[I] = 0.0; + II[0+0*3] = 1.0; + II[1+1*3] = 1.0; + II[2+2*3] = 1.0; + + axis = cuvect3_normalize(axis); + + mat3_hodgedual(axis,H); + mat3_mult(H,H,Hsq); + + for(I=0;I<9;I++) + { + matout[I] = (II[I] + Hsq[I]) + H[I]*sin(angle) - Hsq[I]*cos(angle); + } + + return; +} + + + +__host__ void test_cudavect_logic1() +{ + //3 dim vector and matrix functional tests on host side + + printf("3 dim vector and matrix functional tests on host side\n"); + + cuvect3 a,b,c; + double ma[9],mb[9],mc[9]; + + int I,J; + + for(I=0;I<3;I++) + { + for(J=0;J<3;J++) + { + ma[I+3*J] = ((double) rand())/((double) RAND_MAX); + mb[I+3*J] = ma[I+3*J]; + } + } + + mat3_inverse(mb); + mat3_mult(ma,mb,mc); + + for(I=0;I<3;I++) + { + for(J=0;J<3;J++) + { + printf("ma[%d,%d] = %1.3f\n",I,J,ma[I+3*J]); + } + } + for(I=0;I<3;I++) + { + for(J=0;J<3;J++) + { + printf("mb[%d,%d] = %1.3f\n",I,J,mb[I+3*J]); + } + } + for(I=0;I<3;I++) + { + for(J=0;J<3;J++) + { + printf("mc[%d,%d] = %1.3f\n",I,J,mc[I+3*J]); + } + } + + a = cuvect3(1,1,1); + b = mat3_mult(ma,a); + b = mat3_mult(mb,b); + + for(I=0;I<3;I++) + { + printf("a[%d] = %1.3f, b[%d] = %1.3f\n",I,a[I],I,b[I]); + } + + a = cuvect3(1,0,1); + b = cuvect3(0,1,-1); + c = a+b; + + for(I=0;I<3;I++) + { + printf("a[%d] = %1.3f, b[%d] = %1.3f, c[%d] = %1.3f\n",I,a[I],I,b[I],I,c[I]); + } + + c = c/2.0; + + for(I=0;I<3;I++) + { + printf("a[%d] = %1.3f, b[%d] = %1.3f, c[%d] = %1.3f\n",I,a[I],I,b[I],I,c[I]); + } + + c = cuvect3_cross(a,b); + + for(I=0;I<3;I++) + { + printf("a[%d] = %1.3f, b[%d] = %1.3f, c[%d] = %1.3f\n",I,a[I],I,b[I],I,c[I]); + } + + printf("c dot a = %1.3f, c dot b = %1.3f\n",cuvect3_dot(c,a),cuvect3_dot(c,b)); + + printf("norm(a)=%1.3f, norm(b)=%1.3f, norm(c)=%1.3f\n",cuvect3_norm(a),cuvect3_norm(b),cuvect3_norm(c)); + a = cuvect3_normalize(a); + b = cuvect3_normalize(b); + c = cuvect3_normalize(c); + + for(I=0;I<3;I++) + { + printf("a[%d] = %1.3f, b[%d] = %1.3f, c[%d] = %1.3f\n",I,a[I],I,b[I],I,c[I]); + } + printf("c dot a = %1.3f, c dot b = %1.3f\n",cuvect3_dot(c,a),cuvect3_dot(c,b)); + printf("norm(a)=%1.3f, norm(b)=%1.3f, norm(c)=%1.3f\n",cuvect3_norm(a),cuvect3_norm(b),cuvect3_norm(c)); + + return; +} + + + +__host__ __device__ cumat3::cumat3() +{ + int I; + for(I=0;I<9;I++) + { + dat[I] = 0.0; + } + return; +} + +__host__ __device__ cumat3::~cumat3() +{ + int I; + for(I=0;I<9;I++) + { + dat[I] = 0.0; + } + return; +} + +__host__ __device__ double& cumat3::operator[](const int I) +{ + return dat[I]; +} + +__host__ __device__ double& cumat3::operator()(const int I, const int J) +{ + return dat[I+3*J]; +} + +__host__ __device__ cumat3 cumat3::operator+(cumat3 lhs) +{ + int I; + cumat3 ret; + for(I=0;I<9;I++) + { + ret.dat[I] = this->dat[I] + lhs.dat[I]; + } + return ret; +} + +__host__ __device__ cumat3 cumat3::operator-(cumat3 lhs) +{ + int I; + cumat3 ret; + for(I=0;I<9;I++) + { + ret.dat[I] = this->dat[I] - lhs.dat[I]; + } + return ret; +} + +__host__ __device__ cumat3 cumat3::operator*(double lhs) +{ + cumat3 ret; + int I; + for(I=0;I<9;I++) + { + ret.dat[I] = this->dat[I]*lhs; + } + return ret; +} + +__host__ __device__ cumat3 cumat3::operator/(double lhs) +{ + cumat3 ret; + int I; + for(I=0;I<9;I++) + { + ret.dat[I] = this->dat[I]/lhs; + } + return ret; +} + +__host__ __device__ double& cumat3::at(const int I, const int J) +{ + return dat[I+3*J]; +} + + +__host__ __device__ cuvect3 cumat3::operator*(cuvect3 lhs) +{ + cuvect3 ret = cuvect3(0.0,0.0,0.0); + int I,J; + for(I=0;I<3;I++) + { + for(J=0;J<3;J++) + { + ret[I] = ret[I] + this->at(I,J)*lhs[J]; + } + } + return ret; +} + +__host__ __device__ cumat3 cumat3::operator*(cumat3 lhs) +{ + cumat3 ret; + int I,J,K; + + for(I=0;I<3;I++) + { + for(J=0;J<3;J++) + { + ret(I,J) = 0.0; + for(K=0;K<3;K++) + { + ret(I,J) = ret(I,J) + this->at(I,K)*lhs(K,J); + } + } + } + + return ret; +} + +__host__ __device__ double cumat3::det() +{ + double ret = 0.0; + + ret = ret + this->at(0,0)*this->at(1,1)*this->at(2,2); + ret = ret + this->at(0,1)*this->at(1,2)*this->at(2,0); + ret = ret + this->at(0,2)*this->at(1,0)*this->at(2,1); + ret = ret - this->at(0,0)*this->at(1,2)*this->at(2,1); + ret = ret - this->at(0,1)*this->at(1,0)*this->at(2,2); + ret = ret - this->at(0,2)*this->at(1,1)*this->at(2,0); + + return ret; +} + +__host__ __device__ cumat3 cumat3::transpose() +{ + cumat3 q; + int I,J; + for(I=0;I<3;I++) + { + for(J=0;J<3;J++) + { + q.at(I,J) = this->at(J,I); + } + } + return q; +} + +__host__ __device__ cumat3 cumat3::inverse() +{ + cumat3 q; + double dt = q.det(); + if(dt!=0.0) + { + q(0,0) = (this->at(1,1)*this->at(2,2)-this->at(1,2)*this->at(2,1))/dt; + q(0,1) = -(this->at(1,0)*this->at(2,2)-this->at(1,2)*this->at(2,0))/dt; + q(0,2) = (this->at(1,0)*this->at(2,1)-this->at(1,1)*this->at(2,0))/dt; + q(1,0) = -(this->at(0,1)*this->at(2,2)-this->at(0,2)*this->at(2,1))/dt; + q(1,1) = (this->at(0,0)*this->at(2,2)-this->at(0,2)*this->at(2,0))/dt; + q(1,2) = -(this->at(0,0)*this->at(2,1)-this->at(0,1)*this->at(2,0))/dt; + q(2,0) = (this->at(0,1)*this->at(1,2)-this->at(0,2)*this->at(1,1))/dt; + q(2,1) = -(this->at(0,0)*this->at(1,2)-this->at(0,2)*this->at(1,0))/dt; + q(2,2) = (this->at(0,0)*this->at(1,1)-this->at(0,1)*this->at(1,0))/dt; + + q = q.transpose(); + } + else + { + q(0,0) = inf; + q(0,1) = inf; + q(0,2) = inf; + q(1,0) = inf; + q(1,1) = inf; + q(1,2) = inf; + q(2,0) = inf; + q(2,1) = inf; + q(2,2) = inf; + } + + return q; +} + +__host__ __device__ cuvect3 operator-(cuvect3 rhs) +{ + cuvect3 ret; + ret[0] = -rhs[0]; + ret[1] = -rhs[1]; + ret[2] = -rhs[2]; + 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/old/9apr26_prerefactor/src/amsculib2/cuvect3f.cu b/old/9apr26_prerefactor/src/amsculib2/cuvect3f.cu new file mode 100644 index 0000000..309d6bb --- /dev/null +++ b/old/9apr26_prerefactor/src/amsculib2/cuvect3f.cu @@ -0,0 +1,915 @@ +#include + +namespace amscuda +{ + + __host__ __device__ cuvect3f::cuvect3f() + { + x = 0.0; y = 0.0; z = 0.0; + return; + } + + __host__ __device__ cuvect3f::~cuvect3f() + { + x = 0.0; y = 0.0; z = 0.0; + return; + } + + __host__ __device__ float& cuvect3f::operator[](const int &I) + { + if(I==0) return x; + if(I==1) return y; + if(I==2) return z; + return x; + } + + __host__ __device__ const float& cuvect3f::operator[](const int &I) const + { + if(I==0) return x; + if(I==1) return y; + if(I==2) return z; + return x; + } + + __host__ __device__ cuvect3f cuvect3f::operator+(const cuvect3f &rhs) + { + cuvect3f ret; + ret.x = x+rhs.x; + ret.y = y+rhs.y; + ret.z = z+rhs.z; + + return ret; + } + + __host__ __device__ cuvect3f cuvect3f::operator-(const cuvect3f &rhs) + { + cuvect3f ret; + ret.x = x-rhs.x; + ret.y = y-rhs.y; + ret.z = z-rhs.z; + + return ret; + } + + __host__ __device__ cuvect3f cuvect3f::operator*(const float &rhs) + { + cuvect3f ret; + ret.x = x*rhs; + ret.y = y*rhs; + ret.z = z*rhs; + return ret; + } + + __host__ __device__ cuvect3f cuvect3f::operator/(const float &rhs) + { + cuvect3f ret; + ret.x = x/rhs; + ret.y = y/rhs; + ret.z = z/rhs; + return ret; + } + + __host__ __device__ cuvect3f& cuvect3f::operator+=(const cuvect3f &rhs) + { + x = x + rhs.x; + y = y + rhs.y; + z = z + rhs.z; + return *this; + } + + __host__ __device__ cuvect3f& cuvect3f::operator-=(const cuvect3f &rhs) + { + x = x - rhs.x; + y = y - rhs.y; + z = z - rhs.z; + return *this; + } + + __host__ __device__ cuvect3f& cuvect3f::operator*=(const float &rhs) + { + x = x * rhs; + y = y * rhs; + z = z * rhs; + return *this; + } + + __host__ __device__ cuvect3f& cuvect3f::operator/=(const float &rhs) + { + x = x / rhs; + y = y / rhs; + z = z / rhs; + return *this; + } + + + __host__ __device__ cuvect3f::cuvect3f(const float &_x, const float &_y, const float &_z) + { + x = _x; y = _y; z = _z; + return; + } + + + __host__ __device__ float cuvect3f_dot(const cuvect3f &a, const cuvect3f &b) + { + float ret = a.x*b.x+a.y*b.y+a.z*b.z; + + return ret; + } + + __host__ __device__ cuvect3f cuvect3f_cross(const cuvect3f &a, const cuvect3f &b) + { + cuvect3f ret; + ret[0] = a[1]*b[2]-a[2]*b[1]; + ret[1] = a[2]*b[0]-a[0]*b[2]; + ret[2] = a[0]*b[1]-a[1]*b[0]; + + return ret; + } + + __host__ __device__ float cuvect3f_norm(const cuvect3f &a) + { + float ret; + ret = ::sqrtf(a.x*a.x+a.y*a.y+a.z*a.z); + return ret; + } + + __host__ __device__ cuvect3f cuvect3f_normalize(const cuvect3f &a) + { + cuvect3f ret; + float m; + m = ::sqrtf(a.x*a.x+a.y*a.y+a.z*a.z); + if(m>0.0) + { + ret.x = a.x/m; ret.y = a.y/m; ret.z = a.z/m; + } + else + { + ret.x = 0.0; ret.y = 0.0; ret.z = 0.0; + } + + return ret; + } + + __host__ __device__ cuvect3f cuvect3f_proj(const cuvect3f &a, const cuvect3f &b) + { + cuvect3f ret; + cuvect3f bn = cuvect3f_normalize(b); + float m = cuvect3f_dot(a,bn); + ret = bn*m; + return ret; + } + + + + +__host__ __device__ cumat3f::cumat3f() +{ + m00 = 0.0f; + m01 = 0.0f; + m02 = 0.0f; + m10 = 0.0f; + m11 = 0.0f; + m12 = 0.0f; + m20 = 0.0f; + m21 = 0.0f; + m22 = 0.0f; + + return; +} + +__host__ __device__ cumat3f::~cumat3f() +{ + m00 = 0.0f; + m01 = 0.0f; + m02 = 0.0f; + m10 = 0.0f; + m11 = 0.0f; + m12 = 0.0f; + m20 = 0.0f; + m21 = 0.0f; + m22 = 0.0f; + return; +} + +__host__ __device__ float& cumat3f::operator[](const int &I) +{ + if(I==0) return m00; + if(I==1) return m10; + if(I==2) return m20; + if(I==3) return m01; + if(I==4) return m11; + if(I==5) return m21; + if(I==6) return m02; + if(I==7) return m12; + if(I==8) return m22; + + return m00; +} + +__host__ __device__ float& cumat3f::operator()(const int &I, const int &J) +{ + if(I==0 && J==0) return m00; + if(I==1 && J==0) return m10; + if(I==2 && J==0) return m20; + if(I==0 && J==1) return m01; + if(I==1 && J==1) return m11; + if(I==2 && J==1) return m21; + if(I==0 && J==2) return m02; + if(I==1 && J==2) return m12; + if(I==2 && J==2) return m22; + + return m00; +} + + +__host__ __device__ float& cumat3f::at(const int &I, const int &J) +{ + if(I==0 && J==0) return m00; + if(I==1 && J==0) return m10; + if(I==2 && J==0) return m20; + if(I==0 && J==1) return m01; + if(I==1 && J==1) return m11; + if(I==2 && J==1) return m21; + if(I==0 && J==2) return m02; + if(I==1 && J==2) return m12; + if(I==2 && J==2) return m22; + + return m00; +} + +__host__ __device__ const float& cumat3f::operator[](const int &I) const +{ + if(I==0) return m00; + if(I==1) return m10; + if(I==2) return m20; + if(I==3) return m01; + if(I==4) return m11; + if(I==5) return m21; + if(I==6) return m02; + if(I==7) return m12; + if(I==8) return m22; + + return m00; +} + +__host__ __device__ const float& cumat3f::operator()(const int &I, const int &J) const +{ + if(I==0 && J==0) return m00; + if(I==1 && J==0) return m10; + if(I==2 && J==0) return m20; + if(I==0 && J==1) return m01; + if(I==1 && J==1) return m11; + if(I==2 && J==1) return m21; + if(I==0 && J==2) return m02; + if(I==1 && J==2) return m12; + if(I==2 && J==2) return m22; + + return m00; +} + + +__host__ __device__ const float& cumat3f::at(const int &I, const int &J) const +{ + if(I==0 && J==0) return m00; + if(I==1 && J==0) return m10; + if(I==2 && J==0) return m20; + if(I==0 && J==1) return m01; + if(I==1 && J==1) return m11; + if(I==2 && J==1) return m21; + if(I==0 && J==2) return m02; + if(I==1 && J==2) return m12; + if(I==2 && J==2) return m22; + + return m00; +} + + +__host__ __device__ cumat3f cumat3f::operator+(const cumat3f &rhs) +{ + cumat3f ret; + ret.m00 = m00 + rhs.m00; + ret.m10 = m10 + rhs.m10; + ret.m20 = m20 + rhs.m20; + ret.m01 = m01 + rhs.m01; + ret.m11 = m11 + rhs.m11; + ret.m21 = m21 + rhs.m21; + ret.m02 = m02 + rhs.m02; + ret.m12 = m12 + rhs.m12; + ret.m22 = m22 + rhs.m22; + + + return ret; +} + +__host__ __device__ cumat3f cumat3f::operator-(const cumat3f &rhs) +{ + cumat3f ret; + ret.m00 = m00 - rhs.m00; + ret.m10 = m10 - rhs.m10; + ret.m20 = m20 - rhs.m20; + ret.m01 = m01 - rhs.m01; + ret.m11 = m11 - rhs.m11; + ret.m21 = m21 - rhs.m21; + ret.m02 = m02 - rhs.m02; + ret.m12 = m12 - rhs.m12; + ret.m22 = m22 - rhs.m22; + return ret; +} + +__host__ __device__ cumat3f cumat3f::operator*(const float &rhs) +{ + cumat3f ret; + ret.m00 = m00 * rhs; + ret.m10 = m10 * rhs; + ret.m20 = m20 * rhs; + ret.m01 = m01 * rhs; + ret.m11 = m11 * rhs; + ret.m21 = m21 * rhs; + ret.m02 = m02 * rhs; + ret.m12 = m12 * rhs; + ret.m22 = m22 * rhs; + return ret; +} + +__host__ __device__ cumat3f cumat3f::operator/(const float &rhs) +{ + cumat3f ret; + ret.m00 = m00 / rhs; + ret.m10 = m10 / rhs; + ret.m20 = m20 / rhs; + ret.m01 = m01 / rhs; + ret.m11 = m11 / rhs; + ret.m21 = m21 / rhs; + ret.m02 = m02 / rhs; + ret.m12 = m12 / rhs; + ret.m22 = m22 / rhs; + return ret; +} + +__host__ __device__ cuvect3f cumat3f::operator*(const cuvect3f &rhs) +{ + cuvect3f ret; + + ret.x = m00*rhs.x + m01*rhs.y + m02*rhs.z; + ret.y = m10*rhs.x + m11*rhs.y + m12*rhs.z; + ret.z = m20*rhs.x + m21*rhs.y + m22*rhs.z; + + return ret; +} + +__host__ __device__ cumat3f cumat3f::operator*(const cumat3f &rhs) +{ + cumat3f ret; + + ret.m00 = m00*rhs.m00 + m01*rhs.m10 + m02*rhs.m20; + ret.m01 = m00*rhs.m01 + m01*rhs.m11 + m02*rhs.m21; + ret.m02 = m00*rhs.m02 + m01*rhs.m12 + m02*rhs.m22; + ret.m10 = m10*rhs.m00 + m11*rhs.m10 + m12*rhs.m20; + ret.m11 = m10*rhs.m01 + m11*rhs.m11 + m12*rhs.m21; + ret.m12 = m10*rhs.m02 + m11*rhs.m12 + m12*rhs.m22; + ret.m20 = m20*rhs.m00 + m21*rhs.m10 + m22*rhs.m20; + ret.m21 = m20*rhs.m01 + m21*rhs.m11 + m22*rhs.m21; + ret.m22 = m20*rhs.m02 + m21*rhs.m12 + m22*rhs.m22; + + return ret; +} + +__host__ __device__ float cumat3f::det() +{ + float ret = 0.0; + + ret += m00*m11*m22; + ret += m01*m12*m20; + ret += m02*m10*m21; + ret -= m20*m11*m02; + ret -= m21*m12*m00; + ret -= m22*m10*m01; + + return ret; +} + +__host__ __device__ cumat3f cumat3f::transpose() +{ + cumat3f ret; + + ret.m00 = m00; + ret.m01 = m10; + ret.m02 = m20; + ret.m10 = m01; + ret.m11 = m11; + ret.m12 = m21; + ret.m20 = m02; + ret.m21 = m12; + ret.m22 = m22; + + return ret; +} + +__host__ __device__ cumat3f cumat3f::inverse() +{ + cumat3f q; + float dt = det(); + if(dt!=0.0) + { + q(0,0) = (at(1,1)*at(2,2)-at(1,2)*at(2,1))/dt; + q(1,0) = -(at(1,0)*at(2,2)-at(1,2)*at(2,0))/dt; + q(2,0) = (at(1,0)*at(2,1)-at(1,1)*at(2,0))/dt; + q(0,1) = -(at(0,1)*at(2,2)-at(0,2)*at(2,1))/dt; + q(1,1) = (at(0,0)*at(2,2)-at(0,2)*at(2,0))/dt; + q(2,1) = -(at(0,0)*at(2,1)-at(0,1)*at(2,0))/dt; + q(0,2) = (at(0,1)*at(1,2)-at(0,2)*at(1,1))/dt; + q(1,2) = -(at(0,0)*at(1,2)-at(0,2)*at(1,0))/dt; + q(2,2) = (at(0,0)*at(1,1)-at(0,1)*at(1,0))/dt; + // q(0,0) = (at(1,1)*at(2,2)-at(1,2)*at(2,1))/dt; + // q(0,1) = -(at(1,0)*at(2,2)-at(1,2)*at(2,0))/dt; + // q(0,2) = (at(1,0)*at(2,1)-at(1,1)*at(2,0))/dt; + // q(1,0) = -(at(0,1)*at(2,2)-at(0,2)*at(2,1))/dt; + // q(1,1) = (at(0,0)*at(2,2)-at(0,2)*at(2,0))/dt; + // q(1,2) = -(at(0,0)*at(2,1)-at(0,1)*at(2,0))/dt; + // q(2,0) = (at(0,1)*at(1,2)-at(0,2)*at(1,1))/dt; + // q(2,1) = -(at(0,0)*at(1,2)-at(0,2)*at(1,0))/dt; + // q(2,2) = (at(0,0)*at(1,1)-at(0,1)*at(1,0))/dt; + // q = q.transpose(); + } + else + { + q(0,0) = inf; + q(0,1) = inf; + q(0,2) = inf; + q(1,0) = inf; + q(1,1) = inf; + q(1,2) = inf; + q(2,0) = inf; + q(2,1) = inf; + q(2,2) = inf; + } + + return q; +} + +__host__ __device__ cumat3f operator-(const cumat3f &rhs) +{ + cumat3f ret; + ret.m00 = -rhs.m00; + ret.m10 = -rhs.m10; + ret.m20 = -rhs.m20; + ret.m01 = -rhs.m01; + ret.m11 = -rhs.m11; + ret.m21 = -rhs.m21; + ret.m02 = -rhs.m02; + ret.m12 = -rhs.m12; + ret.m22 = -rhs.m22; + + return ret; +} + +__host__ __device__ cumat3f& cumat3f::operator+=(const cumat3f &rhs) +{ + m00 += rhs.m00; + m10 += rhs.m10; + m20 += rhs.m20; + m01 += rhs.m01; + m11 += rhs.m11; + m21 += rhs.m21; + m02 += rhs.m02; + m12 += rhs.m12; + m22 += rhs.m22; + + return *this; +} + +__host__ __device__ cumat3f& cumat3f::operator-=(const cumat3f &rhs) +{ + m00 -= rhs.m00; + m10 -= rhs.m10; + m20 -= rhs.m20; + m01 -= rhs.m01; + m11 -= rhs.m11; + m21 -= rhs.m21; + m02 -= rhs.m02; + m12 -= rhs.m12; + m22 -= rhs.m22; + + return *this; +} + + + +__host__ __device__ cumat3f& cumat3f::operator/=(const float &rhs) +{ + m00 /= rhs; + m10 /= rhs; + m20 /= rhs; + m01 /= rhs; + m11 /= rhs; + m21 /= rhs; + m02 /= rhs; + m12 /= rhs; + m22 /= rhs; + + return *this; +} + +__host__ __device__ cumat3f& cumat3f::operator*=(const float &rhs) +{ + m00 *= rhs; + m10 *= rhs; + m20 *= rhs; + m01 *= rhs; + m11 *= rhs; + m21 *= rhs; + m02 *= rhs; + m12 *= rhs; + m22 *= rhs; + + return *this; +} + +__host__ __device__ cumat3f& cumat3f::operator*=(const cumat3f &rhs) +{ + cumat3f tmp; + + tmp.m00 = m00*rhs.m00 + m01*rhs.m10 + m02*rhs.m20; + tmp.m01 = m00*rhs.m01 + m01*rhs.m11 + m02*rhs.m21; + tmp.m02 = m00*rhs.m02 + m01*rhs.m12 + m02*rhs.m22; + tmp.m10 = m10*rhs.m00 + m11*rhs.m10 + m12*rhs.m20; + tmp.m11 = m10*rhs.m01 + m11*rhs.m11 + m12*rhs.m21; + tmp.m12 = m10*rhs.m02 + m11*rhs.m12 + m12*rhs.m22; + tmp.m20 = m20*rhs.m00 + m21*rhs.m10 + m22*rhs.m20; + tmp.m21 = m20*rhs.m01 + m21*rhs.m11 + m22*rhs.m21; + tmp.m22 = m20*rhs.m02 + m21*rhs.m12 + m22*rhs.m22; + + (*this) = tmp; + + return *this; +} + +__host__ __device__ cumat3f::cumat3f( + const float & _m00, const float & _m01, const float & _m02, + const float & _m10, const float & _m11, const float & _m12, + const float & _m20, const float & _m21, const float & _m22 +) +{ + m00 = _m00; + m01 = _m01; + m02 = _m02; + m10 = _m10; + m11 = _m11; + m12 = _m12; + m20 = _m20; + m21 = _m21; + m22 = _m22; +} + +__host__ __device__ float* cumat3f::data() +{ + //pointer to float[9] representation of matrix + return (float*) this; +} + +__host__ __device__ const float* cumat3f::data() const +{ + //pointer to float[9] representation of matrix + return (const float*) this; +} + +//transposes a 3x3 (9 element) matrix +__host__ __device__ void mat3f_transpose(float *mat3inout) +{ + int I,J; + float matint[9]; + for(I=0;I<9;I++) + { + matint[I] = mat3inout[I]; + } + + for(I=0;I<3;I++) + { + for(J=0;J<3;J++) + { + mat3inout[I+J*3] = matint[J+I*3]; + } + } + + return; +} + +//copies src to dest +__host__ __device__ void mat3f_copy(float *mat3f_dest, const float *mat3f_src) +{ + int I; + if(mat3f_dest==NULL || mat3f_src==NULL) + return; + + for(I=0;I<9;I++) + mat3f_dest[I] = mat3f_src[I]; + + return; +} + + +__host__ __device__ float mat3f_det(float *mat3in) +{ + float ret = 0.0; + + ret = ret + mat3in[0+0*3]*mat3in[1+1*3]*mat3in[2+2*3]; + ret = ret + mat3in[0+1*3]*mat3in[1+2*3]*mat3in[2+0*3]; + ret = ret + mat3in[0+2*3]*mat3in[1+0*3]*mat3in[2+1*3]; + ret = ret - mat3in[0+0*3]*mat3in[1+2*3]*mat3in[2+1*3]; + ret = ret - mat3in[0+1*3]*mat3in[1+0*3]*mat3in[2+2*3]; + ret = ret - mat3in[0+2*3]*mat3in[1+1*3]*mat3in[2+0*3]; + + return ret; +} + +//inverts a 3x3 (9 element) matrix +__host__ __device__ void mat3f_inverse(float *mat3inout) +{ + int I; + float matint[9]; + float det = mat3f_det(mat3inout); + + for(I=0;I<9;I++) + { + matint[I] = mat3inout[I]; + } + + mat3inout[0+0*3] = (matint[1+1*3]*matint[2+2*3]-matint[1+2*3]*matint[2+1*3])/det; + mat3inout[0+1*3] = -(matint[1+0*3]*matint[2+2*3]-matint[1+2*3]*matint[2+0*3])/det; + mat3inout[0+2*3] = (matint[1+0*3]*matint[2+1*3]-matint[1+1*3]*matint[2+0*3])/det; + mat3inout[1+0*3] = -(matint[0+1*3]*matint[2+2*3]-matint[0+2*3]*matint[2+1*3])/det; + mat3inout[1+1*3] = (matint[0+0*3]*matint[2+2*3]-matint[0+2*3]*matint[2+0*3])/det; + mat3inout[1+2*3] = -(matint[0+0*3]*matint[2+1*3]-matint[0+1*3]*matint[2+0*3])/det; + mat3inout[2+0*3] = (matint[0+1*3]*matint[1+2*3]-matint[0+2*3]*matint[1+1*3])/det; + mat3inout[2+1*3] = -(matint[0+0*3]*matint[1+2*3]-matint[0+2*3]*matint[1+0*3])/det; + mat3inout[2+2*3] = (matint[0+0*3]*matint[1+1*3]-matint[0+1*3]*matint[1+0*3])/det; + + mat3f_transpose(mat3inout); + + return; +} + +__host__ __device__ cuvect3f mat3f_mult(float *mat3in, const cuvect3f &cvin) +{ + int I,J; + cuvect3f ret; + for(I=0;I<3;I++) + { + ret[I] = 0.0; + for(J=0;J<3;J++) + { + ret[I] = ret[I] + mat3in[I+3*J]*cvin[J]; + } + } + + return ret; +} + +__host__ __device__ void mat3f_mult(float *matina, float *matinb, float *matout) +{ + float wrk[9]; + int I,J,K; + + for(I=0;I<3;I++) + { + for(J=0;J<3;J++) + { + wrk[I+3*J] = 0.0; + } + } + + for(I=0;I<3;I++) + { + for(J=0;J<3;J++) + { + for(K=0;K<3;K++) + { + wrk[I+3*K] = wrk[I+3*K] + matina[I+3*J]*matinb[J+3*K]; + } + } + } + + for(I=0;I<3;I++) + { + for(J=0;J<3;J++) + { + matout[I+3*J] = wrk[I+3*J]; + } + } + + return; +} + +__host__ __device__ void mat3f_hodgedual(const cuvect3f &vecin, float *matout) +{ + matout[0 + 0*3] = 0.0f; + matout[1 + 0*3] = -vecin[2]; + matout[2 + 0*3] = vecin[1]; + + matout[0 + 1*3] = vecin[2]; + matout[1 + 1*3] = 0.0f; + matout[2 + 1*3] = -vecin[0]; + + matout[0 + 2*3] = -vecin[1]; + matout[1 + 2*3] = vecin[0]; + matout[2 + 2*3] = 0.0f; + return; +} + +__host__ __device__ void mat3f_hodgedual(float *matin, cuvect3f &vecout) +{ + vecout[0] = 0.5*(matin[1 + 2*3] - matin[2 + 1*3]); + vecout[1] = 0.5*(matin[2 + 0*3] - matin[0 + 2*3]); + vecout[2] = 0.5*(matin[0 + 1*3] - matin[1 + 0*3]); + + return; +} + +//returns direction cosine rotation matrix from axis and angle +__host__ __device__ void mat3f_rot_from_axisangle(cuvect3f axis, float angle, float *matout) +{ + int I; + float H[9]; + float Hsq[9]; + float II[9]; + + for(I=0;I<9;I++) II[I] = 0.0; + II[0+0*3] = 1.0; + II[1+1*3] = 1.0; + II[2+2*3] = 1.0; + + axis = cuvect3f_normalize(axis); + + mat3f_hodgedual(axis,H); + mat3f_mult(H,H,Hsq); + + for(I=0;I<9;I++) + { + matout[I] = (II[I] + Hsq[I]) + H[I]*sinf(angle) - Hsq[I]*cosf(angle); + } + + return; +} + + + +__host__ void test_cudavectf_logic1() +{ + //3 dim vector and matrix functional tests on host side + + printf("3 dim vector and matrix functional tests on host side\n"); + + cuvect3f a,b,c; + float ma[9],mb[9],mc[9]; + + int I,J; + + for(I=0;I<3;I++) + { + for(J=0;J<3;J++) + { + ma[I+3*J] = ((float) rand())/((float) RAND_MAX); + mb[I+3*J] = ma[I+3*J]; + } + } + + mat3f_inverse(mb); + mat3f_mult(ma,mb,mc); + + for(I=0;I<3;I++) + { + for(J=0;J<3;J++) + { + printf("ma[%d,%d] = %1.3f\n",I,J,ma[I+3*J]); + } + } + for(I=0;I<3;I++) + { + for(J=0;J<3;J++) + { + printf("mb[%d,%d] = %1.3f\n",I,J,mb[I+3*J]); + } + } + for(I=0;I<3;I++) + { + for(J=0;J<3;J++) + { + printf("mc[%d,%d] = %1.3f\n",I,J,mc[I+3*J]); + } + } + + a = cuvect3f(1,1,1); + b = mat3f_mult(ma,a); + b = mat3f_mult(mb,b); + + for(I=0;I<3;I++) + { + printf("a[%d] = %1.3f, b[%d] = %1.3f\n",I,a[I],I,b[I]); + } + + a = cuvect3f(1,0,1); + b = cuvect3f(0,1,-1); + c = a+b; + + for(I=0;I<3;I++) + { + printf("a[%d] = %1.3f, b[%d] = %1.3f, c[%d] = %1.3f\n",I,a[I],I,b[I],I,c[I]); + } + + c = c/2.0; + + for(I=0;I<3;I++) + { + printf("a[%d] = %1.3f, b[%d] = %1.3f, c[%d] = %1.3f\n",I,a[I],I,b[I],I,c[I]); + } + + c = cuvect3f_cross(a,b); + + for(I=0;I<3;I++) + { + printf("a[%d] = %1.3f, b[%d] = %1.3f, c[%d] = %1.3f\n",I,a[I],I,b[I],I,c[I]); + } + + printf("c dot a = %1.3f, c dot b = %1.3f\n",cuvect3f_dot(c,a),cuvect3f_dot(c,b)); + + printf("norm(a)=%1.3f, norm(b)=%1.3f, norm(c)=%1.3f\n",cuvect3f_norm(a),cuvect3f_norm(b),cuvect3f_norm(c)); + a = cuvect3f_normalize(a); + b = cuvect3f_normalize(b); + c = cuvect3f_normalize(c); + + for(I=0;I<3;I++) + { + printf("a[%d] = %1.3f, b[%d] = %1.3f, c[%d] = %1.3f\n",I,a[I],I,b[I],I,c[I]); + } + printf("c dot a = %1.3f, c dot b = %1.3f\n",cuvect3f_dot(c,a),cuvect3f_dot(c,b)); + printf("norm(a)=%1.3f, norm(b)=%1.3f, norm(c)=%1.3f\n",cuvect3f_norm(a),cuvect3f_norm(b),cuvect3f_norm(c)); + + return; +} + +__host__ __device__ cumat3f hodge_dual(const cuvect3f &vin) +{ + cumat3f ret; + + ret.m00 = 0.0f; + ret.m11 = 0.0f; + ret.m22 = 0.0f; + + ret.m01 = vin.z; + ret.m12 = vin.x; + ret.m20 = vin.y; + + ret.m10 = -vin.z; + ret.m21 = -vin.x; + ret.m02 = -vin.y; + + return ret; +} + +__host__ __device__ cuvect3f hodge_dual(const cumat3f &min) +{ + cuvect3f ret; + + ret.x = 0.5f*(min.m12 - min.m21); + ret.y = 0.5f*(min.m20 - min.m02); + ret.z = 0.5f*(min.m01 - min.m10); + + return ret; +} + +__host__ __device__ const cumat3f cumat3f_eye() +{ + cumat3f ret; + ret.m00 = 1.0f; + ret.m11 = 1.0f; + ret.m22 = 1.0f; + + return ret; +} + +__host__ __device__ const cumat3f cumat3f_zeros() +{ + cumat3f ret; + return ret; +} + +__host__ __device__ cumat3f rotmat_from_axisangle(const cuvect3f &axis, const float &angle) +{ + cumat3f ret = cumat3f_zeros(); + cumat3f H; + cuvect3f _naxis; + + _naxis = cuvect3f_normalize(axis); + H = hodge_dual(_naxis); + + ret += H*sinf(angle); + H = H*H; + ret -= H*cosf(angle); + ret += (H + cumat3f_eye()); + + return ret; +} + + + +}; \ No newline at end of file diff --git a/old/9apr26_prerefactor/src/amsculib2/cuvect4.cu b/old/9apr26_prerefactor/src/amsculib2/cuvect4.cu new file mode 100644 index 0000000..f8f4aff --- /dev/null +++ b/old/9apr26_prerefactor/src/amsculib2/cuvect4.cu @@ -0,0 +1,432 @@ +#include + +namespace amscuda +{ + +__host__ __device__ cuvect4::cuvect4() +{ + x = 0.0; y = 0.0; z = 0.0; w = 0.0; + return; +} + +__host__ __device__ cuvect4::~cuvect4() +{ + x = 0.0; y = 0.0; z = 0.0; w = 0.0; + return; +} + +__host__ __device__ cuvect4::cuvect4(double _x, double _y, double _z, double _w) +{ + x = _x; y = _y; z = _z; w = _w; + return; +} + +__host__ __device__ double& cuvect4::operator[](const int I) +{ + if(I==0) return x; + else if(I==1) return y; + else if(I==2) return z; + else if(I==3) return w; + return x; +} + +__host__ __device__ const double& cuvect4::operator[](const int I) const +{ + if(I==0) return x; + else if(I==1) return y; + else if(I==2) return z; + else if(I==3) return w; + return x; +} + +__host__ __device__ cuvect4 cuvect4::operator+(cuvect4 lhs) +{ + cuvect4 ret; + ret.x = this->x + lhs.x; + ret.y = this->y + lhs.y; + ret.z = this->z + lhs.z; + ret.w = this->w + lhs.w; + return ret; +} + +__host__ __device__ cuvect4 cuvect4::operator-(cuvect4 lhs) +{ + cuvect4 ret; + ret.x = this->x - lhs.x; + ret.y = this->y - lhs.y; + ret.z = this->z - lhs.z; + ret.w = this->w - lhs.w; + return ret; +} + +__host__ __device__ cuvect4 cuvect4::operator*(double lhs) +{ + cuvect4 ret; + ret.x = this->x*lhs; + ret.y = this->y*lhs; + ret.z = this->z*lhs; + ret.w = this->w*lhs; + return ret; +} + +__host__ __device__ cuvect4 cuvect4::operator/(double lhs) +{ + cuvect4 ret; + ret.x = this->x/lhs; + ret.y = this->y/lhs; + ret.z = this->z/lhs; + ret.w = this->w/lhs; + return ret; +} + +__host__ __device__ cumat4::cumat4() +{ + int I; + for(I=0;I<16;I++) + { + dat[I] = 0.0; + } + return; +} + +__host__ __device__ cumat4::~cumat4() +{ + int I; + for(I=0;I<16;I++) + { + dat[I] = 0.0; + } + return; +} + +__host__ __device__ double& cumat4::operator[](const int I) +{ + return dat[I]; +} + +__host__ __device__ double& cumat4::operator()(const int I, const int J) +{ + return dat[I+4*J]; +} + +__host__ __device__ double& cumat4::at(const int I, const int J) +{ + return dat[I+4*J]; +} + +__host__ __device__ cumat4 cumat4::operator+(cumat4 lhs) +{ + cumat4 ret; + int I; + for(I=0;I<16;I++) + { + ret.dat[I] = this->dat[I] + lhs.dat[I]; + } + return ret; +} + +__host__ __device__ cumat4 cumat4::operator-(cumat4 lhs) +{ + cumat4 ret; + int I; + for(I=0;I<16;I++) + { + ret.dat[I] = this->dat[I] - lhs.dat[I]; + } + return ret; +} + +__host__ __device__ cumat4 cumat4::operator*(double lhs) +{ + cumat4 ret; + int I; + for(I=0;I<16;I++) + { + ret.dat[I] = this->dat[I]*lhs; + } + return ret; +} + +__host__ __device__ cumat4 cumat4::operator/(double lhs) +{ + cumat4 ret; + int I; + for(I=0;I<16;I++) + { + ret.dat[I] = this->dat[I]/lhs; + } + return ret; +} + +__host__ __device__ cuvect4 cumat4::operator*(cuvect4 lhs) +{ + cuvect4 ret = cuvect4(0.0,0.0,0.0,0.0); + int I,J; + + for(I=0;I<4;I++) + { + for(J=0;J<4;J++) + { + ret[I] = ret[I] + this->at(I,J)*lhs[J]; + } + } + + return ret; +} + +__host__ __device__ cumat4 cumat4::operator*(cumat4 lhs) +{ + cumat4 ret; + int I,J,K; + for(I=0;I<4;I++) + { + for(J=0;J<4;J++) + { + ret(I,J) = 0; + for(K=0;K<4;K++) + { + ret(I,J) = ret(I,J) + this->at(I,K) * lhs(K,J); + } + } + } + return ret; +} + +__host__ __device__ cumat4 cumat4::transpose() +{ + cumat4 q; + int I,J; + for(I=0;I<4;I++) + { + for(J=0;J<4;J++) + { + q(I,J) = this->at(J,I); + } + } + return q; +} + +__host__ __device__ double cumat4::det() +{ + double a00,a01,a02,a03; + double a10,a11,a12,a13; + double a20,a21,a22,a23; + double a30,a31,a32,a33; + double det; + + a00 = this->at(0,0); + a01 = this->at(0,1); + a02 = this->at(0,2); + a03 = this->at(0,3); + a10 = this->at(1,0); + a11 = this->at(1,1); + a12 = this->at(1,2); + a13 = this->at(1,3); + a20 = this->at(2,0); + a21 = this->at(2,1); + a22 = this->at(2,2); + a23 = this->at(2,3); + a30 = this->at(3,0); + a31 = this->at(3,1); + a32 = this->at(3,2); + a33 = this->at(3,3); + + det = a03*a12*a21*a30 - + a02*a13*a21*a30 - + a03*a11*a22*a30 + + a01*a13*a22*a30 + + a02*a11*a23*a30 - + a01*a12*a23*a30 - + a03*a12*a20*a31 + + a02*a13*a20*a31 + + a03*a10*a22*a31 - + a00*a13*a22*a31 - + a02*a10*a23*a31 + + a00*a12*a23*a31 + + a03*a11*a20*a32 - + a01*a13*a20*a32 - + a03*a10*a21*a32 + + a00*a13*a21*a32 + + a01*a10*a23*a32 - + a00*a11*a23*a32 - + a02*a11*a20*a33 + + a01*a12*a20*a33 + + a02*a10*a21*a33 - + a00*a12*a21*a33 - + a01*a10*a22*a33 + + a00*a11*a22*a33; + + return det; +} + +__host__ __device__ cumat4 minverse(cumat4 ma) +{ + cumat4 mb; + + double a00,a01,a02,a03; + double a10,a11,a12,a13; + double a20,a21,a22,a23; + double a30,a31,a32,a33; + + double b00,b01,b02,b03; + double b10,b11,b12,b13; + double b20,b21,b22,b23; + double b30,b31,b32,b33; + + double det = 0.0; + + a00 = ma.at(0,0); + a01 = ma.at(0,1); + a02 = ma.at(0,2); + a03 = ma.at(0,3); + a10 = ma.at(1,0); + a11 = ma.at(1,1); + a12 = ma.at(1,2); + a13 = ma.at(1,3); + a20 = ma.at(2,0); + a21 = ma.at(2,1); + a22 = ma.at(2,2); + a23 = ma.at(2,3); + a30 = ma.at(3,0); + a31 = ma.at(3,1); + a32 = ma.at(3,2); + a33 = ma.at(3,3); + + det = a03*a12*a21*a30 - + a02*a13*a21*a30 - + a03*a11*a22*a30 + + a01*a13*a22*a30 + + a02*a11*a23*a30 - + a01*a12*a23*a30 - + a03*a12*a20*a31 + + a02*a13*a20*a31 + + a03*a10*a22*a31 - + a00*a13*a22*a31 - + a02*a10*a23*a31 + + a00*a12*a23*a31 + + a03*a11*a20*a32 - + a01*a13*a20*a32 - + a03*a10*a21*a32 + + a00*a13*a21*a32 + + a01*a10*a23*a32 - + a00*a11*a23*a32 - + a02*a11*a20*a33 + + a01*a12*a20*a33 + + a02*a10*a21*a33 - + a00*a12*a21*a33 - + a01*a10*a22*a33 + + a00*a11*a22*a33; + + if(det*det>1.0E-30) + { + b00 = -a13*a22*a31 + a12*a23*a31 + a13*a21*a32 - a11*a23*a32 - a12*a21*a33 + a11*a22*a33; + b01 = a03*a22*a31 - a02*a23*a31 - a03*a21*a32 + a01*a23*a32 + a02*a21*a33 - a01*a22*a33; + b02 = -a03*a12*a31 + a02*a13*a31 + a03*a11*a32 - a01*a13*a32 - a02*a11*a33 + a01*a12*a33; + b03 = a03*a12*a21 - a02*a13*a21 - a03*a11*a22 + a01*a13*a22 + a02*a11*a23 - a01*a12*a23; + b10 = a13*a22*a30 - a12*a23*a30 - a13*a20*a32 + a10*a23*a32 + a12*a20*a33 - a10*a22*a33; + b11 = -a03*a22*a30 + a02*a23*a30 + a03*a20*a32 - a00*a23*a32 - a02*a20*a33 + a00*a22*a33; + b12 = a03*a12*a30 - a02*a13*a30 - a03*a10*a32 + a00*a13*a32 + a02*a10*a33 - a00*a12*a33; + b13 = -a03*a12*a20 + a02*a13*a20 + a03*a10*a22 - a00*a13*a22 - a02*a10*a23 + a00*a12*a23; + b20 = -a13*a21*a30 + a11*a23*a30 + a13*a20*a31 - a10*a23*a31 - a11*a20*a33 + a10*a21*a33; + b21 = a03*a21*a30 - a01*a23*a30 - a03*a20*a31 + a00*a23*a31 + a01*a20*a33 - a00*a21*a33; + b22 = -a03*a11*a30 + a01*a13*a30 + a03*a10*a31 - a00*a13*a31 - a01*a10*a33 + a00*a11*a33; + b23 = a03*a11*a20 - a01*a13*a20 - a03*a10*a21 + a00*a13*a21 + a01*a10*a23 - a00*a11*a23; + b30 = a12*a21*a30 - a11*a22*a30 - a12*a20*a31 + a10*a22*a31 + a11*a20*a32 - a10*a21*a32; + b31 = -a02*a21*a30 + a01*a22*a30 + a02*a20*a31 - a00*a22*a31 - a01*a20*a32 + a00*a21*a32; + b32 = a02*a11*a30 - a01*a12*a30 - a02*a10*a31 + a00*a12*a31 + a01*a10*a32 - a00*a11*a32; + b33 = -a02*a11*a20 + a01*a12*a20 + a02*a10*a21 - a00*a12*a21 - a01*a10*a22 + a00*a11*a22; + b00 = b00/det; + b01 = b01/det; + b02 = b02/det; + b03 = b03/det; + b10 = b10/det; + b11 = b11/det; + b12 = b12/det; + b13 = b13/det; + b20 = b20/det; + b21 = b21/det; + b22 = b22/det; + b23 = b23/det; + b30 = b30/det; + b31 = b31/det; + b32 = b32/det; + b33 = b33/det; + mb.at(0,0) = b00; + mb.at(0,1) = b01; + mb.at(0,2) = b02; + mb.at(0,3) = b03; + mb.at(1,0) = b10; + mb.at(1,1) = b11; + mb.at(1,2) = b12; + mb.at(1,3) = b13; + mb.at(2,0) = b20; + mb.at(2,1) = b21; + mb.at(2,2) = b22; + mb.at(2,3) = b23; + mb.at(3,0) = b30; + mb.at(3,1) = b31; + mb.at(3,2) = b32; + mb.at(3,3) = b33; + } + //this was STUPID. Gaah. Computer algebra system saves the day? I'd be surprised if this didn't end up *slower* than gaussian elimination. Don't do this again! + return mb; +} + +__host__ __device__ cumat4 cumat4::inverse() +{ + return minverse(*this); +} + + +__host__ __device__ double cuvect4_dot(cuvect4 a, cuvect4 b) +{ + double ret = 0.0; + ret = a.x*b.x + a.y*b.y + a.z*b.z + a.w*b.w; + return ret; +} + +__host__ __device__ double cuvect4_norm(cuvect4 a) +{ + double ret = 0.0; + ret = ::sqrt(cuvect4_dot(a,a)); + return ret; +} + +__host__ __device__ cuvect4 cuvect4_normalize(cuvect4 a) +{ + cuvect4 ret = cuvect4(0.0f,0.0f,0.0f,0.0f); + double nrm = cuvect4_norm(a); + if(nrm>0.0) + ret = a/nrm; + return ret; +} + +__host__ __device__ cuvect4 cuvect4_proj(cuvect4 a, cuvect4 b) +{ + cuvect4 ret; + cuvect4 bn = cuvect4_normalize(b); + double d = cuvect4_dot(a,bn); + ret = bn*d; + return ret; +} + +__host__ __device__ cuvect4 operator-(cuvect4 rhs) +{ + cuvect4 ret; + ret[0] = -rhs[0]; + ret[1] = -rhs[1]; + ret[2] = -rhs[2]; + ret[3] = -rhs[3]; + 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/old/9apr26_prerefactor/src/amsculib2/cuvect4f.cu b/old/9apr26_prerefactor/src/amsculib2/cuvect4f.cu new file mode 100644 index 0000000..3718341 --- /dev/null +++ b/old/9apr26_prerefactor/src/amsculib2/cuvect4f.cu @@ -0,0 +1,435 @@ +#include + +namespace amscuda +{ + +//////////// +//cuvect4ff// +//////////// + +__host__ __device__ cuvect4f::cuvect4f() +{ + x = 0.0; y = 0.0; z = 0.0; w = 0.0; + return; +} + +__host__ __device__ cuvect4f::~cuvect4f() +{ + x = 0.0; y = 0.0; z = 0.0; w = 0.0; + return; +} + +__host__ __device__ cuvect4f::cuvect4f(float _x, float _y, float _z, float _w) +{ + x = _x; y = _y; z = _z; w = _w; + return; +} + +__host__ __device__ float& cuvect4f::operator[](const int I) +{ + if(I==0) return x; + else if(I==1) return y; + else if(I==2) return z; + else if(I==3) return w; + return x; +} + +__host__ __device__ const float& cuvect4f::operator[](const int I) const +{ + if(I==0) return x; + else if(I==1) return y; + else if(I==2) return z; + else if(I==3) return w; + return x; +} + +__host__ __device__ cuvect4f cuvect4f::operator+(cuvect4f lhs) +{ + cuvect4f ret; + ret.x = this->x + lhs.x; + ret.y = this->y + lhs.y; + ret.z = this->z + lhs.z; + ret.w = this->w + lhs.w; + return ret; +} + +__host__ __device__ cuvect4f cuvect4f::operator-(cuvect4f lhs) +{ + cuvect4f ret; + ret.x = this->x - lhs.x; + ret.y = this->y - lhs.y; + ret.z = this->z - lhs.z; + ret.w = this->w - lhs.w; + return ret; +} + +__host__ __device__ cuvect4f cuvect4f::operator*(float lhs) +{ + cuvect4f ret; + ret.x = this->x*lhs; + ret.y = this->y*lhs; + ret.z = this->z*lhs; + ret.w = this->w*lhs; + return ret; +} + +__host__ __device__ cuvect4f cuvect4f::operator/(float lhs) +{ + cuvect4f ret; + ret.x = this->x/lhs; + ret.y = this->y/lhs; + ret.z = this->z/lhs; + ret.w = this->w/lhs; + return ret; +} + +__host__ __device__ cumat4f::cumat4f() +{ + int I; + for(I=0;I<16;I++) + { + dat[I] = 0.0; + } + return; +} + +__host__ __device__ cumat4f::~cumat4f() +{ + int I; + for(I=0;I<16;I++) + { + dat[I] = 0.0; + } + return; +} + +__host__ __device__ float& cumat4f::operator[](const int I) +{ + return dat[I]; +} + +__host__ __device__ float& cumat4f::operator()(const int I, const int J) +{ + return dat[I+4*J]; +} + +__host__ __device__ float& cumat4f::at(const int I, const int J) +{ + return dat[I+4*J]; +} + +__host__ __device__ cumat4f cumat4f::operator+(cumat4f lhs) +{ + cumat4f ret; + int I; + for(I=0;I<16;I++) + { + ret.dat[I] = this->dat[I] + lhs.dat[I]; + } + return ret; +} + +__host__ __device__ cumat4f cumat4f::operator-(cumat4f lhs) +{ + cumat4f ret; + int I; + for(I=0;I<16;I++) + { + ret.dat[I] = this->dat[I] - lhs.dat[I]; + } + return ret; +} + +__host__ __device__ cumat4f cumat4f::operator*(float lhs) +{ + cumat4f ret; + int I; + for(I=0;I<16;I++) + { + ret.dat[I] = this->dat[I]*lhs; + } + return ret; +} + +__host__ __device__ cumat4f cumat4f::operator/(float lhs) +{ + cumat4f ret; + int I; + for(I=0;I<16;I++) + { + ret.dat[I] = this->dat[I]/lhs; + } + return ret; +} + +__host__ __device__ cuvect4f cumat4f::operator*(cuvect4f lhs) +{ + cuvect4f ret = cuvect4f(0.0,0.0,0.0,0.0); + int I,J; + + for(I=0;I<4;I++) + { + for(J=0;J<4;J++) + { + ret[I] = ret[I] + this->at(I,J)*lhs[J]; + } + } + + return ret; +} + +__host__ __device__ cumat4f cumat4f::operator*(cumat4f lhs) +{ + cumat4f ret; + int I,J,K; + for(I=0;I<4;I++) + { + for(J=0;J<4;J++) + { + ret(I,J) = 0; + for(K=0;K<4;K++) + { + ret(I,J) = ret(I,J) + this->at(I,K) * lhs(K,J); + } + } + } + return ret; +} + +__host__ __device__ cumat4f cumat4f::transpose() +{ + cumat4f q; + int I,J; + for(I=0;I<4;I++) + { + for(J=0;J<4;J++) + { + q(I,J) = this->at(J,I); + } + } + return q; +} + +__host__ __device__ float cumat4f::det() +{ + float a00,a01,a02,a03; + float a10,a11,a12,a13; + float a20,a21,a22,a23; + float a30,a31,a32,a33; + float det; + + a00 = this->at(0,0); + a01 = this->at(0,1); + a02 = this->at(0,2); + a03 = this->at(0,3); + a10 = this->at(1,0); + a11 = this->at(1,1); + a12 = this->at(1,2); + a13 = this->at(1,3); + a20 = this->at(2,0); + a21 = this->at(2,1); + a22 = this->at(2,2); + a23 = this->at(2,3); + a30 = this->at(3,0); + a31 = this->at(3,1); + a32 = this->at(3,2); + a33 = this->at(3,3); + + det = a03*a12*a21*a30 - + a02*a13*a21*a30 - + a03*a11*a22*a30 + + a01*a13*a22*a30 + + a02*a11*a23*a30 - + a01*a12*a23*a30 - + a03*a12*a20*a31 + + a02*a13*a20*a31 + + a03*a10*a22*a31 - + a00*a13*a22*a31 - + a02*a10*a23*a31 + + a00*a12*a23*a31 + + a03*a11*a20*a32 - + a01*a13*a20*a32 - + a03*a10*a21*a32 + + a00*a13*a21*a32 + + a01*a10*a23*a32 - + a00*a11*a23*a32 - + a02*a11*a20*a33 + + a01*a12*a20*a33 + + a02*a10*a21*a33 - + a00*a12*a21*a33 - + a01*a10*a22*a33 + + a00*a11*a22*a33; + + return det; +} + +__host__ __device__ cumat4f minverse(cumat4f ma) +{ + cumat4f mb; + + float a00,a01,a02,a03; + float a10,a11,a12,a13; + float a20,a21,a22,a23; + float a30,a31,a32,a33; + + float b00,b01,b02,b03; + float b10,b11,b12,b13; + float b20,b21,b22,b23; + float b30,b31,b32,b33; + + float det = 0.0; + + a00 = ma.at(0,0); + a01 = ma.at(0,1); + a02 = ma.at(0,2); + a03 = ma.at(0,3); + a10 = ma.at(1,0); + a11 = ma.at(1,1); + a12 = ma.at(1,2); + a13 = ma.at(1,3); + a20 = ma.at(2,0); + a21 = ma.at(2,1); + a22 = ma.at(2,2); + a23 = ma.at(2,3); + a30 = ma.at(3,0); + a31 = ma.at(3,1); + a32 = ma.at(3,2); + a33 = ma.at(3,3); + + det = a03*a12*a21*a30 - + a02*a13*a21*a30 - + a03*a11*a22*a30 + + a01*a13*a22*a30 + + a02*a11*a23*a30 - + a01*a12*a23*a30 - + a03*a12*a20*a31 + + a02*a13*a20*a31 + + a03*a10*a22*a31 - + a00*a13*a22*a31 - + a02*a10*a23*a31 + + a00*a12*a23*a31 + + a03*a11*a20*a32 - + a01*a13*a20*a32 - + a03*a10*a21*a32 + + a00*a13*a21*a32 + + a01*a10*a23*a32 - + a00*a11*a23*a32 - + a02*a11*a20*a33 + + a01*a12*a20*a33 + + a02*a10*a21*a33 - + a00*a12*a21*a33 - + a01*a10*a22*a33 + + a00*a11*a22*a33; + + if(det*det>1.0E-30) + { + b00 = -a13*a22*a31 + a12*a23*a31 + a13*a21*a32 - a11*a23*a32 - a12*a21*a33 + a11*a22*a33; + b01 = a03*a22*a31 - a02*a23*a31 - a03*a21*a32 + a01*a23*a32 + a02*a21*a33 - a01*a22*a33; + b02 = -a03*a12*a31 + a02*a13*a31 + a03*a11*a32 - a01*a13*a32 - a02*a11*a33 + a01*a12*a33; + b03 = a03*a12*a21 - a02*a13*a21 - a03*a11*a22 + a01*a13*a22 + a02*a11*a23 - a01*a12*a23; + b10 = a13*a22*a30 - a12*a23*a30 - a13*a20*a32 + a10*a23*a32 + a12*a20*a33 - a10*a22*a33; + b11 = -a03*a22*a30 + a02*a23*a30 + a03*a20*a32 - a00*a23*a32 - a02*a20*a33 + a00*a22*a33; + b12 = a03*a12*a30 - a02*a13*a30 - a03*a10*a32 + a00*a13*a32 + a02*a10*a33 - a00*a12*a33; + b13 = -a03*a12*a20 + a02*a13*a20 + a03*a10*a22 - a00*a13*a22 - a02*a10*a23 + a00*a12*a23; + b20 = -a13*a21*a30 + a11*a23*a30 + a13*a20*a31 - a10*a23*a31 - a11*a20*a33 + a10*a21*a33; + b21 = a03*a21*a30 - a01*a23*a30 - a03*a20*a31 + a00*a23*a31 + a01*a20*a33 - a00*a21*a33; + b22 = -a03*a11*a30 + a01*a13*a30 + a03*a10*a31 - a00*a13*a31 - a01*a10*a33 + a00*a11*a33; + b23 = a03*a11*a20 - a01*a13*a20 - a03*a10*a21 + a00*a13*a21 + a01*a10*a23 - a00*a11*a23; + b30 = a12*a21*a30 - a11*a22*a30 - a12*a20*a31 + a10*a22*a31 + a11*a20*a32 - a10*a21*a32; + b31 = -a02*a21*a30 + a01*a22*a30 + a02*a20*a31 - a00*a22*a31 - a01*a20*a32 + a00*a21*a32; + b32 = a02*a11*a30 - a01*a12*a30 - a02*a10*a31 + a00*a12*a31 + a01*a10*a32 - a00*a11*a32; + b33 = -a02*a11*a20 + a01*a12*a20 + a02*a10*a21 - a00*a12*a21 - a01*a10*a22 + a00*a11*a22; + b00 = b00/det; + b01 = b01/det; + b02 = b02/det; + b03 = b03/det; + b10 = b10/det; + b11 = b11/det; + b12 = b12/det; + b13 = b13/det; + b20 = b20/det; + b21 = b21/det; + b22 = b22/det; + b23 = b23/det; + b30 = b30/det; + b31 = b31/det; + b32 = b32/det; + b33 = b33/det; + mb.at(0,0) = b00; + mb.at(0,1) = b01; + mb.at(0,2) = b02; + mb.at(0,3) = b03; + mb.at(1,0) = b10; + mb.at(1,1) = b11; + mb.at(1,2) = b12; + mb.at(1,3) = b13; + mb.at(2,0) = b20; + mb.at(2,1) = b21; + mb.at(2,2) = b22; + mb.at(2,3) = b23; + mb.at(3,0) = b30; + mb.at(3,1) = b31; + mb.at(3,2) = b32; + mb.at(3,3) = b33; + } + //this was STUPID. Gaah. Computer algebra system saves the day? I'd be surprised if this didn't end up *slower* than gaussian elimination. Don't do this again! + return mb; +} + +__host__ __device__ cumat4f cumat4f::inverse() +{ + return minverse(*this); +} + + +__host__ __device__ float cuvect4f_dot(cuvect4f a, cuvect4f b) +{ + float ret = 0.0; + ret = a.x*b.x + a.y*b.y + a.z*b.z + a.w*b.w; + return ret; +} + +__host__ __device__ float cuvect4f_norm(cuvect4f a) +{ + float ret = 0.0; + ret = ::sqrtf(cuvect4f_dot(a,a)); + return ret; +} + +__host__ __device__ cuvect4f cuvect4f_normalize(cuvect4f a) +{ + cuvect4f ret = cuvect4f(0.0f,0.0f,0.0f,0.0f); + float nrm = cuvect4f_norm(a); + if(nrm>0.0) + ret = a/nrm; + return ret; +} + +__host__ __device__ cuvect4f cuvect4f_proj(cuvect4f a, cuvect4f b) +{ + cuvect4f ret; + cuvect4f bn = cuvect4f_normalize(b); + float d = cuvect4f_dot(a,bn); + ret = bn*d; + return ret; +} + +__host__ __device__ cuvect4f operator-(cuvect4f rhs) +{ + cuvect4f ret; + ret[0] = -rhs[0]; + ret[1] = -rhs[1]; + ret[2] = -rhs[2]; + ret[3] = -rhs[3]; + 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 diff --git a/old/9apr26_prerefactor/src/main.cu b/old/9apr26_prerefactor/src/main.cu new file mode 100644 index 0000000..6bfd347 --- /dev/null +++ b/old/9apr26_prerefactor/src/main.cu @@ -0,0 +1,27 @@ +#include + +//using namespace ams; +using namespace amscuda; + +int main(int argc, char* argv[]) +{ + printf("AMSCULIB2: Cuda Library Tests.\n"); + + //test_amscuarray_1(); + //test_amscumath1(); + + //cmp::test_cucomp64_1(); + //cmp::test_cucomp128_1(); + + //test_amscuarray_2(); + + //test_dprg64(); + //printf("\n"); + //test_dprg32(); + + //test_dbuff_rand_dpr32(); + + //test_amscurarray1(); + + return 0; +} \ No newline at end of file diff --git a/old/bin_linux64/libamsculib2.linux64.a b/old/feb2026/bin_linux64/libamsculib2.linux64.a similarity index 100% rename from old/bin_linux64/libamsculib2.linux64.a rename to old/feb2026/bin_linux64/libamsculib2.linux64.a diff --git a/old/bin_linux64/test b/old/feb2026/bin_linux64/test similarity index 100% rename from old/bin_linux64/test rename to old/feb2026/bin_linux64/test diff --git a/old/bin_winx64/libamsculib2.msvc64.lib b/old/feb2026/bin_winx64/libamsculib2.msvc64.lib similarity index 100% rename from old/bin_winx64/libamsculib2.msvc64.lib rename to old/feb2026/bin_winx64/libamsculib2.msvc64.lib diff --git a/old/bin_winx64/test.exe b/old/feb2026/bin_winx64/test.exe similarity index 100% rename from old/bin_winx64/test.exe rename to old/feb2026/bin_winx64/test.exe diff --git a/old/bin_winx64/test.exp b/old/feb2026/bin_winx64/test.exp similarity index 100% rename from old/bin_winx64/test.exp rename to old/feb2026/bin_winx64/test.exp diff --git a/old/bin_winx64/test.lib b/old/feb2026/bin_winx64/test.lib similarity index 100% rename from old/bin_winx64/test.lib rename to old/feb2026/bin_winx64/test.lib diff --git a/old/compscripts/__pycache__/complib2.cpython-310.pyc b/old/feb2026/compscripts/__pycache__/complib2.cpython-310.pyc similarity index 100% rename from old/compscripts/__pycache__/complib2.cpython-310.pyc rename to old/feb2026/compscripts/__pycache__/complib2.cpython-310.pyc diff --git a/old/compscripts/__pycache__/complib2.cpython-312.pyc b/old/feb2026/compscripts/__pycache__/complib2.cpython-312.pyc similarity index 100% rename from old/compscripts/__pycache__/complib2.cpython-312.pyc rename to old/feb2026/compscripts/__pycache__/complib2.cpython-312.pyc diff --git a/old/compscripts/__pycache__/complib2.cpython-36.pyc b/old/feb2026/compscripts/__pycache__/complib2.cpython-36.pyc similarity index 100% rename from old/compscripts/__pycache__/complib2.cpython-36.pyc rename to old/feb2026/compscripts/__pycache__/complib2.cpython-36.pyc diff --git a/old/compscripts/__pycache__/complib2.cpython-38.pyc b/old/feb2026/compscripts/__pycache__/complib2.cpython-38.pyc similarity index 100% rename from old/compscripts/__pycache__/complib2.cpython-38.pyc rename to old/feb2026/compscripts/__pycache__/complib2.cpython-38.pyc diff --git a/old/compscripts/__pycache__/complib2.cpython-39.pyc b/old/feb2026/compscripts/__pycache__/complib2.cpython-39.pyc similarity index 100% rename from old/compscripts/__pycache__/complib2.cpython-39.pyc rename to old/feb2026/compscripts/__pycache__/complib2.cpython-39.pyc diff --git a/old/compscripts/__pycache__/complib3.cpython-310.pyc b/old/feb2026/compscripts/__pycache__/complib3.cpython-310.pyc similarity index 100% rename from old/compscripts/__pycache__/complib3.cpython-310.pyc rename to old/feb2026/compscripts/__pycache__/complib3.cpython-310.pyc diff --git a/old/compscripts/__pycache__/complib3.cpython-312.pyc b/old/feb2026/compscripts/__pycache__/complib3.cpython-312.pyc similarity index 100% rename from old/compscripts/__pycache__/complib3.cpython-312.pyc rename to old/feb2026/compscripts/__pycache__/complib3.cpython-312.pyc diff --git a/old/compscripts/__pycache__/complib3.cpython-39.pyc b/old/feb2026/compscripts/__pycache__/complib3.cpython-39.pyc similarity index 100% rename from old/compscripts/__pycache__/complib3.cpython-39.pyc rename to old/feb2026/compscripts/__pycache__/complib3.cpython-39.pyc diff --git a/old/compscripts/complib2.py b/old/feb2026/compscripts/complib2.py similarity index 100% rename from old/compscripts/complib2.py rename to old/feb2026/compscripts/complib2.py diff --git a/old/compscripts/complib3.py b/old/feb2026/compscripts/complib3.py similarity index 100% rename from old/compscripts/complib3.py rename to old/feb2026/compscripts/complib3.py diff --git a/old/compscripts/linux64.makelib.py b/old/feb2026/compscripts/linux64.makelib.py similarity index 100% rename from old/compscripts/linux64.makelib.py rename to old/feb2026/compscripts/linux64.makelib.py diff --git a/old/compscripts/linux64.maketest.py b/old/feb2026/compscripts/linux64.maketest.py similarity index 100% rename from old/compscripts/linux64.maketest.py rename to old/feb2026/compscripts/linux64.maketest.py diff --git a/old/compscripts/old/complib2.py b/old/feb2026/compscripts/old/complib2.py similarity index 100% rename from old/compscripts/old/complib2.py rename to old/feb2026/compscripts/old/complib2.py diff --git a/old/compscripts/old/linux64.makelib.py b/old/feb2026/compscripts/old/linux64.makelib.py similarity index 100% rename from old/compscripts/old/linux64.makelib.py rename to old/feb2026/compscripts/old/linux64.makelib.py diff --git a/old/compscripts/old/linux64.maketest.py b/old/feb2026/compscripts/old/linux64.maketest.py similarity index 100% rename from old/compscripts/old/linux64.maketest.py rename to old/feb2026/compscripts/old/linux64.maketest.py diff --git a/old/compscripts/old/msvc.makelib.py b/old/feb2026/compscripts/old/msvc.makelib.py similarity index 100% rename from old/compscripts/old/msvc.makelib.py rename to old/feb2026/compscripts/old/msvc.makelib.py diff --git a/old/compscripts/old/msvc.maketest.py b/old/feb2026/compscripts/old/msvc.maketest.py similarity index 100% rename from old/compscripts/old/msvc.maketest.py rename to old/feb2026/compscripts/old/msvc.maketest.py diff --git a/old/compscripts/old/winnvcc.makelib.py b/old/feb2026/compscripts/old/winnvcc.makelib.py similarity index 100% rename from old/compscripts/old/winnvcc.makelib.py rename to old/feb2026/compscripts/old/winnvcc.makelib.py diff --git a/old/compscripts/old/winnvcc.maketest.py b/old/feb2026/compscripts/old/winnvcc.maketest.py similarity index 100% rename from old/compscripts/old/winnvcc.maketest.py rename to old/feb2026/compscripts/old/winnvcc.maketest.py diff --git a/old/compscripts/winnvcc.makelib.py b/old/feb2026/compscripts/winnvcc.makelib.py similarity index 100% rename from old/compscripts/winnvcc.makelib.py rename to old/feb2026/compscripts/winnvcc.makelib.py diff --git a/old/compscripts/winnvcc.maketest.py b/old/feb2026/compscripts/winnvcc.maketest.py similarity index 100% rename from old/compscripts/winnvcc.maketest.py rename to old/feb2026/compscripts/winnvcc.maketest.py diff --git a/old/run.py b/old/feb2026/run.py similarity index 100% rename from old/run.py rename to old/feb2026/run.py diff --git a/old/run3.py b/old/feb2026/run3.py similarity index 100% rename from old/run3.py rename to old/feb2026/run3.py diff --git a/src/amsculib2/amscumath.cu b/src/amsculib2/amscumath.cu index e082fff..1ed1442 100644 --- a/src/amsculib2/amscumath.cu +++ b/src/amsculib2/amscumath.cu @@ -3,214 +3,223 @@ namespace amscuda { - __host__ __device__ double dabs(double x) + __host__ __device__ double dabs(const double &x) { + double ret = x; if(x<0.0) { - x = -x; + ret = -x; } - return x; + return ret; } - __host__ __device__ float fabs(float x) + __host__ __device__ float fabs(const float &x) { + float ret = x; if(x<0.0f) { - x = -x; + ret = -x; } - return x; + return ret; } - __host__ __device__ double mod(double x, double md) - { - x = fmod(x,md); - if(x<0.0) - { - x = x + md; - } - return x; - } - - __host__ __device__ float mod(float x, float md) - { - x = fmodf(x,md); - if(x<0.0f) - { - x = x + md; - } - return x; - } - - __host__ __device__ int mod(int x, int n) - { - x = x % n; - if(x<0) - { - x = x + n; - } - return x; - } - - __host__ __device__ long mod(long x, long n) - { - x = x % n; - if(x<0) - { - x = x + n; - } - return x; - } - - __host__ __device__ int truediv(int x, int y) - { - int z = 0; - if(x>=0 && y>0) - { - z = x/y; - } - else if(x<0 && y>0) - { - z = -((-x)/y) - 1; - } - else if(x>=0 && y<0) - { - z = -(x/(-y)) - 1; - } - else if(x<0 && y<0) - { - z = ((-x)/(-y)); - } - - return z; - } - - __host__ __device__ long truediv(long x, long y) - { - int z = 0; - if(x>=0 && y>0) - { - z = x/y; - } - else if(x<0 && y>0) - { - z = -((-x)/y) - 1; - } - else if(x>=0 && y<0) - { - z = -(x/(-y)) - 1; - } - else if(x<0 && y<0) - { - z = ((-x)/(-y)); - } - - return z; - } - - - template<> __host__ __device__ double min(double a, double b) - { - if(isnan(a)) - { - return b; - } - else if(isnan(b)) - { - return a; - } - else if(a>b) - { - return b; - } - else - { - return a; - } - } - - template<> __host__ __device__ float min(float a, float b) - { - if(isnan(a)) - { - return b; - } - else if(isnan(b)) - { - return a; - } - else if(a>b) - { - return b; - } - else - { - return a; - } - } - - template<> __host__ __device__ double max(double a, double b) - { - if(isnan(a)) - { - return b; - } - else if(isnan(b)) - { - return a; - } - else if(a>b) - { - return a; - } - else - { - return b; - } - } - - template<> __host__ __device__ float max(float a, float b) - { - if(isnan(a)) - { - return b; - } - else if(isnan(b)) - { - return a; - } - else if(a>b) - { - return a; - } - else - { - return b; - } - } - - __device__ __host__ double arg(double x, double y) + __host__ __device__ double mod(const double &x, const double &md) { double ret = 0.0; + ret = fmod(x,md); + if(ret<0.0) + { + ret = ret + md; + } + return ret; + } + + __host__ __device__ float mod(const float &x, const float &md) + { + float ret; + ret = fmodf(x,md); + if(ret<0.0f) + { + ret = ret + md; + } + return ret; + } + + __host__ __device__ int mod(const int &x, const int &n) + { + int ret; + ret = x % n; + if(ret<0) + { + ret = ret + n; + } + return ret; + } + + __host__ __device__ long mod(const long &x, const long &n) + { + int ret; + ret = x % n; + if(ret<0) + { + ret = ret + n; + } + return ret; + } + + __host__ __device__ int truediv(const int &x, const int &y) + { + int z = 0; + if(x>=0 && y>0) + { + z = x/y; + } + else if(x<0 && y>0) + { + z = -((-x)/y) - 1; + } + else if(x>=0 && y<0) + { + z = -(x/(-y)) - 1; + } + else if(x<0 && y<0) + { + z = ((-x)/(-y)); + } + + return z; + } + + __host__ __device__ long truediv(const long &x, const long &y) + { + int z = 0; + if(x>=0 && y>0) + { + z = x/y; + } + else if(x<0 && y>0) + { + z = -((-x)/y) - 1; + } + else if(x>=0 && y<0) + { + z = -(x/(-y)) - 1; + } + else if(x<0 && y<0) + { + z = ((-x)/(-y)); + } + + return z; + } + + + template<> __host__ __device__ double min(const double &a, const double &b) + { + if(isnan(a)) + { + return b; + } + else if(isnan(b)) + { + return a; + } + else if(a>b) + { + return b; + } + else + { + return a; + } + } + + template<> __host__ __device__ float min(const float &a, const float &b) + { + if(isnan(a)) + { + return b; + } + else if(isnan(b)) + { + return a; + } + else if(a>b) + { + return b; + } + else + { + return a; + } + } + + template<> __host__ __device__ double max(const double &a, const double &b) + { + if(isnan(a)) + { + return b; + } + else if(isnan(b)) + { + return a; + } + else if(a>b) + { + return a; + } + else + { + return b; + } + } + + template<> __host__ __device__ float max(const float &a, const float &b) + { + if(isnan(a)) + { + return b; + } + else if(isnan(b)) + { + return a; + } + else if(a>b) + { + return a; + } + else + { + return b; + } + } + + __device__ __host__ double arg(const double &x, const double &y) + { + double ret = 0.0; + + double z = ::sqrt(x*x+y*y); if(z>0.0) { - if(y<=x && y>=-x) - { - ret = asin(y/z); - } - else if(y>=x && y>=-x) - { - ret = acos(x/z); - } - else if(y>=x && y<=-x) - { - ret = pi-asin(y/z); - } - else - { - ret = 2.0*pi-acos(x/z); - } + ret = ::atan2(x,y); + // if(y<=x && y>=-x) + // { + // ret = asin(y/z); + // } + // else if(y>=x && y>=-x) + // { + // ret = acos(x/z); + // } + // else if(y>=x && y<=-x) + // { + // ret = pi-asin(y/z); + // } + // else + // { + // ret = 2.0*pi-acos(x/z); + // } } if(ret<0.0) @@ -221,7 +230,40 @@ namespace amscuda return ret; } - __device__ __host__ void get_azel(double x, double y, double z, double *az, double *el) + __device__ __host__ double argf(const float &x, const float &y) + { + double ret = 0.0f; + double z = ::sqrtf(x*x+y*y); + if(z>0.0f) + { + ret = ::atan2(x,y); + // if(y<=x && y>=-x) + // { + // ret = asin(y/z); + // } + // else if(y>=x && y>=-x) + // { + // ret = acos(x/z); + // } + // else if(y>=x && y<=-x) + // { + // ret = pi-asin(y/z); + // } + // else + // { + // ret = 2.0*pi-acos(x/z); + // } + } + + if(ret<0.0) + { + ret = 2.0*pi+ret; + } + + return ret; + } + + __device__ __host__ void get_azel(const double &x, const double &y, const double &z, double *az, double *el) { //int ret = -2; //should never see this return double n, rp; @@ -240,20 +282,98 @@ namespace amscuda //ret = 0; //straight up or straight down if(z>0.0) { - *az = 0.0; - *el = pi/2.0; + if(az!=NULL) *az = 0.0; + if(el!=NULL) *el = pi/2.0; } else { - *az = 0.0; - *el = -pi/2.0; + if(az!=NULL) *az = 0.0; + if(el!=NULL) *el = -pi/2.0; } } } else { - *az = 0.0; - *el = 0.0; + if(az!=NULL) *az = 0.0; + if(el!=NULL) *el = 0.0; + //ret = -1; //zero vector - no real azimuth/elevation + } + + return; + } + + __device__ __host__ void get_azel(const double &x, const double &y, const double &z, double &az_out, double &el_out) + { + //int ret = -2; //should never see this return + double n, rp; + n = ::sqrt(x*x+y*y+z*z); + if(n>0.0) + { + rp = ::sqrt(x*x+y*y); + if(rp>0.0) + { + //ret = 1; //nonzero vector - should work + az_out = arg(x,y); + el_out = ::atan(z/rp); + } + else + { + //ret = 0; //straight up or straight down + if(z>0.0) + { + az_out = 0.0; + el_out = pi/2.0; + } + else + { + az_out = 0.0; + el_out = -pi/2.0; + } + } + } + else + { + az_out = 0.0; + el_out = 0.0; + //ret = -1; //zero vector - no real azimuth/elevation + } + + return; + } + + __device__ __host__ void get_azelf(const float &x, const float &y, const float &z, float &az_out, float &el_out) + { + //int ret = -2; //should never see this return + float n, rp; + n = ::sqrtf(x*x+y*y+z*z); + if(n>0.0f) + { + rp = ::sqrtf(x*x+y*y); + if(rp>0.0f) + { + //ret = 1; //nonzero vector - should work + az_out = argf(x,y); + el_out = ::atanf(z/rp); + } + else + { + //ret = 0; //straight up or straight down + if(z>0.0f) + { + az_out = 0.0f; + el_out = pif/2.0f; + } + else + { + az_out = 0.0f; + el_out = -pif/2.0f; + } + } + } + else + { + az_out = 0.0f; + el_out = 0.0f; //ret = -1; //zero vector - no real azimuth/elevation }