end of day blah

This commit is contained in:
2025-05-22 22:22:21 -04:00
parent a0d8c9b3f6
commit f3b4801947
32 changed files with 1709 additions and 2 deletions

View File

@ -0,0 +1,96 @@
#include <amsmathutil25/amsmathutil25.hpp>
namespace ams
{
namespace amsmathutil25
{
void test_amsarray1()
{
amsarray<float> a,b,c,q;
int64_t I;
printf("Tests for amsarray...\n");
q.resize(10);
q[0] = 1;
q[9] = 5;
for(I=0;I<10;I++)
{
printf("q[%ld] = %1.3f\n",I,q[I]);
}
q.resize(12);
a = q;
a = b = q;
for(I=0;I<12;I++)
{
printf("a[%ld] = %1.3f\n",I,a[I]);
}
q.resize(8);
a = q;
a = b = q;
for(I=0;I<8;I++)
{
printf("a[%ld] = %1.3f\n",I,a[I]);
}
a.resize(amsmathutil25_threadpsz + 10);
a.setall(55);
printf("a.length=%ld\n",a.length);
b = a;
for(I=amsmathutil25_threadpsz;I<b.length;I++)
{
printf("b[%ld] = %1.3f\n",I,b[I]);
}
return;
}
void test_amsarray2()
{
amsarray<int64_t> a,b,c;
amsarray<float> q;
int64_t I;
printf("Tests for amsarray...\n");
a.resize(0);
b = a;
a.resize(-10);
b = a;
printf("a==b?%d\n",a==b);
a.resize(10);
b = a;
printf("a==b?%d\n",a==b);
a.resize(10000);
b = a;
printf("a==b?%d\n",a==b);
a.setall(55);
b = a;
printf("a==b?%d\n",a==b);
a[0] = 1;
printf("a==b?%d\n",a==b);
q = (amsarray<float>)a;
for(I=q.length-10;I<q.length;I++)
{
printf("q[%ld]=%1.3f\n",I,q[I]);
}
}
}; //end namespace amsmathutil25
}; //end namespace ams

View File

@ -0,0 +1,84 @@
#include <amsmathutil25/amsmathutil25.hpp>
namespace ams
{
template<> void amsarray<int>::print(bool newline,int printstyle)
{
amsarray_size_t I;
printf("{");
if(data!=NULL)
{
for(I=0;I<length-1;I++)
{
printf("%d,",data[I]);
}
if(length>0) printf("%d",data[length-1]);
}
printf("}");
if(newline==1) printf("\n");
return;
}
template<> void amsarray<long>::print(bool newline,int printstyle)
{
amsarray_size_t I;
printf("{");
if(data!=NULL)
{
for(I=0;I<length-1;I++)
{
printf("%ld,",data[I]);
}
if(length>0) printf("%ld",data[length-1]);
}
printf("}");
if(newline==1) printf("\n");
return;
}
template<> void amsarray<float>::print(bool newline,int printstyle)
{
amsarray_size_t I;
printf("{");
if(data!=NULL)
{
for(I=0;I<length-1;I++)
{
printf("%1.3f,",data[I]);
}
if(length>0) printf("%1.3f",data[length-1]);
}
printf("}");
if(newline==1) printf("\n");
return;
}
template<> void amsarray<double>::print(bool newline,int printstyle)
{
amsarray_size_t I;
printf("{");
if(data!=NULL)
{
for(I=0;I<length-1;I++)
{
printf("%1.3f,",data[I]);
}
if(length>0) printf("%1.3f",data[length-1]);
}
printf("}");
if(newline==1) printf("\n");
return;
}
};

View File

@ -0,0 +1,62 @@
#include <amsmathutil25/amsmathutil25.hpp>
namespace ams
{
void amsarray_permutation_identity_tf(
int threadnum,
int nthreads,
amsarray<amsarray_size_t> *ret
)
{
amsarray_size_t I,I0,I1,Is,N;
N = ret->length;
N = (N<=0) ? 0 : N;
Is = (nthreads>=1) ? N/nthreads : N;
I0 = Is*(threadnum);
I1 = (threadnum<nthreads-1) ? Is*(threadnum+1) : N;
for(I=I0;I<I1;I++)
{
ret->data[I] = I;
}
return;
}
// {0, 1, 2, .... N}
amsarray<amsarray_size_t> permutation_identity(amsarray_size_t _length)
{
amsarray<amsarray_size_t> ret;
int res;
amsarray_size_t psize = _length;
amsarray_size_t I;
res = ret.resize(psize);
if(res!=amsarray_success)
{
ret.resize(0);
return ret;
}
if(psize<amsmathutil25_threadpsz)
{
for(I=0;I<psize;I++)
{
ret[I] = I;
}
}
else
{
threaded_execute(
&amsarray_permutation_identity_tf,
_length,
&ret
);
}
return ret;
}
};

View File

@ -5,4 +5,7 @@ int main(int argc, char* argv[])
int ret = 0;
printf("ams c++ math and utility library tests.\n");
//ams::amsmathutil25::test_amsarray1();
//ams::amsmathutil25::test_amsarray2();
return ret;
}