int main() { struct timespec tstart, tend; int m; int DIM=10000+1; int MM=4000; #ifdef try_TS if ( clock_gettime(CLOCK_MONOTONIC, &tstart)!=0 ) exit(1); TS_make(DIM,MM,0.5); if ( clock_gettime(CLOCK_MONOTONIC, &tend)!=0 ) exit(1); printf("TS_make(%d,%d) took %lf ms\n", DIM, MM, timespecDiff(&tend, &tstart)/1.0e6); #endif if ( clock_gettime(CLOCK_MONOTONIC, &tstart)!=0 ) exit(1); S_make(DIM,MM,0.5); if ( clock_gettime(CLOCK_MONOTONIC, &tend)!=0 ) exit(1); printf("S_make(%d,%d) took %lf ms\n", DIM, MM, timespecDiff(&tend, &tstart)/1.0e6); fS_make(0.5); if ( clock_gettime(CLOCK_MONOTONIC, &tstart)!=0 ) exit(1); T_make(DIM,MM,0.5); if ( clock_gettime(CLOCK_MONOTONIC, &tend)!=0 ) exit(1); printf("T_make(%d,%d) took %lf ms\n", DIM, MM, timespecDiff(&tend, &tstart)/1.0e6); fT_make(DIM,MM,0.5); for (m=10; m<MM; m+=10) printf("(%d,%d): S=%10lg fS=%10g T=%10lg fT=%10g\n", DIM-1, m, exp(S_safe(DIM-1,m)-S_safe(DIM-1,m-1)), exp(fS_safe(DIM-1,m)-fS_safe(DIM-1,m-1)), T_V(DIM-1,m), fT_V(DIM-1,m) ); #ifdef try_TS for (m=10; m<MM; m+=10) printf("(%d,%d): S=%10lg TS=%10lg tbl=%10lg\n", DIM-1, m, S_safe(DIM-1,m), TS_safe(DIM-1,m), TStbl[m-2][DIM-2] ); #endif return 1; }
// tests integration operator [S] void test_S(void) { double *S; double *f1; int len_NBSCHTYPE = 2; int NBSCHTYPE[len_NBSCHTYPE]; NBSCHTYPE[0] = 3; NBSCHTYPE[1] = 3; int n = 5; int z = 2; int INTSCHTYPE = 2; //obtaining the operator //S_op(n, z, NBSCHTYPE, len_NBSCHTYPE, INTSCHTYPE, &S, &f1, 1); S_safe(n,z, NBSCHTYPE, len_NBSCHTYPE, INTSCHTYPE, &S, &f1); //printing S and f1 print_1d_matrix("S", S, n*z, n*z); print_1d_matrix("f1", f1, n*z, z); // exit }