Functions | |
FLA_Error | FLA_Apply_Q_UT_UD_internal_check (FLA_Side side, FLA_Trans trans, FLA_Store storev, FLA_Obj D, FLA_Obj T, FLA_Obj W, FLA_Obj C, FLA_Obj E, fla_apqutud_t *cntl) |
FLA_Error FLA_Apply_Q_UT_UD_internal_check | ( | FLA_Side | side, | |
FLA_Trans | trans, | |||
FLA_Store | storev, | |||
FLA_Obj | D, | |||
FLA_Obj | T, | |||
FLA_Obj | W, | |||
FLA_Obj | C, | |||
FLA_Obj | E, | |||
fla_apqutud_t * | cntl | |||
) |
References FLA_Check_conformal_dims(), FLA_Check_identical_object_elemtype(), FLA_Check_matrix_matrix_dims(), FLA_Check_null_pointer(), and FLA_Obj_elemtype().
Referenced by FLA_Apply_Q_UT_UD_internal().
00036 { 00037 FLA_Error e_val; 00038 00039 // Abort if the control structure is NULL. 00040 e_val = FLA_Check_null_pointer( ( void* ) cntl ); 00041 FLA_Check_error_code( e_val ); 00042 00043 // Verify that the object element types are identical. 00044 e_val = FLA_Check_identical_object_elemtype( D, T ); 00045 FLA_Check_error_code( e_val ); 00046 00047 e_val = FLA_Check_identical_object_elemtype( D, W ); 00048 FLA_Check_error_code( e_val ); 00049 00050 e_val = FLA_Check_identical_object_elemtype( D, C ); 00051 FLA_Check_error_code( e_val ); 00052 00053 e_val = FLA_Check_identical_object_elemtype( D, E ); 00054 FLA_Check_error_code( e_val ); 00055 00056 // Verify conformality between all the objects. 00057 if ( side == FLA_LEFT ) 00058 { 00059 if ( FLA_Obj_elemtype( D ) == FLA_MATRIX ) 00060 { 00061 e_val = FLA_Check_conformal_dims( FLA_NO_TRANSPOSE, D, T ); 00062 FLA_Check_error_code( e_val ); 00063 00064 e_val = FLA_Check_conformal_dims( FLA_NO_TRANSPOSE, C, W ); 00065 FLA_Check_error_code( e_val ); 00066 } 00067 else //FLA_Obj_elemtype( D ) == FLA_SCALAR 00068 { 00069 e_val = FLA_Check_matrix_matrix_dims( FLA_NO_TRANSPOSE, FLA_TRANSPOSE, E, C, D ); 00070 FLA_Check_error_code( e_val ); 00071 } 00072 00073 e_val = FLA_Check_matrix_matrix_dims( FLA_NO_TRANSPOSE, FLA_NO_TRANSPOSE, D, C, E ); 00074 FLA_Check_error_code( e_val ); 00075 00076 } 00077 else 00078 { 00079 FLA_Check_error_code( FLA_NOT_YET_IMPLEMENTED ); 00080 } 00081 00082 return FLA_SUCCESS; 00083 }