Compare commits

...

7 Commits

6 changed files with 488 additions and 822 deletions
+1
View File
@@ -0,0 +1 @@
../onefileheader_test
+10 -7
View File
@@ -70,6 +70,9 @@ GENERATE_LIST_ALL(TYPE_PTR)
#define FOR_LIST_FORM_END(type, var_list)\ #define FOR_LIST_FORM_END(type, var_list)\
for(move_current_to_end_list_##type(var_list); var_list->current_list; decrement_list_##type(var_list)) for(move_current_to_end_list_##type(var_list); var_list->current_list; decrement_list_##type(var_list))
#define ABS(x) ((x)>0) ? (x) : (-1*(x))
#define IMPLEMENTATION_LIST(type)\ #define IMPLEMENTATION_LIST(type)\
\ \
@@ -146,20 +149,20 @@ GENERATE_LIST_ALL(TYPE_PTR)
var_list->current_index = var_list->size - 1;\ var_list->current_index = var_list->size - 1;\
}*/\ }*/\
long from_current_index = var_list->current_list->index - index; \ long from_current_index = var_list->current_list->index - index; \
size_t abs_cur_diff = abs(from_current_index); \ long abs_cur_diff = ABS(from_current_index); \
size_t array_diff_index[3] = {index, abs_cur_diff , var_list->size - 1 - index}; \ long array_diff_index[3] = {index, abs_cur_diff , var_list->size - 1 - index}; \
size_t index_nearest = ARG_MIN_ARRAY_TYPE_SIZE_T(array_diff_index, 3);\ long index_nearest = ARG_MIN_ARRAY_TYPE_SIZE_T(array_diff_index, 3);\
if(index_nearest == 0){\ if(index_nearest == 0){\
var_list->current_list = var_list->begin_list;\ var_list->current_list = var_list->begin_list;\
for(size_t i=0; i<array_diff_index[0]; ++i) var_list->current_list = (var_list->current_list)->next; \ for(long i=0; i<array_diff_index[0]; ++i) var_list->current_list = (var_list->current_list)->next; \
}\ }\
else if(index_nearest == 2){\ else if(index_nearest == 2){\
var_list->current_list = var_list->end_list;\ var_list->current_list = var_list->end_list;\
for(size_t i=0; i < array_diff_index[2]; ++i) var_list->current_list = (var_list->current_list)->preview; \ for(long i=0; i < array_diff_index[2]; ++i) var_list->current_list = (var_list->current_list)->preview; \
}else if(from_current_index >= 0) \ }else if(from_current_index >= 0) \
for(size_t i=0; i < array_diff_index[1]; ++i) var_list->current_list = (var_list->current_list)->preview; \ for(long i=0; i < array_diff_index[1]; ++i) var_list->current_list = (var_list->current_list)->preview; \
else \ else \
for(size_t i=0; i < array_diff_index[1]; ++i) var_list->current_list = (var_list->current_list)->next; \ for(long i=0; i < array_diff_index[1]; ++i) var_list->current_list = (var_list->current_list)->next; \
\ \
var_list->current_index = index;\ var_list->current_index = index;\
if(list_in_index) *list_in_index = var_list->current_list;\ if(list_in_index) *list_in_index = var_list->current_list;\
+17
View File
@@ -0,0 +1,17 @@
#!/bin/bash
if [ "$#" -le 0 ] ; then
echo "Usage: $0 fileSrc"
echo "for example: $0 tesTensor.c" >&2
else
foo=$1
path=${foo%/*}
#To get: /tmp/my.dir (like dirname)
file=${foo##*/}
#To get: filename.tar.gz (like basename)
base=${file%%.*}
echo "base = $base"
#To get: filename
ext=${file#*.}
gcc -o xtest_$base $1 -W -I../link_repo_ytest
fi
+119 -118
View File
@@ -15,15 +15,16 @@
#include "fmock/fmock.h" #include "fmock/fmock.h"
*/ */
#include "../linktest/y_test_h.h"
#include "../link_repo_ytest/y_test_h.h"
IMPLEMENTATION_FTEST() IMPLEMENTATION_FTEST()
#include "y_tensor_h.h"
//#include "shapeutation_t/shapeutation_t.h" //#include "shapeutation_t/shapeutation_t.h"
//#include "tensor_t/tensor_t.h" //#include "tensor_t/tensor_t.h"
#include "y_tensor_h.h"
#ifndef _IMPLEMENTATION_DIMENSION #ifndef _IMPLEMENTATION_DIMENSION
#define _IMPLEMENTATION_DIMENSION #define _IMPLEMENTATION_DIMENSION
@@ -59,7 +60,7 @@ void print_tensor_float(tensor_TYPE_FLOAT *M, char *msg){
} }
LOG("================= %s ===============\n",msg); LOG("================= %s ===============\n",msg);
/*for(size_t i=0; i<M->dim->size;++i) /*for(long i=0; i<M->dim->size;++i)
LOG("[%ld]: %f ",i,M->x[i]); LOG("[%ld]: %f ",i,M->x[i]);
*/ */
print_tensor_msg_TYPE_FLOAT(M,msg); print_tensor_msg_TYPE_FLOAT(M,msg);
@@ -71,7 +72,7 @@ void print_tensor_double(tensor_TYPE_DOUBLE *M, char *msg){
LOG("================= %s ===============\n",msg); LOG("================= %s ===============\n",msg);
#if VALGRIND_ #if VALGRIND_
/* /*
for(size_t i=0; i<M->dim->size;++i) for(long i=0; i<M->dim->size;++i)
LOG("[%ld]: %lf ",i,M->x[i]); LOG("[%ld]: %lf ",i,M->x[i]);
*/ */
print_tensor_msg_TYPE_DOUBLE(M,msg); print_tensor_msg_TYPE_DOUBLE(M,msg);
@@ -93,10 +94,10 @@ TEST(tensorMinusSubhead_ ){
tensor_TYPE_FLOAT *M0 = create_tensor_TYPE_FLOAT(d0); tensor_TYPE_FLOAT *M0 = create_tensor_TYPE_FLOAT(d0);
LOG("M0->dim->size = %ld\n",M0->dim->size); LOG("M0->dim->size = %ld\n",M0->dim->size);
for(size_t i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1; for(long i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1;
//littleEndian=false; //littleEndian=false;
size_t rnkId = 1; long rnkId = 1;
tensor_TYPE_FLOAT *s2h = sub_copy_minus_tensor_head_TYPE_FLOAT(M0,1,rnkId); tensor_TYPE_FLOAT *s2h = sub_copy_minus_tensor_head_TYPE_FLOAT(M0,1,rnkId);
print_tensor_float(M0, "M0 for sub"); print_tensor_float(M0, "M0 for sub");
@@ -106,10 +107,10 @@ TEST(tensorMinusSubhead_ ){
printDebug_dimension(s2h->dim," s2h dimension "); printDebug_dimension(s2h->dim," s2h dimension ");
//EXPECT_ARRAY_EQ_TYPE_FLOAT(M0->x,s2h->dim->size,s2h->x,s2h->dim->size); //EXPECT_ARRAY_EQ_TYPE_FLOAT(M0->x,s2h->dim->size,s2h->x,s2h->dim->size);
for(size_t i1=0; i1<d0->shape[1];++i1){ for(long i1=0; i1<d0->shape[1];++i1){
for(size_t i0=0; i0<d0->shape[0];++i0){ for(long i0=0; i0<d0->shape[0];++i0){
printf("EXPECT_EQ_TYPE_FLOAT c0[%ld](%ld,%ld,%ld) : s[%ld](%ld,%ld) \n",LineFromCoord((size_t[]){i0,i1,rnkId},M0->dim),rnkId,i0,i1,LineFromCoord((size_t[]){i0,i1},s2h->dim),i0,i1); printf("EXPECT_EQ_TYPE_FLOAT c0[%ld](%ld,%ld,%ld) : s[%ld](%ld,%ld) \n",LineFromCoord((long[]){i0,i1,rnkId},M0->dim),rnkId,i0,i1,LineFromCoord((long[]){i0,i1},s2h->dim),i0,i1);
EXPECT_EQ_TYPE_FLOAT(M0->x[LineFromCoord((size_t[]){i0,i1,rnkId},M0->dim)],s2h->x[LineFromCoord((size_t[]){i0,i1},s2h->dim)]); EXPECT_EQ_TYPE_FLOAT(M0->x[LineFromCoord((long[]){i0,i1,rnkId},M0->dim)],s2h->x[LineFromCoord((long[]){i0,i1},s2h->dim)]);
} }
} }
@@ -131,7 +132,7 @@ TEST(tensorMinusSubtail ){
tensor_TYPE_FLOAT *M0 = create_tensor_TYPE_FLOAT(d0); tensor_TYPE_FLOAT *M0 = create_tensor_TYPE_FLOAT(d0);
LOG("M0->dim->size = %ld\n",M0->dim->size); LOG("M0->dim->size = %ld\n",M0->dim->size);
for(size_t i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1; for(long i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1;
tensor_TYPE_FLOAT *s1t = sub_copy_minus_tensor_tail_TYPE_FLOAT(M0,1,5); tensor_TYPE_FLOAT *s1t = sub_copy_minus_tensor_tail_TYPE_FLOAT(M0,1,5);
@@ -157,10 +158,10 @@ TEST(tensorMinusSubtail ){
tensor_TYPE_FLOAT *M0 = create_tensor_TYPE_FLOAT(d0); tensor_TYPE_FLOAT *M0 = create_tensor_TYPE_FLOAT(d0);
LOG("M0->dim->size = %ld\n",M0->dim->size); LOG("M0->dim->size = %ld\n",M0->dim->size);
for(size_t i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1; for(long i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1;
//littleEndian=false; //littleEndian=false;
size_t rnkId=3; long rnkId=3;
tensor_TYPE_FLOAT *s2t = sub_copy_minus_tensor_tail_TYPE_FLOAT(M0,1,rnkId); tensor_TYPE_FLOAT *s2t = sub_copy_minus_tensor_tail_TYPE_FLOAT(M0,1,rnkId);
@@ -168,10 +169,10 @@ TEST(tensorMinusSubtail ){
print_tensor_float(M0, "M0 for sub"); print_tensor_float(M0, "M0 for sub");
print_tensor_float(s2t, "sub s2t of M0 from 3"); print_tensor_float(s2t, "sub s2t of M0 from 3");
for(size_t i1=0; i1<d0->shape[1];++i1){ for(long i1=0; i1<d0->shape[1];++i1){
for(size_t i2=0; i2<d0->shape[2];++i2){ for(long i2=0; i2<d0->shape[2];++i2){
printf("EXPECT_EQ_TYPE_FLOAT c0[%ld](%ld,%ld,%ld) : s[%ld](%ld,%ld) \n",LineFromCoord((size_t[]){rnkId,i1,i2},M0->dim),rnkId,i1,i2,LineFromCoord((size_t[]){i1,i2},s2t->dim),i1,i2); printf("EXPECT_EQ_TYPE_FLOAT c0[%ld](%ld,%ld,%ld) : s[%ld](%ld,%ld) \n",LineFromCoord((long[]){rnkId,i1,i2},M0->dim),rnkId,i1,i2,LineFromCoord((long[]){i1,i2},s2t->dim),i1,i2);
EXPECT_EQ_TYPE_FLOAT(M0->x[LineFromCoord((size_t[]){rnkId,i1,i2},M0->dim)],s2t->x[LineFromCoord((size_t[]){i1,i2},s2t->dim)]); EXPECT_EQ_TYPE_FLOAT(M0->x[LineFromCoord((long[]){rnkId,i1,i2},M0->dim)],s2t->x[LineFromCoord((long[]){i1,i2},s2t->dim)]);
} }
} }
@@ -193,10 +194,10 @@ TEST(tensorSubhead_ ){
tensor_TYPE_FLOAT *M0 = create_tensor_TYPE_FLOAT(d0); tensor_TYPE_FLOAT *M0 = create_tensor_TYPE_FLOAT(d0);
LOG("M0->dim->size = %ld\n",M0->dim->size); LOG("M0->dim->size = %ld\n",M0->dim->size);
for(size_t i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1; for(long i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1;
//littleEndian=false; //littleEndian=false;
size_t rnkId = 1; long rnkId = 1;
tensor_TYPE_FLOAT *s2h = sub_copy_tensor_head_TYPE_FLOAT(M0,2,rnkId); tensor_TYPE_FLOAT *s2h = sub_copy_tensor_head_TYPE_FLOAT(M0,2,rnkId);
print_tensor_float(M0, "M0 for sub"); print_tensor_float(M0, "M0 for sub");
@@ -206,10 +207,10 @@ TEST(tensorSubhead_ ){
printDebug_dimension(s2h->dim," s2h dimension "); printDebug_dimension(s2h->dim," s2h dimension ");
//EXPECT_ARRAY_EQ_TYPE_FLOAT(M0->x,s2h->dim->size,s2h->x,s2h->dim->size); //EXPECT_ARRAY_EQ_TYPE_FLOAT(M0->x,s2h->dim->size,s2h->x,s2h->dim->size);
for(size_t i1=0; i1<d0->shape[1];++i1){ for(long i1=0; i1<d0->shape[1];++i1){
for(size_t i0=0; i0<d0->shape[0];++i0){ for(long i0=0; i0<d0->shape[0];++i0){
printf("EXPECT_EQ_TYPE_FLOAT c0[%ld](%ld,%ld,%ld) : s[%ld](%ld,%ld) \n",LineFromCoord((size_t[]){i0,i1,rnkId},M0->dim),rnkId,i0,i1,LineFromCoord((size_t[]){i0,i1},s2h->dim),i0,i1); printf("EXPECT_EQ_TYPE_FLOAT c0[%ld](%ld,%ld,%ld) : s[%ld](%ld,%ld) \n",LineFromCoord((long[]){i0,i1,rnkId},M0->dim),rnkId,i0,i1,LineFromCoord((long[]){i0,i1},s2h->dim),i0,i1);
EXPECT_EQ_TYPE_FLOAT(M0->x[LineFromCoord((size_t[]){i0,i1,rnkId},M0->dim)],s2h->x[LineFromCoord((size_t[]){i0,i1},s2h->dim)]); EXPECT_EQ_TYPE_FLOAT(M0->x[LineFromCoord((long[]){i0,i1,rnkId},M0->dim)],s2h->x[LineFromCoord((long[]){i0,i1},s2h->dim)]);
} }
} }
free_tensor_TYPE_FLOAT(M0); free_tensor_TYPE_FLOAT(M0);
@@ -229,7 +230,7 @@ TEST(tensorSubtail ){
tensor_TYPE_FLOAT *M0 = create_tensor_TYPE_FLOAT(d0); tensor_TYPE_FLOAT *M0 = create_tensor_TYPE_FLOAT(d0);
LOG("M0->dim->size = %ld\n",M0->dim->size); LOG("M0->dim->size = %ld\n",M0->dim->size);
for(size_t i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1; for(long i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1;
tensor_TYPE_FLOAT *s1t = sub_copy_tensor_tail_TYPE_FLOAT(M0,2,5); tensor_TYPE_FLOAT *s1t = sub_copy_tensor_tail_TYPE_FLOAT(M0,2,5);
@@ -257,10 +258,10 @@ TEST(tensorSubtail ){
tensor_TYPE_FLOAT *M0 = create_tensor_TYPE_FLOAT(d0); tensor_TYPE_FLOAT *M0 = create_tensor_TYPE_FLOAT(d0);
LOG("M0->dim->size = %ld\n",M0->dim->size); LOG("M0->dim->size = %ld\n",M0->dim->size);
for(size_t i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1; for(long i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1;
//littleEndian=false; //littleEndian=false;
size_t rnkId=3; long rnkId=3;
tensor_TYPE_FLOAT *s2t = sub_copy_tensor_tail_TYPE_FLOAT(M0,2,rnkId); tensor_TYPE_FLOAT *s2t = sub_copy_tensor_tail_TYPE_FLOAT(M0,2,rnkId);
@@ -268,10 +269,10 @@ TEST(tensorSubtail ){
print_tensor_float(M0, "M0 for sub"); print_tensor_float(M0, "M0 for sub");
print_tensor_float(s2t, "sub s2t of M0 from 3"); print_tensor_float(s2t, "sub s2t of M0 from 3");
for(size_t i1=0; i1<d0->shape[1];++i1){ for(long i1=0; i1<d0->shape[1];++i1){
for(size_t i2=0; i2<d0->shape[2];++i2){ for(long i2=0; i2<d0->shape[2];++i2){
printf("EXPECT_EQ_TYPE_FLOAT c0[%ld](%ld,%ld,%ld) : s[%ld](%ld,%ld) \n",LineFromCoord((size_t[]){rnkId,i1,i2},M0->dim),rnkId,i1,i2,LineFromCoord((size_t[]){i1,i2},s2t->dim),i1,i2); printf("EXPECT_EQ_TYPE_FLOAT c0[%ld](%ld,%ld,%ld) : s[%ld](%ld,%ld) \n",LineFromCoord((long[]){rnkId,i1,i2},M0->dim),rnkId,i1,i2,LineFromCoord((long[]){i1,i2},s2t->dim),i1,i2);
EXPECT_EQ_TYPE_FLOAT(M0->x[LineFromCoord((size_t[]){rnkId,i1,i2},M0->dim)],s2t->x[LineFromCoord((size_t[]){i1,i2},s2t->dim)]); EXPECT_EQ_TYPE_FLOAT(M0->x[LineFromCoord((long[]){rnkId,i1,i2},M0->dim)],s2t->x[LineFromCoord((long[]){i1,i2},s2t->dim)]);
} }
} }
@@ -316,7 +317,7 @@ TEST(printT_init_false){
LOG("M0->dim->size = %ld\n",M0->dim->size); LOG("M0->dim->size = %ld\n",M0->dim->size);
//init_random_x_TYPE_FLOAT(M0,2,5,50); //init_random_x_TYPE_FLOAT(M0,2,5,50);
for(size_t i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1; for(long i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1;
// print_tensor_float(M0, "M0 "); // print_tensor_float(M0, "M0 ");
@@ -343,7 +344,7 @@ TEST(printT_Init_true){
LOG("M0->dim->size = %ld\n",M0->dim->size); LOG("M0->dim->size = %ld\n",M0->dim->size);
//init_random_x_TYPE_FLOAT(M0,2,5,50); //init_random_x_TYPE_FLOAT(M0,2,5,50);
for(size_t i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1; for(long i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1;
// print_tensor_float(M0, "M0 "); // print_tensor_float(M0, "M0 ");
@@ -371,7 +372,7 @@ TEST(sprinttens){
//print_tensor_double(M0, "test print M0"); //print_tensor_double(M0, "test print M0");
char *tensCont = NULL; char *tensCont = NULL;
size_t nbChar = sprint_tensor_TYPE_DOUBLE(&tensCont, M0, false); long nbChar = sprint_tensor_TYPE_DOUBLE(&tensCont, M0, false);
LOG(" avec Sprint_tensor sans index, M0 est : \n%s \n, il y a %ld charactères\n",tensCont, nbChar); LOG(" avec Sprint_tensor sans index, M0 est : \n%s \n, il y a %ld charactères\n",tensCont, nbChar);
@@ -514,7 +515,7 @@ TEST(SplitOne_randomInit){
printDebug_dimension(Tpart2->dim,"dim part2 "); printDebug_dimension(Tpart2->dim,"dim part2 ");
printDebug_dimension(M0->dim,"dim root "); printDebug_dimension(M0->dim,"dim root ");
for(size_t i=0;i<(Tpart1->dim)->size;++i) Tpart1->x[i]=0; for(long i=0;i<(Tpart1->dim)->size;++i) Tpart1->x[i]=0;
print_tensor_float(Tpart1, "Tpart1 0"); print_tensor_float(Tpart1, "Tpart1 0");
print_tensor_float(M0, "M0 Tpart1 0"); print_tensor_float(M0, "M0 Tpart1 0");
@@ -553,8 +554,8 @@ TEST(tensorProdNoOpt){
LOG("M0->dim->size = %ld\n",M0->dim->size); LOG("M0->dim->size = %ld\n",M0->dim->size);
LOG("M1->dim->size = %ld\n",M1->dim->size); LOG("M1->dim->size = %ld\n",M1->dim->size);
for(size_t i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1; for(long i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1;
for(size_t i=0; i<M1->dim->size;++i) M1->x[i]=i*0.003 + 2; for(long i=0; i<M1->dim->size;++i) M1->x[i]=i*0.003 + 2;
print_tensor_float(M0,"M0"); print_tensor_float(M0,"M0");
print_tensor_float(M1,"M1"); print_tensor_float(M1,"M1");
@@ -653,8 +654,8 @@ TEST(tensorProd ){
LOG("M0->dim->size = %ld\n",M0->dim->size); LOG("M0->dim->size = %ld\n",M0->dim->size);
LOG("M1->dim->size = %ld\n",M1->dim->size); LOG("M1->dim->size = %ld\n",M1->dim->size);
for(size_t i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1; for(long i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1;
for(size_t i=0; i<M1->dim->size;++i) M1->x[i]=i*0.003 + 2; for(long i=0; i<M1->dim->size;++i) M1->x[i]=i*0.003 + 2;
print_tensor_float(M0,"M0"); print_tensor_float(M0,"M0");
print_tensor_float(M1,"M1"); print_tensor_float(M1,"M1");
@@ -713,8 +714,8 @@ TEST(tensorContractnProd_TYPE_FLOATNoOpt ){
LOG("M0->dim->size = %ld\n",M0->dim->size); LOG("M0->dim->size = %ld\n",M0->dim->size);
LOG("M1->dim->size = %ld\n",M1->dim->size); LOG("M1->dim->size = %ld\n",M1->dim->size);
for(size_t i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1; for(long i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1;
for(size_t i=0; i<M1->dim->size;++i) M1->x[i]=i*0.003 + 2; for(long i=0; i<M1->dim->size;++i) M1->x[i]=i*0.003 + 2;
print_tensor_float(M0,"M0"); print_tensor_float(M0,"M0");
print_tensor_float(M1,"M1"); print_tensor_float(M1,"M1");
@@ -791,7 +792,7 @@ printDebug_dimension(MnO->dim, "dim Contr 1");
//print_tensor_float(M,"M"); //print_tensor_float(M,"M");
print_tensor_float(MnO,"MnO"); print_tensor_float(MnO,"MnO");
// for(size_t i=0;i<M->dim->size;++i) // for(long i=0;i<M->dim->size;++i)
// EXPECT_EQ_TYPE_FLOAT(M->x[i],MnO->x[i]); // EXPECT_EQ_TYPE_FLOAT(M->x[i],MnO->x[i]);
//EXPECT_ARRAY_EQ_TYPE_FLOAT(M->x,M->dim->size,MnO->x,MnO->dim->size); //EXPECT_ARRAY_EQ_TYPE_FLOAT(M->x,M->dim->size,MnO->x,MnO->dim->size);
@@ -837,8 +838,8 @@ TEST(tensorContractnProd_TYPE_FLOATNoOpt2 ){
LOG("M0->dim->size = %ld\n",M0->dim->size); LOG("M0->dim->size = %ld\n",M0->dim->size);
LOG("M1->dim->size = %ld\n",M1->dim->size); LOG("M1->dim->size = %ld\n",M1->dim->size);
for(size_t i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1; for(long i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1;
for(size_t i=0; i<M1->dim->size;++i) M1->x[i]=i*0.003 + 2; for(long i=0; i<M1->dim->size;++i) M1->x[i]=i*0.003 + 2;
print_tensor_float(M0,"M0"); print_tensor_float(M0,"M0");
print_tensor_float(M1,"M1"); print_tensor_float(M1,"M1");
@@ -907,7 +908,7 @@ TEST(tensorContractnProd_TYPE_FLOATNoOpt2 ){
//print_tensor_float(M,"M"); //print_tensor_float(M,"M");
print_tensor_float(MnO,"MnO"); print_tensor_float(MnO,"MnO");
// for(size_t i=0;i<M->dim->size;++i) // for(long i=0;i<M->dim->size;++i)
// EXPECT_EQ_TYPE_FLOAT(M->x[i],MnO->x[i]); // EXPECT_EQ_TYPE_FLOAT(M->x[i],MnO->x[i]);
//EXPECT_ARRAY_EQ_TYPE_FLOAT(M->x,M->dim->size,MnO->x,MnO->dim->size); //EXPECT_ARRAY_EQ_TYPE_FLOAT(M->x,M->dim->size,MnO->x,MnO->dim->size);
@@ -953,8 +954,8 @@ TEST(tensorContractnProd_TYPE_FLOATNoOpt3littleEndianFalse ){
LOG("M0->dim->size = %ld\n",M0->dim->size); LOG("M0->dim->size = %ld\n",M0->dim->size);
LOG("M1->dim->size = %ld\n",M1->dim->size); LOG("M1->dim->size = %ld\n",M1->dim->size);
for(size_t i=0; i<M0->dim->size;++i) M0->x[i]=i*2.1 +1; for(long i=0; i<M0->dim->size;++i) M0->x[i]=i*2.1 +1;
for(size_t i=0; i<M1->dim->size;++i) M1->x[i]=i*1.3 + 2; for(long i=0; i<M1->dim->size;++i) M1->x[i]=i*1.3 + 2;
print_tensor_float(M0,"M0"); print_tensor_float(M0,"M0");
print_tensor_float(M1,"M1"); print_tensor_float(M1,"M1");
@@ -971,7 +972,7 @@ TEST(tensorContractnProd_TYPE_FLOATNoOpt3littleEndianFalse ){
for(long int i1=0;i1<d0->shape[1];++i1){ for(long int i1=0;i1<d0->shape[1];++i1){
for(long int i2=0;i2<d0->shape[2];++i2){ for(long int i2=0;i2<d0->shape[2];++i2){
coord3[0]=i0; coord3[1]=i1; coord3[2]=i2; coord3[0]=i0; coord3[1]=i1; coord3[2]=i2;
size_t z=signedLineFromCoord(coord3, d0); long z=signedLineFromCoord(coord3, d0);
MMM0[i0][i1][i2]=M0->x[z]; MMM0[i0][i1][i2]=M0->x[z];
//MMM0[i0][i1][i2]=M0->x[signedLineFromCoord(coord3, d0)]; //MMM0[i0][i1][i2]=M0->x[signedLineFromCoord(coord3, d0)];
printf("[[%ld]] M0[%ld][%ld][%ld] = %f \n",z,i0,i1,i2,MMM0[i0][i1][i2]); printf("[[%ld]] M0[%ld][%ld][%ld] = %f \n",z,i0,i1,i2,MMM0[i0][i1][i2]);
@@ -985,7 +986,7 @@ TEST(tensorContractnProd_TYPE_FLOATNoOpt3littleEndianFalse ){
for(long int j1=0;j1<d1->shape[1];++j1){ for(long int j1=0;j1<d1->shape[1];++j1){
for(long int j2=0;j2<d1->shape[2];++j2){ for(long int j2=0;j2<d1->shape[2];++j2){
coord23[0]=j0; coord23[1]=j1; coord23[2]=j2; coord23[0]=j0; coord23[1]=j1; coord23[2]=j2;
size_t z =signedLineFromCoord(coord23, d1); long z =signedLineFromCoord(coord23, d1);
MMM1[j0][j1][j2]=M1->x[z]; MMM1[j0][j1][j2]=M1->x[z];
//MMM1[j0][j1][j2]=M1->x[signedLineFromCoord(coord23, d1)]; //MMM1[j0][j1][j2]=M1->x[signedLineFromCoord(coord23, d1)];
printf("[[%ld]] M1[%ld][%ld][%ld] = %f \n",z,j0,j1,j2,MMM1[j0][j1][j2]); printf("[[%ld]] M1[%ld][%ld][%ld] = %f \n",z,j0,j1,j2,MMM1[j0][j1][j2]);
@@ -1014,7 +1015,7 @@ TEST(tensorContractnProd_TYPE_FLOATNoOpt3littleEndianFalse ){
for(long int i0=0;i0<d0->shape[0];++i0){ for(long int i0=0;i0<d0->shape[0];++i0){
for(long int j2=0;j2<d1->shape[2];++j2){ for(long int j2=0;j2<d1->shape[2];++j2){
coord52[0]=i0; coord52[1]=j2; coord52[0]=i0; coord52[1]=j2;
size_t z = signedLineFromCoord(coord52, MnO->dim); long z = signedLineFromCoord(coord52, MnO->dim);
EXPECT_EQ_TYPE_FLOAT(MMMm[i0][j2], MnO->x[z] ); EXPECT_EQ_TYPE_FLOAT(MMMm[i0][j2], MnO->x[z] );
//EXPECT_EQ_TYPE_FLOAT(MMMm[i0][j2], MnO->x[signedLineFromCoord(coord52, MnO->dim)] ); //EXPECT_EQ_TYPE_FLOAT(MMMm[i0][j2], MnO->x[signedLineFromCoord(coord52, MnO->dim)] );
@@ -1032,7 +1033,7 @@ TEST(tensorContractnProd_TYPE_FLOATNoOpt3littleEndianFalse ){
//print_tensor_float(M,"M"); //print_tensor_float(M,"M");
print_tensor_float(MnO,"MnO"); print_tensor_float(MnO,"MnO");
// for(size_t i=0;i<M->dim->size;++i) // for(long i=0;i<M->dim->size;++i)
// EXPECT_EQ_TYPE_FLOAT(M->x[i],MnO->x[i]); // EXPECT_EQ_TYPE_FLOAT(M->x[i],MnO->x[i]);
//EXPECT_ARRAY_EQ_TYPE_FLOAT(M->x,M->dim->size,MnO->x,MnO->dim->size); //EXPECT_ARRAY_EQ_TYPE_FLOAT(M->x,M->dim->size,MnO->x,MnO->dim->size);
@@ -1081,8 +1082,8 @@ TEST(tensorContractnProd_TYPE_FLOAT ){
LOG("M0->dim->size = %ld\n",M0->dim->size); LOG("M0->dim->size = %ld\n",M0->dim->size);
LOG("M1->dim->size = %ld\n",M1->dim->size); LOG("M1->dim->size = %ld\n",M1->dim->size);
for(size_t i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1; for(long i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1;
for(size_t i=0; i<M1->dim->size;++i) M1->x[i]=i*0.003 + 2; for(long i=0; i<M1->dim->size;++i) M1->x[i]=i*0.003 + 2;
print_tensor_float(M0,"M0"); print_tensor_float(M0,"M0");
print_tensor_float(M1,"M1"); print_tensor_float(M1,"M1");
@@ -1097,7 +1098,7 @@ TEST(tensorContractnProd_TYPE_FLOAT ){
print_tensor_float(M,"M"); print_tensor_float(M,"M");
print_tensor_float(MnO,"MnO"); print_tensor_float(MnO,"MnO");
// for(size_t i=0;i<M->dim->size;++i) // for(long i=0;i<M->dim->size;++i)
// EXPECT_EQ_TYPE_FLOAT(M->x[i],MnO->x[i]); // EXPECT_EQ_TYPE_FLOAT(M->x[i],MnO->x[i]);
EXPECT_ARRAY_EQ_TYPE_FLOAT(M->x,M->dim->size,MnO->x,MnO->dim->size); EXPECT_ARRAY_EQ_TYPE_FLOAT(M->x,M->dim->size,MnO->x,MnO->dim->size);
@@ -1142,8 +1143,8 @@ TEST(tensorContractnProd_TYPE_FLOAT2 ){
LOG("M0->dim->size = %ld\n",M0->dim->size); LOG("M0->dim->size = %ld\n",M0->dim->size);
LOG("M1->dim->size = %ld\n",M1->dim->size); LOG("M1->dim->size = %ld\n",M1->dim->size);
for(size_t i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1; for(long i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1;
for(size_t i=0; i<M1->dim->size;++i) M1->x[i]=i*0.003 + 2; for(long i=0; i<M1->dim->size;++i) M1->x[i]=i*0.003 + 2;
// print_tensor_float(M0,"M0"); // print_tensor_float(M0,"M0");
// print_tensor_float(M1,"M1"); // print_tensor_float(M1,"M1");
@@ -1158,7 +1159,7 @@ TEST(tensorContractnProd_TYPE_FLOAT2 ){
// print_tensor_float(MnO,"MnO"); // print_tensor_float(MnO,"MnO");
// for(size_t i=0;i<M->dim->size;++i) // for(long i=0;i<M->dim->size;++i)
// EXPECT_EQ_TYPE_FLOAT(M->x[i],MnO->x[i]); // EXPECT_EQ_TYPE_FLOAT(M->x[i],MnO->x[i]);
EXPECT_ARRAY_EQ_TYPE_FLOAT(M->x,M->dim->size,MnO->x,MnO->dim->size); EXPECT_ARRAY_EQ_TYPE_FLOAT(M->x,M->dim->size,MnO->x,MnO->dim->size);
@@ -1203,8 +1204,8 @@ TEST(tensorContractnProdOpt0_TYPE_FLOAT2 ){
LOG("M0->dim->size = %ld\n",M0->dim->size); LOG("M0->dim->size = %ld\n",M0->dim->size);
LOG("M1->dim->size = %ld\n",M1->dim->size); LOG("M1->dim->size = %ld\n",M1->dim->size);
for(size_t i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1; for(long i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1;
for(size_t i=0; i<M1->dim->size;++i) M1->x[i]=i*0.003 + 2; for(long i=0; i<M1->dim->size;++i) M1->x[i]=i*0.003 + 2;
// print_tensor_float(M0,"M0"); // print_tensor_float(M0,"M0");
// print_tensor_float(M1,"M1"); // print_tensor_float(M1,"M1");
@@ -1219,7 +1220,7 @@ TEST(tensorContractnProdOpt0_TYPE_FLOAT2 ){
// print_tensor_float(MnO,"MnO"); // print_tensor_float(MnO,"MnO");
// for(size_t i=0;i<M->dim->size;++i) // for(long i=0;i<M->dim->size;++i)
// EXPECT_EQ_TYPE_FLOAT(M->x[i],MnO->x[i]); // EXPECT_EQ_TYPE_FLOAT(M->x[i],MnO->x[i]);
EXPECT_ARRAY_EQ_TYPE_FLOAT(M->x,M->dim->size,MnO->x,MnO->dim->size); EXPECT_ARRAY_EQ_TYPE_FLOAT(M->x,M->dim->size,MnO->x,MnO->dim->size);
@@ -1268,8 +1269,8 @@ TEST(tensorContractnProdThreadOpt0_TYPE_FLOAT2 ){
LOG("M0->dim->size = %ld\n",M0->dim->size); LOG("M0->dim->size = %ld\n",M0->dim->size);
LOG("M1->dim->size = %ld\n",M1->dim->size); LOG("M1->dim->size = %ld\n",M1->dim->size);
for(size_t i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1; for(long i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1;
for(size_t i=0; i<M1->dim->size;++i) M1->x[i]=i*0.003 + 2; for(long i=0; i<M1->dim->size;++i) M1->x[i]=i*0.003 + 2;
// print_tensor_float(M0,"M0"); // print_tensor_float(M0,"M0");
// print_tensor_float(M1,"M1"); // print_tensor_float(M1,"M1");
@@ -1284,7 +1285,7 @@ TEST(tensorContractnProdThreadOpt0_TYPE_FLOAT2 ){
// print_tensor_float(MnO,"MnO"); // print_tensor_float(MnO,"MnO");
// for(size_t i=0;i<M->dim->size;++i) // for(long i=0;i<M->dim->size;++i)
// EXPECT_EQ_TYPE_FLOAT(M->x[i],MnO->x[i]); // EXPECT_EQ_TYPE_FLOAT(M->x[i],MnO->x[i]);
EXPECT_ARRAY_EQ_TYPE_FLOAT(M->x,M->dim->size,MnO->x,MnO->dim->size); EXPECT_ARRAY_EQ_TYPE_FLOAT(M->x,M->dim->size,MnO->x,MnO->dim->size);
@@ -1331,8 +1332,8 @@ TEST(tensorContractnPro2dThreadOpt0_TYPE_FLOAT2 ){
LOG("M0->dim->size = %ld\n",M0->dim->size); LOG("M0->dim->size = %ld\n",M0->dim->size);
LOG("M1->dim->size = %ld\n",M1->dim->size); LOG("M1->dim->size = %ld\n",M1->dim->size);
for(size_t i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1; for(long i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1;
for(size_t i=0; i<M1->dim->size;++i) M1->x[i]=i*0.003 + 2; for(long i=0; i<M1->dim->size;++i) M1->x[i]=i*0.003 + 2;
// print_tensor_float(M0,"M0"); // print_tensor_float(M0,"M0");
// print_tensor_float(M1,"M1"); // print_tensor_float(M1,"M1");
@@ -1347,7 +1348,7 @@ TEST(tensorContractnPro2dThreadOpt0_TYPE_FLOAT2 ){
// print_tensor_float(MnO,"MnO"); // print_tensor_float(MnO,"MnO");
// for(size_t i=0;i<M->dim->size;++i) // for(long i=0;i<M->dim->size;++i)
// EXPECT_EQ_TYPE_FLOAT(M->x[i],MnO->x[i]); // EXPECT_EQ_TYPE_FLOAT(M->x[i],MnO->x[i]);
EXPECT_ARRAY_EQ_TYPE_FLOAT(M->x,M->dim->size,MnO->x,MnO->dim->size); EXPECT_ARRAY_EQ_TYPE_FLOAT(M->x,M->dim->size,MnO->x,MnO->dim->size);
@@ -1392,8 +1393,8 @@ TEST(tensorContractnPro2dThread_TYPE_FLOAT2 ){
LOG("M0->dim->size = %ld\n",M0->dim->size); LOG("M0->dim->size = %ld\n",M0->dim->size);
LOG("M1->dim->size = %ld\n",M1->dim->size); LOG("M1->dim->size = %ld\n",M1->dim->size);
for(size_t i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1; for(long i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1;
for(size_t i=0; i<M1->dim->size;++i) M1->x[i]=i*0.003 + 2; for(long i=0; i<M1->dim->size;++i) M1->x[i]=i*0.003 + 2;
// print_tensor_float(M0,"M0"); // print_tensor_float(M0,"M0");
// print_tensor_float(M1,"M1"); // print_tensor_float(M1,"M1");
@@ -1408,7 +1409,7 @@ TEST(tensorContractnPro2dThread_TYPE_FLOAT2 ){
// print_tensor_float(MnO,"MnO"); // print_tensor_float(MnO,"MnO");
// for(size_t i=0;i<M->dim->size;++i) // for(long i=0;i<M->dim->size;++i)
// EXPECT_EQ_TYPE_FLOAT(M->x[i],MnO->x[i]); // EXPECT_EQ_TYPE_FLOAT(M->x[i],MnO->x[i]);
EXPECT_ARRAY_EQ_TYPE_FLOAT(M->x,M->dim->size,MnO->x,MnO->dim->size); EXPECT_ARRAY_EQ_TYPE_FLOAT(M->x,M->dim->size,MnO->x,MnO->dim->size);
@@ -1455,8 +1456,8 @@ TEST(tensorContractnProdThread_TYPE_FLOAT2 ){
LOG("M0->dim->size = %ld\n",M0->dim->size); LOG("M0->dim->size = %ld\n",M0->dim->size);
LOG("M1->dim->size = %ld\n",M1->dim->size); LOG("M1->dim->size = %ld\n",M1->dim->size);
for(size_t i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1; for(long i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1;
for(size_t i=0; i<M1->dim->size;++i) M1->x[i]=i*0.003 + 2; for(long i=0; i<M1->dim->size;++i) M1->x[i]=i*0.003 + 2;
// print_tensor_float(M0,"M0"); // print_tensor_float(M0,"M0");
// print_tensor_float(M1,"M1"); // print_tensor_float(M1,"M1");
@@ -1471,7 +1472,7 @@ TEST(tensorContractnProdThread_TYPE_FLOAT2 ){
// print_tensor_float(MnO,"MnO"); // print_tensor_float(MnO,"MnO");
// for(size_t i=0;i<M->dim->size;++i) // for(long i=0;i<M->dim->size;++i)
// EXPECT_EQ_TYPE_FLOAT(M->x[i],MnO->x[i]); // EXPECT_EQ_TYPE_FLOAT(M->x[i],MnO->x[i]);
EXPECT_ARRAY_EQ_TYPE_FLOAT(M->x,M->dim->size,MnO->x,MnO->dim->size); EXPECT_ARRAY_EQ_TYPE_FLOAT(M->x,M->dim->size,MnO->x,MnO->dim->size);
@@ -1508,8 +1509,8 @@ TEST(tensorContractnProd_TYPE_DOUBLE_2_1 ){
LOG("M0->dim->size = %ld\n",M0->dim->size); LOG("M0->dim->size = %ld\n",M0->dim->size);
LOG("M1->dim->size = %ld\n",M1->dim->size); LOG("M1->dim->size = %ld\n",M1->dim->size);
for(size_t i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1; for(long i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1;
for(size_t i=0; i<M1->dim->size;++i) M1->x[i]=i*0.003 + 2; for(long i=0; i<M1->dim->size;++i) M1->x[i]=i*0.003 + 2;
print_tensor_double(M0,"M0"); print_tensor_double(M0,"M0");
print_tensor_double(M1,"M1"); print_tensor_double(M1,"M1");
@@ -1524,7 +1525,7 @@ TEST(tensorContractnProd_TYPE_DOUBLE_2_1 ){
print_tensor_double(MnO,"MnO"); print_tensor_double(MnO,"MnO");
// for(size_t i=0;i<M->dim->size;++i) // for(long i=0;i<M->dim->size;++i)
// EXPECT_EQ_TYPE_DOUBLE(M->x[i],MnO->x[i]); // EXPECT_EQ_TYPE_DOUBLE(M->x[i],MnO->x[i]);
EXPECT_ARRAY_EQ_TYPE_DOUBLE(M->x,M->dim->size,MnO->x,MnO->dim->size); EXPECT_ARRAY_EQ_TYPE_DOUBLE(M->x,M->dim->size,MnO->x,MnO->dim->size);
@@ -1564,8 +1565,8 @@ TEST(tensorContractnProd_TYPE_DOUBLE_2_1 ){
LOG("M0->dim->size = %ld\n",M0->dim->size); LOG("M0->dim->size = %ld\n",M0->dim->size);
LOG("M1->dim->size = %ld\n",M1->dim->size); LOG("M1->dim->size = %ld\n",M1->dim->size);
for(size_t i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1; for(long i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1;
for(size_t i=0; i<M1->dim->size;++i) M1->x[i]=i*0.003 + 2; for(long i=0; i<M1->dim->size;++i) M1->x[i]=i*0.003 + 2;
print_tensor_double(M0,"M0"); print_tensor_double(M0,"M0");
print_tensor_double(M1,"M1"); print_tensor_double(M1,"M1");
@@ -1580,7 +1581,7 @@ TEST(tensorContractnProd_TYPE_DOUBLE_2_1 ){
print_tensor_double(MnO,"MnO"); print_tensor_double(MnO,"MnO");
// for(size_t i=0;i<M->dim->size;++i) // for(long i=0;i<M->dim->size;++i)
// EXPECT_EQ_TYPE_DOUBLE(M->x[i],MnO->x[i]); // EXPECT_EQ_TYPE_DOUBLE(M->x[i],MnO->x[i]);
EXPECT_ARRAY_EQ_TYPE_DOUBLE(M->x,M->dim->size,MnO->x,MnO->dim->size); EXPECT_ARRAY_EQ_TYPE_DOUBLE(M->x,M->dim->size,MnO->x,MnO->dim->size);
@@ -1621,8 +1622,8 @@ TEST(tensorContractnProd_TYPE_DOUBLE_2_2 ){
LOG("M0->dim->size = %ld\n",M0->dim->size); LOG("M0->dim->size = %ld\n",M0->dim->size);
LOG("M1->dim->size = %ld\n",M1->dim->size); LOG("M1->dim->size = %ld\n",M1->dim->size);
for(size_t i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1; for(long i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1;
for(size_t i=0; i<M1->dim->size;++i) M1->x[i]=i*0.003 + 2; for(long i=0; i<M1->dim->size;++i) M1->x[i]=i*0.003 + 2;
print_tensor_double(M0,"M0"); print_tensor_double(M0,"M0");
print_tensor_double(M1,"M1"); print_tensor_double(M1,"M1");
@@ -1637,7 +1638,7 @@ TEST(tensorContractnProd_TYPE_DOUBLE_2_2 ){
print_tensor_double(MnO,"MnO"); print_tensor_double(MnO,"MnO");
// for(size_t i=0;i<M->dim->size;++i) // for(long i=0;i<M->dim->size;++i)
// EXPECT_EQ_TYPE_DOUBLE(M->x[i],MnO->x[i]); // EXPECT_EQ_TYPE_DOUBLE(M->x[i],MnO->x[i]);
EXPECT_ARRAY_EQ_TYPE_DOUBLE(M->x,M->dim->size,MnO->x,MnO->dim->size); EXPECT_ARRAY_EQ_TYPE_DOUBLE(M->x,M->dim->size,MnO->x,MnO->dim->size);
@@ -1683,8 +1684,8 @@ TEST(tensorContractnProd_TYPE_DOUBLE2 ){
LOG("M0->dim->size = %ld\n",M0->dim->size); LOG("M0->dim->size = %ld\n",M0->dim->size);
LOG("M1->dim->size = %ld\n",M1->dim->size); LOG("M1->dim->size = %ld\n",M1->dim->size);
for(size_t i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1; for(long i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1;
for(size_t i=0; i<M1->dim->size;++i) M1->x[i]=i*0.003 + 2; for(long i=0; i<M1->dim->size;++i) M1->x[i]=i*0.003 + 2;
//print_tensor_double(M0,"M0"); //print_tensor_double(M0,"M0");
//print_tensor_double(M1,"M1"); //print_tensor_double(M1,"M1");
@@ -1699,7 +1700,7 @@ TEST(tensorContractnProd_TYPE_DOUBLE2 ){
//print_tensor_double(MnO,"MnO"); //print_tensor_double(MnO,"MnO");
// for(size_t i=0;i<M->dim->size;++i) // for(long i=0;i<M->dim->size;++i)
// EXPECT_EQ_TYPE_DOUBLE(M->x[i],MnO->x[i]); // EXPECT_EQ_TYPE_DOUBLE(M->x[i],MnO->x[i]);
EXPECT_ARRAY_EQ_TYPE_DOUBLE(M->x,M->dim->size,MnO->x,MnO->dim->size); EXPECT_ARRAY_EQ_TYPE_DOUBLE(M->x,M->dim->size,MnO->x,MnO->dim->size);
@@ -1744,8 +1745,8 @@ TEST(VStensorContractnProd_TYPE_DOUBLE2 ){
LOG("M0->dim->size = %ld\n",M0->dim->size); LOG("M0->dim->size = %ld\n",M0->dim->size);
LOG("M1->dim->size = %ld\n",M1->dim->size); LOG("M1->dim->size = %ld\n",M1->dim->size);
for(size_t i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1; for(long i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1;
for(size_t i=0; i<M1->dim->size;++i) M1->x[i]=i*0.003 + 2; for(long i=0; i<M1->dim->size;++i) M1->x[i]=i*0.003 + 2;
//print_tensor_double(M0,"M0"); //print_tensor_double(M0,"M0");
//print_tensor_double(M1,"M1"); //print_tensor_double(M1,"M1");
@@ -1760,7 +1761,7 @@ TEST(VStensorContractnProd_TYPE_DOUBLE2 ){
//print_tensor_double(MnO,"MnO"); //print_tensor_double(MnO,"MnO");
// for(size_t i=0;i<M->dim->size;++i) // for(long i=0;i<M->dim->size;++i)
// EXPECT_EQ_TYPE_DOUBLE(M->x[i],MnO->x[i]); // EXPECT_EQ_TYPE_DOUBLE(M->x[i],MnO->x[i]);
EXPECT_ARRAY_EQ_TYPE_DOUBLE(M->x,M->dim->size,MnO->x,MnO->dim->size); EXPECT_ARRAY_EQ_TYPE_DOUBLE(M->x,M->dim->size,MnO->x,MnO->dim->size);
@@ -1806,8 +1807,8 @@ TEST(Pthread_tensorContractnPro2d_TYPE_DOUBLE2 ){
LOG("M0->dim->size = %ld\n",M0->dim->size); LOG("M0->dim->size = %ld\n",M0->dim->size);
LOG("M1->dim->size = %ld\n",M1->dim->size); LOG("M1->dim->size = %ld\n",M1->dim->size);
for(size_t i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1; for(long i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1;
for(size_t i=0; i<M1->dim->size;++i) M1->x[i]=i*0.003 + 2; for(long i=0; i<M1->dim->size;++i) M1->x[i]=i*0.003 + 2;
//print_tensor_double(M0,"M0"); //print_tensor_double(M0,"M0");
//print_tensor_double(M1,"M1"); //print_tensor_double(M1,"M1");
@@ -1815,7 +1816,7 @@ TEST(Pthread_tensorContractnPro2d_TYPE_DOUBLE2 ){
tensor_TYPE_DOUBLE *M=NULL; tensor_TYPE_DOUBLE *M=NULL;
tensor_TYPE_DOUBLE *MnO=NULL; tensor_TYPE_DOUBLE *MnO=NULL;
size_t nbthread = 5; long nbthread = 5;
tensorContractnProd_TYPE_DOUBLE(&M, M0,M1,2); tensorContractnProd_TYPE_DOUBLE(&M, M0,M1,2);
//print_tensor_double(M,"M"); //print_tensor_double(M,"M");
@@ -1824,7 +1825,7 @@ TEST(Pthread_tensorContractnPro2d_TYPE_DOUBLE2 ){
//print_tensor_double(MnO,"MnO"); //print_tensor_double(MnO,"MnO");
// for(size_t i=0;i<M->dim->size;++i) // for(long i=0;i<M->dim->size;++i)
// EXPECT_EQ_TYPE_DOUBLE(M->x[i],MnO->x[i]); // EXPECT_EQ_TYPE_DOUBLE(M->x[i],MnO->x[i]);
EXPECT_ARRAY_EQ_TYPE_DOUBLE(M->x,M->dim->size,MnO->x,MnO->dim->size); EXPECT_ARRAY_EQ_TYPE_DOUBLE(M->x,M->dim->size,MnO->x,MnO->dim->size);
@@ -1865,8 +1866,8 @@ TEST(contract_dim1){
LOG("M0->dim->size = %ld\n",M0->dim->size); LOG("M0->dim->size = %ld\n",M0->dim->size);
LOG("M1->dim->size = %ld\n",M1->dim->size); LOG("M1->dim->size = %ld\n",M1->dim->size);
for(size_t i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1; for(long i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1;
for(size_t i=0; i<M1->dim->size;++i) M1->x[i]=i*0.003 + 2; for(long i=0; i<M1->dim->size;++i) M1->x[i]=i*0.003 + 2;
print_tensor_double(M0,"M0"); print_tensor_double(M0,"M0");
print_tensor_double(M1,"M1"); print_tensor_double(M1,"M1");
@@ -1874,7 +1875,7 @@ TEST(contract_dim1){
tensor_TYPE_DOUBLE *M=NULL; tensor_TYPE_DOUBLE *M=NULL;
tensor_TYPE_DOUBLE *MnO=NULL; tensor_TYPE_DOUBLE *MnO=NULL;
size_t nbthread = 5; long nbthread = 5;
tensorContractnProd_TYPE_DOUBLE(&M, M0,M1,1); tensorContractnProd_TYPE_DOUBLE(&M, M0,M1,1);
//print_tensor_double(M,"M"); //print_tensor_double(M,"M");
@@ -1888,7 +1889,7 @@ printDebug_dimension(M1->dim," M1 dimension ");
printDebug_dimension(M->dim," M dimension "); printDebug_dimension(M->dim," M dimension ");
// for(size_t i=0;i<M->dim->size;++i) // for(long i=0;i<M->dim->size;++i)
// EXPECT_EQ_TYPE_DOUBLE(M->x[i],MnO->x[i]); // EXPECT_EQ_TYPE_DOUBLE(M->x[i],MnO->x[i]);
EXPECT_ARRAY_EQ_TYPE_DOUBLE(M->x,M->dim->size,MnO->x,MnO->dim->size); EXPECT_ARRAY_EQ_TYPE_DOUBLE(M->x,M->dim->size,MnO->x,MnO->dim->size);
@@ -1933,8 +1934,8 @@ TEST(Pthread_tensorContractnProd_TYPE_DOUBLE2 ){
LOG("M0->dim->size = %ld\n",M0->dim->size); LOG("M0->dim->size = %ld\n",M0->dim->size);
LOG("M1->dim->size = %ld\n",M1->dim->size); LOG("M1->dim->size = %ld\n",M1->dim->size);
for(size_t i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1; for(long i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1;
for(size_t i=0; i<M1->dim->size;++i) M1->x[i]=i*0.003 + 2; for(long i=0; i<M1->dim->size;++i) M1->x[i]=i*0.003 + 2;
//print_tensor_double(M0,"M0"); //print_tensor_double(M0,"M0");
//print_tensor_double(M1,"M1"); //print_tensor_double(M1,"M1");
@@ -1942,7 +1943,7 @@ TEST(Pthread_tensorContractnProd_TYPE_DOUBLE2 ){
tensor_TYPE_DOUBLE *M=NULL; tensor_TYPE_DOUBLE *M=NULL;
tensor_TYPE_DOUBLE *MnO=NULL; tensor_TYPE_DOUBLE *MnO=NULL;
size_t nbthread = 5; long nbthread = 5;
tensorContractnProd_TYPE_DOUBLE(&M, M0,M1,2); tensorContractnProd_TYPE_DOUBLE(&M, M0,M1,2);
//print_tensor_double(M,"M"); //print_tensor_double(M,"M");
@@ -1951,7 +1952,7 @@ TEST(Pthread_tensorContractnProd_TYPE_DOUBLE2 ){
//print_tensor_double(MnO,"MnO"); //print_tensor_double(MnO,"MnO");
// for(size_t i=0;i<M->dim->size;++i) // for(long i=0;i<M->dim->size;++i)
// EXPECT_EQ_TYPE_DOUBLE(M->x[i],MnO->x[i]); // EXPECT_EQ_TYPE_DOUBLE(M->x[i],MnO->x[i]);
EXPECT_ARRAY_EQ_TYPE_DOUBLE(M->x,M->dim->size,MnO->x,MnO->dim->size); EXPECT_ARRAY_EQ_TYPE_DOUBLE(M->x,M->dim->size,MnO->x,MnO->dim->size);
@@ -1996,8 +1997,8 @@ TEST(tensorProd_vs ){
LOG("M0->dim->size = %ld\n",M0->dim->size); LOG("M0->dim->size = %ld\n",M0->dim->size);
LOG("M1->dim->size = %ld\n",M1->dim->size); LOG("M1->dim->size = %ld\n",M1->dim->size);
for(size_t i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1; for(long i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1;
for(size_t i=0; i<M1->dim->size;++i) M1->x[i]=i*0.003 + 2; for(long i=0; i<M1->dim->size;++i) M1->x[i]=i*0.003 + 2;
tensor_TYPE_FLOAT *M=NULL; tensor_TYPE_FLOAT *M=NULL;
@@ -2050,15 +2051,15 @@ TEST(tensorProd_vsThread ){
LOG("M0->dim->size = %ld\n",M0->dim->size); LOG("M0->dim->size = %ld\n",M0->dim->size);
LOG("M1->dim->size = %ld\n",M1->dim->size); LOG("M1->dim->size = %ld\n",M1->dim->size);
for(size_t i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1; for(long i=0; i<M0->dim->size;++i) M0->x[i]=i*0.1 +1;
for(size_t i=0; i<M1->dim->size;++i) M1->x[i]=i*0.003 + 2; for(long i=0; i<M1->dim->size;++i) M1->x[i]=i*0.003 + 2;
tensor_TYPE_FLOAT *M=NULL; tensor_TYPE_FLOAT *M=NULL;
tensor_TYPE_FLOAT *Mn=NULL; tensor_TYPE_FLOAT *Mn=NULL;
size_t nbthread = 5; long nbthread = 5;
tensorProdThread_TYPE_FLOAT(&M,M0,M1,nbthread); tensorProdThread_TYPE_FLOAT(&M,M0,M1,nbthread);
//tensorProdNotOpt_TYPE_FLOAT(&Mn,M0,M1); //tensorProdNotOpt_TYPE_FLOAT(&Mn,M0,M1);
@@ -2108,14 +2109,14 @@ TEST(tensorProd_vsThread2d ){
LOG("M0->dim->size = %ld\n",M0->dim->size); LOG("M0->dim->size = %ld\n",M0->dim->size);
LOG("M1->dim->size = %ld\n",M1->dim->size); LOG("M1->dim->size = %ld\n",M1->dim->size);
for(size_t i=0; i<M0->dim->size;++i) M0->x[i]=i*0.01 +1; for(long i=0; i<M0->dim->size;++i) M0->x[i]=i*0.01 +1;
for(size_t i=0; i<M1->dim->size;++i) M1->x[i]=i*0.003 + 2; for(long i=0; i<M1->dim->size;++i) M1->x[i]=i*0.003 + 2;
tensor_TYPE_FLOAT *M=NULL; tensor_TYPE_FLOAT *M=NULL;
tensor_TYPE_FLOAT *Mn=NULL; tensor_TYPE_FLOAT *Mn=NULL;
size_t nbthread = 5; long nbthread = 5;
tensorProdThrea2d_TYPE_FLOAT(&M,M0,M1,nbthread); tensorProdThrea2d_TYPE_FLOAT(&M,M0,M1,nbthread);
//tensorProdNotOpt_TYPE_FLOAT(&Mn,M0,M1); //tensorProdNotOpt_TYPE_FLOAT(&Mn,M0,M1);
@@ -2577,21 +2578,21 @@ TEST(array_from_parseInputOutput_file_knownpart1dimInput_1output_to_tensor){
tensor_TYPE_FLOAT **arrt1 = fromInput_to_array_tensor_TYPE_FLOAT(t1); tensor_TYPE_FLOAT **arrt1 = fromInput_to_array_tensor_TYPE_FLOAT(t1);
size_t sz0=(t0->dim)->shape[0]; long sz0=(t0->dim)->shape[0];
size_t sz1=(t1->dim)->shape[0]; long sz1=(t1->dim)->shape[0];
char msg[256]; char msg[256];
for(size_t i=0; i< sz0; ++i){ for(long i=0; i< sz0; ++i){
sprintf(msg," array t0 [%ld ] ",i); sprintf(msg," array t0 [%ld ] ",i);
print_tensor_msg_TYPE_FLOAT(arrt0[i],msg); print_tensor_msg_TYPE_FLOAT(arrt0[i],msg);
} }
for(size_t i=0; i< sz1; ++i){ for(long i=0; i< sz1; ++i){
sprintf(msg," array t1 [%ld ] ",i); sprintf(msg," array t1 [%ld ] ",i);
print_tensor_msg_TYPE_FLOAT(arrt1[i],msg); print_tensor_msg_TYPE_FLOAT(arrt1[i],msg);
} }
for(size_t i=0; i< sz0; ++i) free_tensor_TYPE_FLOAT(arrt0[i]); for(long i=0; i< sz0; ++i) free_tensor_TYPE_FLOAT(arrt0[i]);
for(size_t i=0; i< sz1; ++i) free_tensor_TYPE_FLOAT(arrt1[i]); for(long i=0; i< sz1; ++i) free_tensor_TYPE_FLOAT(arrt1[i]);
free(arrt0); free(arrt0);
free(arrt1); free(arrt1);
@@ -2713,8 +2714,8 @@ TEST(tensorContractnProd_TYPE_DOUBLE_2_2 ){
tensor_TYPE_DOUBLE *M0 = create_tensor_TYPE_DOUBLE(d0); tensor_TYPE_DOUBLE *M0 = create_tensor_TYPE_DOUBLE(d0);
tensor_TYPE_DOUBLE *M1 = create_tensor_TYPE_DOUBLE(d1); tensor_TYPE_DOUBLE *M1 = create_tensor_TYPE_DOUBLE(d1);
for(size_t i=0; i<M0->dim->size;++i) M0->x[i]=2 ; for(long i=0; i<M0->dim->size;++i) M0->x[i]=2 ;
for(size_t i=0; i<M1->dim->size;++i) M1->x[i]=3; for(long i=0; i<M1->dim->size;++i) M1->x[i]=3;
print_tensor_double(M0,"M0"); print_tensor_double(M0,"M0");
print_tensor_double(M1,"M1"); print_tensor_double(M1,"M1");
@@ -2725,7 +2726,7 @@ TEST(tensorContractnProd_TYPE_DOUBLE_2_2 ){
print_tensor_double(M,"M"); print_tensor_double(M,"M");
// for(size_t i=0;i<M->dim->size;++i) // for(long i=0;i<M->dim->size;++i)
// EXPECT_EQ_TYPE_DOUBLE(M->x[i],MnO->x[i]); // EXPECT_EQ_TYPE_DOUBLE(M->x[i],MnO->x[i]);
@@ -2769,11 +2770,11 @@ TEST(scalProduct){
tensor_TYPE_DOUBLE *M_0 = create_tensor_TYPE_DOUBLE(d_0); tensor_TYPE_DOUBLE *M_0 = create_tensor_TYPE_DOUBLE(d_0);
tensor_TYPE_DOUBLE *M_1 = create_tensor_TYPE_DOUBLE(d_1); tensor_TYPE_DOUBLE *M_1 = create_tensor_TYPE_DOUBLE(d_1);
for(size_t i=0; i<M0->dim->size;++i) { for(long i=0; i<M0->dim->size;++i) {
M0->x[i]=2 ; M0->x[i]=2 ;
M_0->x[i]=2 ; M_0->x[i]=2 ;
} }
for(size_t i=0; i<M1->dim->size;++i) { for(long i=0; i<M1->dim->size;++i) {
M1->x[i]=3; M1->x[i]=3;
M_1->x[i]=3; M_1->x[i]=3;
} }
@@ -2790,7 +2791,7 @@ TEST(scalProduct){
EXPECT_EQ_TYPE_DOUBLE(dotProd, M->x[0]); EXPECT_EQ_TYPE_DOUBLE(dotProd, M->x[0]);
// for(size_t i=0;i<M->dim->size;++i) // for(long i=0;i<M->dim->size;++i)
// EXPECT_EQ_TYPE_DOUBLE(M->x[i],MnO->x[i]); // EXPECT_EQ_TYPE_DOUBLE(M->x[i],MnO->x[i]);
+8 -8
View File
@@ -162,10 +162,10 @@ TEST(Coord_linear){
updateDim(D); updateDim(D);
size_t line=255; long line=255;
size_t *coord = CoordFromLin(line,D); long *coord = CoordFromLin(line,D);
for(size_t i=0; i<D->rank; ++i){ for(long i=0; i<D->rank; ++i){
LOG("coo[%ld]=%ld\n",i,coord[i]); LOG("coo[%ld]=%ld\n",i,coord[i]);
} }
@@ -186,7 +186,7 @@ TEST(signedCoord_linear){
long line=-255; long line=-255;
long *coord = signedCoordFromLin(line,D); long *coord = signedCoordFromLin(line,D);
for(size_t i=0; i<D->rank; ++i){ for(long i=0; i<D->rank; ++i){
LOG("coo[%ld]=%ld\n",i,coord[i]); LOG("coo[%ld]=%ld\n",i,coord[i]);
} }
@@ -206,7 +206,7 @@ TEST(signedCoord_linearSuccessif){
for(long line=-4; line < 4; ++line){ for(long line=-4; line < 4; ++line){
long *coord = signedCoordFromLin(line,D); long *coord = signedCoordFromLin(line,D);
for(size_t i=0; i<D->rank; ++i){ for(long i=0; i<D->rank; ++i){
LOG("coo[%ld]=%ld\n",i,coord[i]); LOG("coo[%ld]=%ld\n",i,coord[i]);
} }
@@ -226,7 +226,7 @@ TEST(sprint_dim){
updateDim(D); updateDim(D);
char *dimSTR =NULL; char *dimSTR =NULL;
size_t nb=sprint_dimension(&dimSTR, D); long nb=sprint_dimension(&dimSTR, D);
LOG(" nb char : %ld\n, dim print:\n%s\n",nb, dimSTR); LOG(" nb char : %ld\n, dim print:\n%s\n",nb, dimSTR);
@@ -245,7 +245,7 @@ TEST(incrment_dim){
updateDim(D); updateDim(D);
char *dimSTR =NULL; char *dimSTR =NULL;
size_t nb=sprint_dimension(&dimSTR, D); long nb=sprint_dimension(&dimSTR, D);
LOG(" nb char : %ld\n, dim print:\n%s\n",nb, dimSTR); LOG(" nb char : %ld\n, dim print:\n%s\n",nb, dimSTR);
@@ -263,7 +263,7 @@ TEST(incrment_dim){
TEST(list_shape_in_dim){ TEST(list_shape_in_dim){
list_shape_in_dim *l_p=NULL; list_shape_in_dim *l_p=NULL;
for(size_t i=1;i<5; ++i){ for(long i=1;i<5; ++i){
append_in_list_shape(&l_p, i); append_in_list_shape(&l_p, i);
} }
+333 -689
View File
File diff suppressed because it is too large Load Diff