void Mjoin( PATL, f77hpmv ) ( const enum ATLAS_UPLO UPLO, const int N, const SCALAR ALPHA, const TYPE * A, const TYPE * X, const int INCX, const SCALAR BETA, TYPE * Y, const int INCY ) { #if defined( StringSunStyle ) #if defined( ATL_FunkyInts ) F77_INTEGER ONE = 1; #else int ONE = 1; #endif #elif defined( StringStructVal ) || defined( StringStructPtr ) F77_CHAR fuplo; #elif defined( StringCrayStyle ) F77_CHAR fuplo; #endif char cuplo; #ifdef ATL_FunkyInts const F77_INTEGER F77N = N, F77incx = INCX, F77incy = INCY; #else #define F77N N #define F77incx INCX #define F77incy INCY #endif #ifdef TCPLX TYPE alpha[2], beta[2]; *alpha = *ALPHA; alpha[1] = ALPHA[1]; *beta = *BETA; beta [1] = BETA [1]; #else TYPE alpha = ALPHA, beta = BETA; #endif if( UPLO == AtlasUpper ) cuplo = 'U'; else cuplo = 'L'; if( INCX < 0 ) X -= ( ( 1 - N ) * INCX ) SHIFT; if( INCY < 0 ) Y -= ( ( 1 - N ) * INCY ) SHIFT; #if defined( StringSunStyle ) F77hpmv( &cuplo, &F77N, SADD alpha, A, X, &F77incx, SADD beta, Y, &F77incy, ONE ); #elif defined( StringCrayStyle ) fuplo = ATL_C2F_TransChar( cuplo ); F77hpmv( fuplo, &F77N, SADD alpha, A, X, &F77incx, SADD beta, Y, &F77incy ); #elif defined( StringStructVal ) fuplo.len = 1; fuplo.cp = &cuplo; F77hpmv( fuplo, &F77N, SADD alpha, A, X, &F77incx, SADD beta, Y, &F77incy ); #elif defined( StringStructPtr ) fuplo.len = 1; fuplo.cp = &cuplo; F77hpmv( &fuplo, &F77N, SADD alpha, A, X, &F77incx, SADD beta, Y, &F77incy ); #else (void) fprintf( stderr, "\n\nF77/C interface not defined!!\n\n" ); exit( -1 ); #endif }
void Mjoin( PATL, f77gbmv ) ( const enum ATLAS_TRANS Trans, const int M, const int N, const int KL, const int KU, const SCALAR ALPHA, const TYPE * A, const int LDA, const TYPE * X, const int INCX, const SCALAR BETA, TYPE * Y, const int INCY ) { #if defined( StringSunStyle ) #if defined( ATL_FunkyInts ) F77_INTEGER ONE = 1; #else int ONE = 1; #endif #elif defined( StringStructVal ) || defined( StringStructPtr ) F77_CHAR ftran; #elif defined( StringCrayStyle ) F77_CHAR ftran; #endif char ctran; #ifdef ATL_FunkyInts const F77_INTEGER F77m = M, F77n = N, F77KL = KL, F77KU = KU, F77lda = LDA, F77incx = INCX, F77incy = INCY; F77_INTEGER F77M, F77N; #else #define F77m M #define F77n N #define F77KL KL #define F77KU KU #define F77lda LDA #define F77incx INCX #define F77incy INCY int F77M, F77N; #endif #ifdef TCPLX TYPE alpha[2], beta[2]; *alpha = *ALPHA; alpha[1] = ALPHA[1]; *beta = *BETA; beta [1] = BETA [1]; #else TYPE alpha = ALPHA, beta = BETA; #endif if( Trans == AtlasNoTrans ) { F77M = F77m; F77N = F77n; ctran = 'N'; } else { F77M = F77n; F77N = F77m; if( Trans == AtlasTrans ) ctran = 'T'; else ctran = 'C'; } if( INCX < 0 ) X -= ( ( 1 - N ) * INCX ) SHIFT; if( INCY < 0 ) Y -= ( ( 1 - M ) * INCY ) SHIFT; #if defined( StringSunStyle ) F77gbmv( &ctran, &F77M, &F77N, &F77KL, &F77KU, SADD alpha, A, &F77lda, X, &F77incx, SADD beta, Y, &F77incy, ONE ); #elif defined( StringCrayStyle ) ftran = ATL_C2F_TransChar( ctran ); F77gbmv( ftran, &F77M, &F77N, &F77KL, &F77KU, SADD alpha, A, &F77lda, X, &F77incx, SADD beta, Y, &F77incy ); #elif defined( StringStructVal ) ftran.len = 1; ftran.cp = &ctran; F77gbmv( ftran, &F77M, &F77N, &F77KL, &F77KU, SADD alpha, A, &F77lda, X, &F77incx, SADD beta, Y, &F77incy ); #elif defined( StringStructPtr ) ftran.len = 1; ftran.cp = &ctran; F77gbmv( &ftran, &F77M, &F77N, &F77KL, &F77KU, SADD alpha, A, &F77lda, X, &F77incx, SADD beta, Y, &F77incy ); #else (void) fprintf( stderr, "\n\nF77/C interface not defined!!\n\n" ); exit( -1 ); #endif }
void Mjoin( PATL, f77trmm ) ( const enum ATLAS_SIDE SIDE, const enum ATLAS_UPLO UPLO, const enum ATLAS_TRANS TRANS, const enum ATLAS_DIAG DIAG, const int M, const int N, const SCALAR ALPHA, const TYPE * A, const int LDA, TYPE * B, const int LDB ) { #if defined( StringSunStyle ) #if defined( ATL_FunkyInts ) F77_INTEGER ONE = 1; #else int ONE = 1; #endif #elif defined( StringStructVal ) || defined( StringStructPtr ) F77_CHAR fside; F77_CHAR fuplo; F77_CHAR ftran; F77_CHAR fdiag; #elif defined( StringCrayStyle ) F77_CHAR fside; F77_CHAR fuplo; F77_CHAR ftran; F77_CHAR fdiag; #endif char cside, cuplo, ctran, cdiag; #ifdef ATL_FunkyInts const F77_INTEGER F77M = M, F77N = N, F77lda = LDA, F77ldb = LDB; #else #define F77M M #define F77N N #define F77lda LDA #define F77ldb LDB #endif #ifdef TCPLX TYPE alpha[2]; *alpha = *ALPHA; alpha[1] = ALPHA[1]; #else TYPE alpha = ALPHA; #endif if( TRANS == AtlasNoTrans ) ctran = 'N'; else if( TRANS == AtlasTrans ) ctran = 'T'; else ctran = 'C'; if( SIDE == AtlasRight ) cside = 'R'; else cside = 'L'; if( UPLO == AtlasLower ) cuplo = 'L'; else cuplo = 'U'; if( DIAG == AtlasUnit ) cdiag = 'U'; else cdiag = 'N'; #if defined( StringSunStyle ) F77trmm( &cside, &cuplo, &ctran, &cdiag, &F77M, &F77N, SADD alpha, A, &F77lda, B, &F77ldb, ONE, ONE, ONE, ONE ); #elif defined( StringCrayStyle ) fside = ATL_C2F_TransChar( cside ); fuplo = ATL_C2F_TransChar( cuplo ); ftran = ATL_C2F_TransChar( ctran ); fdiag = ATL_C2F_TransChar( cdiag ); F77trmm( fside, fuplo, ftran, fdiag, &F77M, &F77N, SADD alpha, A, &F77lda, B, &F77ldb ); #elif defined( StringStructVal ) fside.len = 1; fside.cp = &cside; fuplo.len = 1; fuplo.cp = &cuplo; ftran.len = 1; ftran.cp = &ctran; fdiag.len = 1; fdiag.cp = &cdiag; F77trmm( fside, fuplo, ftran, fdiag, &F77M, &F77N, SADD alpha, A, &F77lda, B, &F77ldb ); #elif defined( StringStructPtr ) fside.len = 1; fside.cp = &cside; fuplo.len = 1; fuplo.cp = &cuplo; ftran.len = 1; ftran.cp = &ctran; fdiag.len = 1; fdiag.cp = &cdiag; F77trmm( &fside, &fuplo, &ftran, &fdiag, &F77M, &F77N, SADD alpha, A, &F77lda, B, &F77ldb ); #else (void) fprintf( stderr, "\n\nF77/C interface not defined!!\n\n" ); exit( -1 ); #endif }
void Mjoin( PATL, f77herk ) ( const enum ATLAS_UPLO UPLO, const enum ATLAS_TRANS TRANS, const int N, const int K, const TYPE ALPHA, const TYPE * A, const int LDA, const TYPE BETA, TYPE * C, const int LDC ) { #if defined( StringSunStyle ) #if defined( ATL_FunkyInts ) F77_INTEGER ONE = 1; #else int ONE = 1; #endif #elif defined( StringStructVal ) || defined( StringStructPtr ) F77_CHAR fuplo; F77_CHAR ftran; #elif defined( StringCrayStyle ) F77_CHAR fuplo; F77_CHAR ftran; #endif char cuplo, ctran; #ifdef ATL_FunkyInts const F77_INTEGER F77N = N, F77K = K, F77lda = LDA, F77ldc = LDC; #else #define F77N N #define F77K K #define F77lda LDA #define F77ldc LDC #endif TYPE alpha = ALPHA, beta = BETA; if( UPLO == AtlasLower ) cuplo = 'L'; else cuplo = 'U'; if( TRANS == AtlasNoTrans ) ctran = 'N'; else ctran = 'C'; #if defined( StringSunStyle ) F77herk( &cuplo, &ctran, &F77N, &F77K, &alpha, A, &F77lda, &beta, C, &F77ldc, ONE, ONE ); #elif defined( StringCrayStyle ) fuplo = ATL_C2F_TransChar( cuplo ); ftran = ATL_C2F_TransChar( ctran ); F77herk( fuplo, ftran, &F77N, &F77K, &alpha, A, &F77lda, &beta, C, &F77ldc ); #elif defined( StringStructVal ) fuplo.len = 1; fuplo.cp = &cuplo; ftran.len = 1; ftran.cp = &ctran; F77herk( fuplo, ftran, &F77N, &F77K, &alpha, A, &F77lda, &beta, C, &F77ldc ); #elif defined( StringStructPtr ) fuplo.len = 1; fuplo.cp = &cuplo; ftran.len = 1; ftran.cp = &ctran; F77herk( &fuplo, &ftran, &F77N, &F77K, &alpha, A, &F77lda, &beta, C, &F77ldc ); #else (void) fprintf( stderr, "\n\nF77/C interface not defined!!\n\n" ); exit( -1 ); #endif }
void Mjoin( PATL, f77tpmv ) ( const enum ATLAS_UPLO UPLO, const enum ATLAS_TRANS TRANS, const enum ATLAS_DIAG DIAG, const int N, const TYPE * A, TYPE * X, const int INCX ) { #if defined( StringSunStyle ) #if defined( ATL_FunkyInts ) F77_INTEGER ONE = 1; #else int ONE = 1; #endif #elif defined( StringStructVal ) || defined( StringStructPtr ) F77_CHAR fuplo, ftran, fdiag; #elif defined( StringCrayStyle ) F77_CHAR fuplo, ftran, fdiag; #endif char cuplo, ctran, cdiag; #ifdef ATL_FunkyInts const F77_INTEGER F77N = N, F77incx = INCX; #else #define F77N N #define F77incx INCX #endif if( UPLO == AtlasUpper ) cuplo = 'U'; else cuplo = 'L'; if( DIAG == AtlasNonUnit ) cdiag = 'N'; else cdiag = 'U'; if( TRANS == AtlasNoTrans ) ctran = 'N'; else if( TRANS == AtlasTrans ) ctran = 'T'; else ctran = 'C'; if( INCX < 0 ) X -= ( ( 1 - N ) ) * INCX SHIFT; #if defined(StringSunStyle) F77tpmv( &cuplo, &ctran, &cdiag, &F77N, A, X, &F77incx, ONE, ONE, ONE ); #elif defined(StringCrayStyle) ftran = ATL_C2F_TransChar( ctran ); fdiag = ATL_C2F_TransChar( cdiag ); fuplo = ATL_C2F_TransChar( cuplo ); F77tpmv( fuplo, ftran, fdiag, &F77N, A, X, &F77incx ); #elif defined(StringStructVal) fuplo.len = 1; fuplo.cp = &cuplo; ftran.len = 1; ftran.cp = &ctran; fdiag.len = 1; fdiag.cp = &cdiag; F77tpmv( fuplo, ftran, fdiag, &F77N, A, X, &F77incx ); #elif defined(StringStructPtr) fuplo.len = 1; fuplo.cp = &cuplo; F77tpmv( &fuplo, &ftran, &fdiag, &F77N, A, X, &F77incx ); ftran.len = 1; ftran.cp = &ctran; fdiag.len = 1; fdiag.cp = &cdiag; #else (void) fprintf( stderr, "\n\nF77/C interface not defined!!\n\n" ); exit(-1); #endif }
void Mjoin( PATL, f77hemm ) ( const enum ATLAS_SIDE SIDE, const enum ATLAS_UPLO UPLO, const int M, const int N, const SCALAR ALPHA, const TYPE * A, const int LDA, const TYPE * B, const int LDB, const SCALAR BETA, TYPE * C, const int LDC ) { #if defined( StringSunStyle ) #if defined( ATL_FunkyInts ) F77_INTEGER ONE = 1; #else int ONE = 1; #endif #elif defined( StringStructVal ) || defined( StringStructPtr ) F77_CHAR fside; F77_CHAR fuplo; #elif defined( StringCrayStyle ) F77_CHAR fside; F77_CHAR fuplo; #endif char cside, cuplo; #ifdef ATL_FunkyInts const F77_INTEGER F77M = M, F77N = N, F77lda = LDA, F77ldb = LDB, F77ldc = LDC; #else #define F77M M #define F77N N #define F77lda LDA #define F77ldb LDB #define F77ldc LDC #endif #ifdef TCPLX TYPE alpha[2], beta[2]; *alpha = *ALPHA; alpha[1] = ALPHA[1]; *beta = *BETA; beta [1] = BETA [1]; #else TYPE alpha = ALPHA, beta = BETA; #endif if( SIDE == AtlasRight ) cside = 'R'; else cside = 'L'; if( UPLO == AtlasLower ) cuplo = 'L'; else cuplo = 'U'; #if defined( StringSunStyle ) F77hemm( &cside, &cuplo, &F77M, &F77N, SADD alpha, A, &F77lda, B, &F77ldb, SADD beta, C, &F77ldc, ONE, ONE ); #elif defined( StringCrayStyle ) fside = ATL_C2F_TransChar( cside ); fuplo = ATL_C2F_TransChar( cuplo ); F77hemm( fside, fuplo, &F77M, &F77N, SADD alpha, A, &F77lda, B, &F77ldb, SADD beta, C, &F77ldc ); #elif defined( StringStructVal ) fside.len = 1; fside.cp = &cside; fuplo.len = 1; fuplo.cp = &cuplo; F77hemm( fside, fuplo, &F77M, &F77N, SADD alpha, A, &F77lda, B, &F77ldb, SADD beta, C, &F77ldc ); #elif defined( StringStructPtr ) fside.len = 1; fside.cp = &cside; fuplo.len = 1; fuplo.cp = &cuplo; F77hemm( &fside, &fuplo, &F77M, &F77N, SADD alpha, A, &F77lda, B, &F77ldb, SADD beta, C, &F77ldc ); #else (void) fprintf( stderr, "\n\nF77/C interface not defined!!\n\n" ); exit( -1 ); #endif }