/* mpl header file for BLAS */ #define zero 0.0 #define one 1.0 #define MIN(a,b) (((a) < (b)) ? (a) : (b)) #define MAX(a,b) (((a) > (b)) ? (a) : (b)) #define ABS(a) (((a) < 0) ? -(a) : (a)) #define NBY(n) (( (n) + nyproc - 1 ) / nyproc) #define NBX(n) (( (n) + nxproc - 1 ) / nxproc) #define NB(n) (( (n) + nproc -1 ) / nproc) #define NFB(n) ((n)/nproc) #define ROW(i) (iyproc + (i) * nyproc) #define COL(j) (ixproc + (j) * nxproc) #define PE(y,x) ((y) *nxproc + (x)) #define SQUARE (nxproc == nyproc) #define ENDVEC(n) (iproc < ( (n) % nproc) ) #ifdef __STDMPL__ extern void mpl_saxpy( register int , register float , register plural float *, register plural float *); extern void mpl_rec_spsW( register plural float, register plural float, register plural float *, register plural float *, int, int ); extern void mpl_rec_spsN( register plural float, register plural float, register plural float *, register plural float *, int, int ); extern void mpl_scopy( register int , register plural float *, register plural float *); extern void mpl_sgemm1( int, int, int, float, plural float *, plural float *, plural float *); extern void mpl_sgemv1( int, int, float, plural float *, plural float *, float, plural float *); extern void mpl_sgemv2( int, int, float, plural float *, plural float *, float, plural float *); extern void mpl_sger( int, int, float, plural float *, plural float *, plural float *); extern void mpl_slrsolve( int, register int, register plural float, register plural float, plural float *, plural float *); extern void mpl_slssolve( register int, register int, register plural float, plural float *); extern void mpl_sscal( register int, register float, register plural float *); extern void mpl_sswap( register int, register plural float *, register plural float *); extern void mpl_stri_rln( register int, register int, register int, register plural float, register plural float, plural float *, plural float *); extern void mpl_stri_run( register int, register int, register int, plural float, plural float, plural float *, plural float *); extern void mpl_stri_sln( register int, register int, register int, register plural float, plural float *); extern void mpl_stri_sun( register int, register int, register int, register plural float, plural float *); extern void mpl_strsm_lon( int, int, int, plural float*, int, plural float *); extern void mpl_strsm_upn( int, int, int, plural float*, int, plural float *); extern void mpl_strsv_lo( int, int, int, plural float*, plural float *); extern void mpl_strsv_up( int, int, int, plural float *, plural float *); extern void mpl_sursolve( int, register int, register plural float, register plural float, plural float *, plural float *); extern void mpl_sussolve( int, register int, register plural float, plural float *); extern void mpl_isamax( int, plural float *, int *); extern void mpl_rec_smul( int, register plural float, register plural float, register plural float, register plural float, register plural float *, register plural float *, int, int, int); extern void mpl_sq_smul( int, plural float, plural float, plural float *, int, int, int); extern void mpl_sq_spsW( plural float, plural float *, int, int); extern void mpl_sq_spsN( plural float, plural float *, int, int); extern void mpl_daxpy( register int , register double , register plural double *, register plural double *); extern void mpl_rec_dpsW( register plural double, register plural double, register plural double *, register plural double *, int, int ); extern void mpl_rec_dpsN( register plural double, register plural double, register plural double *, register plural double *, int, int ); extern void mpl_dcopy( register int , register plural double *, register plural double *); extern void mpl_dgemm1( int, int, int, double, plural double *, plural double *, plural double *); extern void mpl_dgemv1( int, int, double, plural double *, plural double *, double, plural double *); extern void mpl_dgemv2( int, int, double, plural double *, plural double *, double, plural double *); extern void mpl_dger( int, int, double, plural double *, plural double *, plural double *); extern void mpl_dlrsolve( int, register int, register plural double, register plural double, plural double *, plural double *); extern void mpl_dlssolve( register int, register int, register plural double, plural double *); extern void mpl_dscal( register int, register double, register plural double *); extern void mpl_dswap( register int, register plural double *, register plural double *); extern void mpl_dtri_rln( register int, register int, register int, register plural double, register plural double, plural double *, plural double *); extern void mpl_dtri_run( register int, register int, register int, plural double, plural double, plural double *, plural double *); extern void mpl_dtri_sln( register int, register int, register int, register plural double, plural double *); extern void mpl_dtri_sun( register int, register int, register int, register plural double, plural double *); extern void mpl_dtrsm_lon( int, int, int, plural double*, int, plural double *); extern void mpl_dtrsm_upn( int, int, int, plural double*, int, plural double *); extern void mpl_dtrsv_lo( int, int, int, plural double*, plural double *); extern void mpl_dtrsv_up( int, int, int, plural double *, plural double *); extern void mpl_dursolve( int, register int, register plural double, register plural double, plural double *, plural double *); extern void mpl_dussolve( int, register int, register plural double, plural double *); extern void mpl_idamax( int, plural double *, int *); extern void mpl_rec_dmul( int, register plural double, register plural double, register plural double, register plural double, register plural double *, register plural double *, int, int, int); extern void mpl_sq_dmul( int, register plural double, register plural double, register plural double *, int, int, int); extern void mpl_sq_dpsW( register plural double, register plural double *, int, int); extern void mpl_sq_dpsN( register plural double, register plural double *, int, int); #else extern void mpl_daxpy(); extern void mpl_rec_dpsW(); extern void mpl_dcopy(); extern void mpl_dgemm1(); extern void mpl_dgemv1(); extern void mpl_dgemv2(); extern void mpl_dger(); extern void mpl_dlrsolve(); extern void mpl_dlssolve(); extern void mpl_dscal(); extern void mpl_dswap(); extern void mpl_rln(); extern void mpl_dtri_run(); extern void mpl_dtri_sln(); extern void mpl_dtri_sun(); extern void mpl_dtrsm_lon(); extern void mpl_dtrsm_upn(); extern void mpl_dtrsv_lo(); extern void mpl_dtrsv_up(); extern void mpl_dursolve(); extern void mpl_dussolve(); extern void mpl_idamax(); extern void mpl_rec_dmul(); extern void mpl_sq_dmul(); extern void mpl_sq_dpsW(); extern void mpl_sq_dpsN(); extern void mpl_rec_dpsN(); extern void mpl_saxpy(); extern void mpl_rec_spsW(); extern void mpl_scopy(); extern void mpl_sgemm1(); extern void mpl_sgemv1(); extern void mpl_sgemv2(); extern void mpl_sger(); extern void mpl_slrsolve(); extern void mpl_slssolve(); extern void mpl_sscal(); extern void mpl_sswap(); extern void mpl_rln(); extern void mpl_stri_run(); extern void mpl_stri_sln(); extern void mpl_stri_sun(); extern void mpl_strsm_lon(); extern void mpl_strsm_upn(); extern void mpl_strsv_lo(); extern void mpl_strsv_up(); extern void mpl_sursolve(); extern void mpl_sussolve(); extern void mpl_idamax(); extern void mpl_rec_smul(); extern void mpl_sq_smul(); extern void mpl_sq_spsW(); extern void mpl_sq_spsN(); extern void mpl_rec_spsN(); #endif