Functions | |
FLA_Error | FLA_Her2k (FLA_Uplo uplo, FLA_Trans trans, FLA_Obj alpha, FLA_Obj A, FLA_Obj B, FLA_Obj beta, FLA_Obj C) |
void FLA_F2C() | fla_her2k_f (F_INT *uplo, F_INT *trans, F_INT *alpha, F_INT *A, F_INT *B, F_INT *beta, F_INT *C, F_INT *IERROR) |
Variables | |
fla_her2k_t * | fla_her2k_cntl_ip |
fla_her2k_t * | fla_her2k_cntl_op |
fla_her2k_t * | fla_her2k_cntl_sq |
fla_blocksize_t * | fla_her2k_var3_bsize |
fla_blocksize_t * | fla_her2k_var9_bsize |
FLA_Error FLA_Her2k | ( | FLA_Uplo | uplo, | |
FLA_Trans | trans, | |||
FLA_Obj | alpha, | |||
FLA_Obj | A, | |||
FLA_Obj | B, | |||
FLA_Obj | beta, | |||
FLA_Obj | C | |||
) |
References FLA_Blocksize_extract(), FLA_Check_error_level(), FLA_Her2k_check(), FLA_Her2k_external(), FLA_Her2k_internal(), FLA_Obj_datatype(), FLA_Obj_length(), and FLA_Obj_width().
Referenced by fla_her2k_f().
00042 { 00043 FLA_Error r_val = FLA_SUCCESS; 00044 #ifdef FLA_ENABLE_BLAS3_FRONT_END_CNTL_TREES 00045 FLA_Datatype datatype; 00046 int k_AB, m_AB; 00047 int FLA_HER2K_VAR3_BLOCKSIZE; 00048 int FLA_HER2K_VAR9_BLOCKSIZE; 00049 #endif 00050 00051 // Check parameters. 00052 if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING ) 00053 FLA_Her2k_check( uplo, trans, alpha, A, B, beta, C ); 00054 00055 #ifdef FLA_ENABLE_BLAS3_FRONT_END_CNTL_TREES 00056 // Determine the datatype of the operation. 00057 datatype = FLA_Obj_datatype( A ); 00058 00059 // Extract the appropriate blocksize for the given datatype. 00060 FLA_HER2K_VAR3_BLOCKSIZE = FLA_Blocksize_extract( datatype, fla_her2k_var3_bsize ); 00061 FLA_HER2K_VAR9_BLOCKSIZE = FLA_Blocksize_extract( datatype, fla_her2k_var9_bsize ); 00062 00063 // Determine the dimension of C. 00064 m_AB = FLA_Obj_length( C ); 00065 00066 // Determine the dimensions of A and B after transposition. 00067 if ( trans == FLA_NO_TRANSPOSE ) 00068 k_AB = FLA_Obj_width( A ); 00069 else 00070 k_AB = FLA_Obj_length( A ); 00071 00072 // Invoke FLA_Her2k_internal() with the appropriate control tree. 00073 if ( FLA_HER2K_VAR3_BLOCKSIZE < m_AB && FLA_HER2K_VAR9_BLOCKSIZE < k_AB ) 00074 { 00075 r_val = FLA_Her2k_internal( uplo, trans, alpha, A, B, beta, C, fla_her2k_cntl_sq ); 00076 } 00077 else if ( FLA_HER2K_VAR3_BLOCKSIZE < m_AB && k_AB <= FLA_HER2K_VAR9_BLOCKSIZE ) 00078 { 00079 r_val = FLA_Her2k_internal( uplo, trans, alpha, A, B, beta, C, fla_her2k_cntl_op ); 00080 } 00081 else if ( m_AB <= FLA_HER2K_VAR3_BLOCKSIZE && FLA_HER2K_VAR9_BLOCKSIZE < k_AB ) 00082 { 00083 r_val = FLA_Her2k_internal( uplo, trans, alpha, A, B, beta, C, fla_her2k_cntl_ip ); 00084 } 00085 else if ( m_AB <= FLA_HER2K_VAR3_BLOCKSIZE && k_AB <= FLA_HER2K_VAR9_BLOCKSIZE ) 00086 { 00087 r_val = FLA_Her2k_external( uplo, trans, alpha, A, B, beta, C ); 00088 } 00089 #else 00090 r_val = FLA_Her2k_external( uplo, trans, alpha, A, B, beta, C ); 00091 #endif 00092 00093 return r_val; 00094 }
void FLA_F2C() fla_her2k_f | ( | F_INT * | uplo, | |
F_INT * | trans, | |||
F_INT * | alpha, | |||
F_INT * | A, | |||
F_INT * | B, | |||
F_INT * | beta, | |||
F_INT * | C, | |||
F_INT * | IERROR | |||
) |