Compare commits

...

9 Commits

6 changed files with 615 additions and 750 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
+211 -133
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,14 +554,14 @@ 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");
tensor_TYPE_FLOAT *M=NULL; //tensor_TYPE_FLOAT *M=NULL;
tensor_TYPE_FLOAT *Mn=NULL; tensor_TYPE_FLOAT *Mn=NULL;
tensorProdNotOpt_TYPE_FLOAT(&Mn,M0,M1); tensorProdNotOpt_TYPE_FLOAT(&Mn,M0,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,13 +714,13 @@ 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");
tensor_TYPE_FLOAT *M=NULL; //tensor_TYPE_FLOAT *M=NULL;
tensor_TYPE_FLOAT *MnO=NULL; tensor_TYPE_FLOAT *MnO=NULL;
//tensorContractnProd_TYPE_FLOAT(&M, M0,M1,2); //tensorContractnProd_TYPE_FLOAT(&M, M0,M1,2);
@@ -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,13 +838,13 @@ 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");
tensor_TYPE_FLOAT *M=NULL; //tensor_TYPE_FLOAT *M=NULL;
tensor_TYPE_FLOAT *MnO=NULL; tensor_TYPE_FLOAT *MnO=NULL;
//tensorContractnProd_TYPE_FLOAT(&M, M0,M1,2); //tensorContractnProd_TYPE_FLOAT(&M, M0,M1,2);
@@ -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);
@@ -924,8 +925,8 @@ TEST(tensorContractnProd_TYPE_FLOATNoOpt3littleEndianFalse ){
dimension *d1=create_dim(3); dimension *d1=create_dim(3);
#if VALGRIND_ #if VALGRIND_
d0->shape[0]=5; d0->shape[0]=5;
d0->shape[1]=2; //3; d0->shape[1]=3; //3;
d0->shape[2]=3; d0->shape[2]=2;
d1->shape[0]=3; d1->shape[0]=3;
d1->shape[1]=2;//3; d1->shape[1]=2;//3;
@@ -953,16 +954,16 @@ 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*0.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*0.003 + 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");
tensor_TYPE_FLOAT *M=NULL; //tensor_TYPE_FLOAT *M=NULL;
tensor_TYPE_FLOAT *MnO=NULL; tensor_TYPE_FLOAT *MnO=NULL;
//PRECISION_TYPE_FLOAT = 100000;
//tensorContractnProd_TYPE_FLOAT(&M, M0,M1,2); //tensorContractnProd_TYPE_FLOAT(&MnO, M0,M1,2);
tensorContractnProdNotOpt_TYPE_FLOAT(&MnO, M0,M1,2); tensorContractnProdNotOpt_TYPE_FLOAT(&MnO, M0,M1,2);
float MMM0[d0->shape[0]][d0->shape[1]][d0->shape[2]]; float MMM0[d0->shape[0]][d0->shape[1]][d0->shape[2]];
@@ -971,8 +972,10 @@ 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;
MMM0[i0][i1][i2]=M0->x[signedLineFromCoord(coord3, d0)]; long z=signedLineFromCoord(coord3, d0);
//printf("M0[%ld][%ld][%ld] = %f \n",i0,i1,i2,MMM0[i0][i1][i2]); MMM0[i0][i1][i2]=M0->x[z];
//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]);
} }
} }
} }
@@ -983,7 +986,10 @@ 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;
MMM1[j0][j1][j2]=M1->x[signedLineFromCoord(coord23, d1)]; long z =signedLineFromCoord(coord23, d1);
MMM1[j0][j1][j2]=M1->x[z];
//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]);
} }
} }
} }
@@ -995,7 +1001,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){
MMMm[i0][j2] += MMM0[i0][i1][i2] * MMM1[i1][i2][j2]; MMMm[i0][j2] += MMM0[i0][i1][i2] * MMM1[i1][i2][j2];
//printf("MMMm[%ld][%ld][%ld][%ld][%ld] = %f \n",i0,i1,i2,j0,j1,MMMm[i0][i1][i2][j0][j1]); printf("[%ld] [%ld][%ld] [%ld] MMMm<> = %f \n",i0,i1,i2,j2,MMMm[i0][j2]);
} }
} }
} }
@@ -1009,12 +1015,16 @@ 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;
EXPECT_EQ_TYPE_FLOAT(MMMm[i0][j2], MnO->x[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[signedLineFromCoord(coord52, MnO->dim)] );
if(expected_EQ_TYPE_FLOAT(MMMm[i0][j2], MnO->x[signedLineFromCoord(coord52, MnO->dim)] ) == false){ //if(expected_EQ_TYPE_FLOAT(MMMm[i0][j2], MnO->x[signedLineFromCoord(coord52, MnO->dim)] ) == false)
if(expected_EQ_TYPE_FLOAT(MMMm[i0][j2], MnO->x[z] ) == false){
LOG("[ %ld, %ld] [%ld]\n",i0,j2, LOG("[ %ld, %ld] [%ld]\n",i0,j2,
signedLineFromCoord(coord52, MnO->dim) z //signedLineFromCoord(coord52, MnO->dim)
); );
printDebug_dimension(MnO->dim,"MnO");
} }
} }
@@ -1023,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);
@@ -1072,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");
@@ -1088,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);
@@ -1133,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");
@@ -1149,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);
@@ -1194,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");
@@ -1210,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);
@@ -1224,6 +1234,9 @@ TEST(tensorContractnProdOpt0_TYPE_FLOAT2 ){
TEST(tensorContractnProdThreadOpt0_TYPE_FLOAT2 ){ TEST(tensorContractnProdThreadOpt0_TYPE_FLOAT2 ){
//littleEndian=false;
//long int old_PRECISION_TYPE_FLOAT=PRECISION_TYPE_FLOAT;
//PRECISION_TYPE_FLOAT=1;
dimension *d0=create_dim(3); dimension *d0=create_dim(3);
dimension *d1=create_dim(3); dimension *d1=create_dim(3);
#if VALGRIND_ #if VALGRIND_
@@ -1256,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");
@@ -1272,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);
@@ -1281,7 +1294,9 @@ TEST(tensorContractnProdThreadOpt0_TYPE_FLOAT2 ){
free_tensor_TYPE_FLOAT(MnO); free_tensor_TYPE_FLOAT(MnO);
free_tensor_TYPE_FLOAT(M0); free_tensor_TYPE_FLOAT(M0);
free_tensor_TYPE_FLOAT(M1); free_tensor_TYPE_FLOAT(M1);
//PRECISION_TYPE_FLOAT = old_PRECISION_TYPE_FLOAT ;
//littleEndian=true;
} }
TEST(tensorContractnPro2dThreadOpt0_TYPE_FLOAT2 ){ TEST(tensorContractnPro2dThreadOpt0_TYPE_FLOAT2 ){
@@ -1317,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");
@@ -1333,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);
@@ -1378,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");
@@ -1394,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);
@@ -1441,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");
@@ -1457,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);
@@ -1494,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");
@@ -1510,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);
@@ -1550,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");
@@ -1566,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);
@@ -1607,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");
@@ -1623,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);
@@ -1669,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");
@@ -1685,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);
@@ -1730,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");
@@ -1746,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);
@@ -1792,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");
@@ -1801,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");
@@ -1810,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);
@@ -1851,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");
@@ -1860,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");
@@ -1874,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);
@@ -1919,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");
@@ -1928,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");
@@ -1937,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);
@@ -1982,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;
@@ -2036,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);
@@ -2094,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);
@@ -2186,7 +2201,7 @@ TEST(transpose_parseInput_unknownpart_to_tensor){
free_tensor_TYPE_FLOAT(t); free_tensor_TYPE_FLOAT(t);
free_tensor_TYPE_FLOAT(transpose); free_tensor_TYPE_FLOAT(transpose);
} }
TEST(transpose_input_to_OpT_Ranspose){ TEST(transpose_input_to_OpT0_Ranspose){
littleEndian=true; littleEndian=true;
char *input="[*,3]"\ char *input="[*,3]"\
"((1.1,1.2,1.3)"\ "((1.1,1.2,1.3)"\
@@ -2214,7 +2229,7 @@ TEST(transpose_input_to_OpT_Ranspose){
free_tensor_TYPE_FLOAT(transpose_Opt0); free_tensor_TYPE_FLOAT(transpose_Opt0);
} }
TEST(transpose_input_to_OpT_Ranspose2){ TEST(transpose_input_to_OpT0_Ranspose2){
littleEndian=true; littleEndian=true;
char *input="[*,4,3]"\ char *input="[*,4,3]"\
"(((1.11,1.12,1.13),(1.21,1.22,1.23),(1.31,1.32,1.33),(1.41,1.42,1.43)),"\ "(((1.11,1.12,1.13),(1.21,1.22,1.23),(1.31,1.32,1.33),(1.41,1.42,1.43)),"\
@@ -2247,6 +2262,69 @@ TEST(transpose_input_to_OpT_Ranspose2){
free_tensor_TYPE_FLOAT(transpose); free_tensor_TYPE_FLOAT(transpose);
free_tensor_TYPE_FLOAT(transpose_Opt0); free_tensor_TYPE_FLOAT(transpose_Opt0);
} }
TEST(transpose_input_to_OpT1_Ranspose){
littleEndian=true;
char *input="[*,3]"\
"((1.1,1.2,1.3)"\
"((2.1,2.2,2.3)"\
"((3.1,3.2,3.3)"\
"((4.1,4.2,4.3)"\
"((5.1,5.2,5.3)"\
"((6.1,6.2,6.3)"\
"(7.1,7.2,7.3)) ";
tensor_TYPE_FLOAT *t=parseInput_withDim_to_tensor_TYPE_FLOAT(input);
print_tensor_msg_TYPE_FLOAT(t," tensor from input" );
tensor_TYPE_FLOAT *transpose = transpose_notOpt_tensor_TYPE_FLOAT(t);
print_tensor_msg_TYPE_FLOAT(transpose," transpose from input" );
tensor_TYPE_FLOAT *transpose_Opt0 = transpose_Opt1_tensor_TYPE_FLOAT(t);
print_tensor_msg_TYPE_FLOAT(transpose_Opt0," transpose_Opt0 from input" );
EXPECT_ARRAY_EQ_TYPE_FLOAT(transpose->x,transpose->dim->size ,transpose_Opt0->x,transpose_Opt0->dim->size);
free_tensor_TYPE_FLOAT(t);
free_tensor_TYPE_FLOAT(transpose);
free_tensor_TYPE_FLOAT(transpose_Opt0);
}
TEST(transpose_input_to_OpT1_Ranspose2){
littleEndian=true;
char *input="[*,4,3]"\
"(((1.11,1.12,1.13),(1.21,1.22,1.23),(1.31,1.32,1.33),(1.41,1.42,1.43)),"\
"((2.11,2.12,2.13),(2.21,2.22,2.23),(2.31,2.32,2.33),(2.41,2.42,2.43)),"\
"((3.11,3.12,3.13),(3.21,3.22,3.23),(3.31,3.32,3.33),(3.41,3.42,3.43)),"\
"((4.11,4.12,4.13),(4.21,4.22,4.23),(4.31,4.32,4.33),(4.41,4.42,4.43)),"\
"((5.11,5.12,5.13),(5.21,5.22,5.23),(5.31,5.32,5.33),(5.41,5.42,5.43)),"\
"((6.11,6.12,6.13),(6.21,6.22,6.23),(6.31,6.32,6.33),(6.41,6.42,6.43)),"\
"((7.11,7.12,7.13),(7.21,7.22,7.23),(7.31,7.32,7.33),(7.41,7.42,7.43)),"\
"((8.11,8.12,8.13),(8.21,8.22,8.23),(8.31,8.32,8.33),(8.41,8.42,8.43)),"\
"((9.11,9.12,9.13),(9.21,9.22,9.23),(9.31,9.32,9.33),(9.41,9.42,9.43)),"\
"((10.11,10.12,10.13),(10.21,10.22,10.23),(10.31,10.32,10.33),(10.41,10.42,10.43)),"\
"((11.11,11.12,11.13),(11.21,11.22,11.23),(11.31,11.32,11.33),(11.41,11.42,11.43)),"\
"((12.11,12.12,12.13),(12.21,12.22,12.23),(12.31,12.32,12.33),(12.41,12.42,12.43)),"\
"((13.11,13.12,13.13),(13.21,13.22,13.23),(13.31,13.32,13.33),(13.41,13.42,13.43)))";
tensor_TYPE_FLOAT *t=parseInput_withDim_to_tensor_TYPE_FLOAT(input);
print_tensor_msg_TYPE_FLOAT(t," tensor from input" );
tensor_TYPE_FLOAT *transpose = transpose_notOpt_tensor_TYPE_FLOAT(t);
print_tensor_msg_TYPE_FLOAT(transpose," transpose from input" );
tensor_TYPE_FLOAT *transpose_Opt0 = transpose_Opt1_tensor_TYPE_FLOAT(t);
print_tensor_msg_TYPE_FLOAT(transpose_Opt0," transpose_Opt0 from input" );
EXPECT_ARRAY_EQ_TYPE_FLOAT(transpose->x,transpose->dim->size ,transpose_Opt0->x,transpose_Opt0->dim->size);
free_tensor_TYPE_FLOAT(t);
free_tensor_TYPE_FLOAT(transpose);
free_tensor_TYPE_FLOAT(transpose_Opt0);
}
TEST(shapeute_parseInput_unknownpart_to_tensor){ TEST(shapeute_parseInput_unknownpart_to_tensor){
littleEndian=true; littleEndian=true;
char *input="[*,3]"\ char *input="[*,3]"\
@@ -2500,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);
@@ -2636,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");
@@ -2648,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]);
@@ -2692,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;
} }
@@ -2713,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);
} }
+368 -602
View File
File diff suppressed because it is too large Load Diff