/*-------------------------------------------------------------- BLAS/LAPACK-like subroutines used by the integration algorithms It is recommended to replace them by calls to the optimized BLAS/LAPACK library for your machine (C) Adrian Sandu, Aug. 2004 --------------------------------------------------------------*/ #define ZERO (KPP_REAL)0.0 #define ONE (KPP_REAL)1.0 #define HALF (KPP_REAL)0.5 #define TWO (KPP_REAL)2.0 #define MOD(A,B) (int)((A)%(B)) /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ void WCOPY(int N, KPP_REAL X[], int incX, KPP_REAL Y[], int incY) /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ copies a vector, x, to a vector, y: y <- x only for incX=incY=1 after BLAS replace this by the function from the optimized BLAS implementation: CALL SCOPY(N,X,1,Y,1) or CALL DCOPY(N,X,1,Y,1) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ { int i, M; if (N <= 0) return; M = MOD(N,8); if( M != 0 ) { for ( i = 0; i < M; i++ ) Y[i] = X[i]; if( N < 8 ) return; } /* end if */ for ( i = M; i