FLA_Error FLA_QR2_UT_check( FLA_Obj B, FLA_Obj D, FLA_Obj T ) { FLA_Error e_val; e_val = FLA_Check_floating_object( B ); FLA_Check_error_code( e_val ); e_val = FLA_Check_nonconstant_object( B ); FLA_Check_error_code( e_val ); e_val = FLA_Check_identical_object_datatype( B, D ); FLA_Check_error_code( e_val ); e_val = FLA_Check_identical_object_datatype( B, T ); FLA_Check_error_code( e_val ); e_val = FLA_Check_square( B ); FLA_Check_error_code( e_val ); e_val = FLA_Check_matrix_matrix_dims( FLA_NO_TRANSPOSE, FLA_NO_TRANSPOSE, D, B, D ); FLA_Check_error_code( e_val ); e_val = FLA_Check_matrix_matrix_dims( FLA_NO_TRANSPOSE, FLA_NO_TRANSPOSE, T, B, T ); FLA_Check_error_code( e_val ); return FLA_SUCCESS; }
FLA_Error FLA_Herk_internal_check( FLA_Uplo uplo, FLA_Trans trans, FLA_Obj alpha, FLA_Obj A, FLA_Obj beta, FLA_Obj C, fla_herk_t* cntl ) { FLA_Error e_val; // Abort if the control structure is NULL. e_val = FLA_Check_null_pointer( ( void* ) cntl ); FLA_Check_error_code( e_val ); // Verify that the object element types are identical. e_val = FLA_Check_identical_object_elemtype( A, C ); FLA_Check_error_code( e_val ); // Verify conformality between all the objects. This check works regardless // of whether the element type is FLA_MATRIX or FLA_SCALAR because the // element length and width are used instead of scalar length and width. if ( trans == FLA_NO_TRANSPOSE ) { e_val = FLA_Check_matrix_matrix_dims( FLA_NO_TRANSPOSE, FLA_TRANSPOSE, A, A, C ); FLA_Check_error_code( e_val ); } else { e_val = FLA_Check_matrix_matrix_dims( FLA_TRANSPOSE, FLA_NO_TRANSPOSE, A, A, C ); FLA_Check_error_code( e_val ); } return FLA_SUCCESS; }
FLA_Error FLA_Apply_QUD_UT_check( FLA_Side side, FLA_Trans trans, FLA_Direct direct, FLA_Store storev, FLA_Obj T, FLA_Obj W, FLA_Obj R, FLA_Obj U, FLA_Obj C, FLA_Obj V, FLA_Obj D ) { FLA_Error e_val; e_val = FLA_Check_valid_leftright_side( side ); FLA_Check_error_code( e_val ); e_val = FLA_Check_valid_trans( trans ); FLA_Check_error_code( e_val ); e_val = FLA_Check_valid_direct( direct ); FLA_Check_error_code( e_val ); e_val = FLA_Check_valid_storev( storev ); FLA_Check_error_code( e_val ); e_val = FLA_Check_floating_object( R ); FLA_Check_error_code( e_val ); e_val = FLA_Check_nonconstant_object( R ); FLA_Check_error_code( e_val ); e_val = FLA_Check_identical_object_datatype( R, T ); FLA_Check_error_code( e_val ); e_val = FLA_Check_identical_object_datatype( R, W ); FLA_Check_error_code( e_val ); e_val = FLA_Check_identical_object_datatype( R, U ); FLA_Check_error_code( e_val ); e_val = FLA_Check_identical_object_datatype( R, C ); FLA_Check_error_code( e_val ); e_val = FLA_Check_identical_object_datatype( R, V ); FLA_Check_error_code( e_val ); e_val = FLA_Check_identical_object_datatype( R, D ); FLA_Check_error_code( e_val ); if ( side == FLA_LEFT ) { e_val = FLA_Check_object_width_equals( T, FLA_Obj_width( U ) ); FLA_Check_error_code( e_val ); e_val = FLA_Check_object_width_equals( W, FLA_Obj_width( R ) ); FLA_Check_error_code( e_val ); e_val = FLA_Check_matrix_matrix_dims( FLA_NO_TRANSPOSE, FLA_NO_TRANSPOSE, U, R, C ); FLA_Check_error_code( e_val ); e_val = FLA_Check_matrix_matrix_dims( FLA_NO_TRANSPOSE, FLA_NO_TRANSPOSE, V, R, D ); FLA_Check_error_code( e_val ); } else { } return FLA_SUCCESS; }
FLA_Error FLA_Trmmsx_check( FLA_Side side, FLA_Uplo uplo, FLA_Trans trans, FLA_Diag diag, FLA_Obj alpha, FLA_Obj A, FLA_Obj B, FLA_Obj beta, FLA_Obj C ) { FLA_Error e_val; e_val = FLA_Check_valid_leftright_side( side ); FLA_Check_error_code( e_val ); e_val = FLA_Check_valid_uplo( uplo ); FLA_Check_error_code( e_val ); e_val = FLA_Check_valid_trans( trans ); FLA_Check_error_code( e_val ); e_val = FLA_Check_valid_diag( diag ); FLA_Check_error_code( e_val ); e_val = FLA_Check_floating_object( A ); FLA_Check_error_code( e_val ); e_val = FLA_Check_nonconstant_object( A ); FLA_Check_error_code( e_val ); e_val = FLA_Check_identical_object_datatype( A, B ); FLA_Check_error_code( e_val ); e_val = FLA_Check_identical_object_datatype( A, C ); FLA_Check_error_code( e_val ); e_val = FLA_Check_consistent_object_datatype( A, alpha ); FLA_Check_error_code( e_val ); e_val = FLA_Check_consistent_object_datatype( A, beta ); FLA_Check_error_code( e_val ); e_val = FLA_Check_if_scalar( alpha ); FLA_Check_error_code( e_val ); e_val = FLA_Check_if_scalar( beta ); FLA_Check_error_code( e_val ); e_val = FLA_Check_square( A ); FLA_Check_error_code( e_val ); if ( side == FLA_LEFT ) { e_val = FLA_Check_matrix_matrix_dims( FLA_NO_TRANSPOSE, FLA_NO_TRANSPOSE, A, B, C ); FLA_Check_error_code( e_val ); } else { e_val = FLA_Check_matrix_matrix_dims( FLA_NO_TRANSPOSE, FLA_NO_TRANSPOSE, B, A, C ); FLA_Check_error_code( e_val ); } return FLA_SUCCESS; }
FLA_Error FLA_LU_piv_solve_check( FLA_Obj A, FLA_Obj p, FLA_Obj B, FLA_Obj X ) { FLA_Error e_val; e_val = FLA_Check_floating_object( A ); FLA_Check_error_code( e_val ); e_val = FLA_Check_nonconstant_object( A ); FLA_Check_error_code( e_val ); e_val = FLA_Check_identical_object_datatype( A, B ); FLA_Check_error_code( e_val ); e_val = FLA_Check_identical_object_datatype( A, X ); FLA_Check_error_code( e_val ); e_val = FLA_Check_int_object( p ); FLA_Check_error_code( e_val ); e_val = FLA_Check_square( A ); FLA_Check_error_code( e_val ); e_val = FLA_Check_col_vector( p ); FLA_Check_error_code( e_val ); e_val = FLA_Check_vector_dim_min( p, FLA_Obj_min_dim( A ) ); FLA_Check_error_code( e_val ); e_val = FLA_Check_matrix_matrix_dims( FLA_NO_TRANSPOSE, FLA_NO_TRANSPOSE, A, X, B ); FLA_Check_error_code( e_val ); return FLA_SUCCESS; }
FLA_Error FLA_QR_UT_solve_check( FLA_Obj A, FLA_Obj T, FLA_Obj B, FLA_Obj X ) { FLA_Error e_val; e_val = FLA_Check_floating_object( A ); FLA_Check_error_code( e_val ); e_val = FLA_Check_nonconstant_object( A ); FLA_Check_error_code( e_val ); e_val = FLA_Check_identical_object_datatype( A, T ); FLA_Check_error_code( e_val ); e_val = FLA_Check_identical_object_datatype( A, B ); FLA_Check_error_code( e_val ); e_val = FLA_Check_identical_object_datatype( A, X ); FLA_Check_error_code( e_val ); e_val = FLA_Check_object_width_equals( T, FLA_Obj_min_dim( A ) ); FLA_Check_error_code( e_val ); e_val = FLA_Check_matrix_matrix_dims( FLA_NO_TRANSPOSE, FLA_NO_TRANSPOSE, A, X, B ); FLA_Check_error_code( e_val ); e_val = FLA_Check_object_length_min( A, FLA_Obj_width( A ) ); FLA_Check_error_code( e_val ); return FLA_SUCCESS; }
FLA_Error FLA_Trsm_internal_check( FLA_Side side, FLA_Uplo uplo, FLA_Trans transa, FLA_Diag diag, FLA_Obj alpha, FLA_Obj A, FLA_Obj B, fla_trsm_t* cntl ) { FLA_Error e_val; // Abort if the control structure is NULL. e_val = FLA_Check_null_pointer( ( void* ) cntl ); FLA_Check_error_code( e_val ); // Verify that the object element types are identical. e_val = FLA_Check_identical_object_elemtype( A, B ); FLA_Check_error_code( e_val ); // Verify conformality between all the objects. This check works regardless // of whether the element type is FLA_MATRIX or FLA_SCALAR because the // element length and width are used instead of scalar length and width. if ( side == FLA_LEFT ) { //e_val = FLA_Check_matrix_matrix_dims( FLA_NO_TRANSPOSE, FLA_NO_TRANSPOSE, A, B, B ); //FLA_Check_error_code( e_val ); e_val = FLA_Check_object_length_equals( A, FLA_Obj_length( B ) ); FLA_Check_error_code( e_val ); } else { e_val = FLA_Check_matrix_matrix_dims( FLA_NO_TRANSPOSE, FLA_NO_TRANSPOSE, B, A, B ); FLA_Check_error_code( e_val ); } return FLA_SUCCESS; }
FLA_Error FLA_Chol_solve_check( FLA_Uplo uplo, FLA_Obj A, FLA_Obj B, FLA_Obj X ) { FLA_Error e_val; e_val = FLA_Check_valid_uplo( uplo ); FLA_Check_error_code( e_val ); e_val = FLA_Check_floating_object( A ); FLA_Check_error_code( e_val ); e_val = FLA_Check_nonconstant_object( A ); FLA_Check_error_code( e_val ); e_val = FLA_Check_identical_object_datatype( A, B ); FLA_Check_error_code( e_val ); e_val = FLA_Check_identical_object_datatype( A, X ); FLA_Check_error_code( e_val ); e_val = FLA_Check_square( A ); FLA_Check_error_code( e_val ); e_val = FLA_Check_matrix_matrix_dims( FLA_NO_TRANSPOSE, FLA_NO_TRANSPOSE, A, X, B ); FLA_Check_error_code( e_val ); return FLA_SUCCESS; }
FLA_Error FLA_CAQR_UT_inc_solve_check( dim_t p, FLA_Obj A, FLA_Obj ATW, FLA_Obj R, FLA_Obj RTW, FLA_Obj B, FLA_Obj X ) { FLA_Error e_val; e_val = FLA_Check_floating_object( A ); FLA_Check_error_code( e_val ); e_val = FLA_Check_nonconstant_object( A ); FLA_Check_error_code( e_val ); e_val = FLA_Check_identical_object_datatype( A, ATW ); FLA_Check_error_code( e_val ); e_val = FLA_Check_identical_object_datatype( A, R ); FLA_Check_error_code( e_val ); e_val = FLA_Check_identical_object_datatype( A, RTW ); FLA_Check_error_code( e_val ); e_val = FLA_Check_identical_object_datatype( A, B ); FLA_Check_error_code( e_val ); e_val = FLA_Check_identical_object_datatype( A, X ); FLA_Check_error_code( e_val ); e_val = FLA_Check_conformal_dims( FLA_NO_TRANSPOSE, A, ATW ); FLA_Check_error_code( e_val ); e_val = FLA_Check_conformal_dims( FLA_NO_TRANSPOSE, A, R ); FLA_Check_error_code( e_val ); e_val = FLA_Check_conformal_dims( FLA_NO_TRANSPOSE, A, RTW ); FLA_Check_error_code( e_val ); e_val = FLA_Check_matrix_matrix_dims( FLA_NO_TRANSPOSE, FLA_NO_TRANSPOSE, A, X, B ); FLA_Check_error_code( e_val ); e_val = FLA_Check_object_length_min( A, FLA_Obj_width( A ) * p ); FLA_Check_error_code( e_val ); return FLA_SUCCESS; }
FLA_Error FLA_UDdate_UT_inc_solve_check( FLA_Obj R, FLA_Obj bR, FLA_Obj x ) { FLA_Error e_val; e_val = FLA_Check_floating_object( R ); FLA_Check_error_code( e_val ); e_val = FLA_Check_nonconstant_object( R ); FLA_Check_error_code( e_val ); e_val = FLA_Check_identical_object_datatype( R, bR ); FLA_Check_error_code( e_val ); e_val = FLA_Check_identical_object_datatype( R, x ); FLA_Check_error_code( e_val ); e_val = FLA_Check_square( R ); FLA_Check_error_code( e_val ); e_val = FLA_Check_matrix_matrix_dims( FLA_NO_TRANSPOSE, FLA_NO_TRANSPOSE, R, x, bR ); FLA_Check_error_code( e_val ); return FLA_SUCCESS; }
FLA_Error FLA_Apply_Q2_UT_check( FLA_Side side, FLA_Trans trans, FLA_Direct direct, FLA_Store storev, FLA_Obj D, FLA_Obj T, FLA_Obj W, FLA_Obj C, FLA_Obj E ) { FLA_Error e_val; e_val = FLA_Check_valid_leftright_side( side ); FLA_Check_error_code( e_val ); e_val = FLA_Check_valid_trans( trans ); FLA_Check_error_code( e_val ); e_val = FLA_Check_valid_direct( direct ); FLA_Check_error_code( e_val ); e_val = FLA_Check_valid_storev( storev ); FLA_Check_error_code( e_val ); e_val = FLA_Check_floating_object( D ); FLA_Check_error_code( e_val ); e_val = FLA_Check_nonconstant_object( D ); FLA_Check_error_code( e_val ); e_val = FLA_Check_identical_object_datatype( D, T ); FLA_Check_error_code( e_val ); e_val = FLA_Check_identical_object_datatype( D, W ); FLA_Check_error_code( e_val ); e_val = FLA_Check_identical_object_datatype( D, C ); FLA_Check_error_code( e_val ); e_val = FLA_Check_identical_object_datatype( D, E ); FLA_Check_error_code( e_val ); e_val = FLA_Check_square( E ); FLA_Check_error_code( e_val ); if ( side == FLA_LEFT ) { e_val = FLA_Check_conformal_dims( FLA_NO_TRANSPOSE, D, T ); FLA_Check_error_code( e_val ); e_val = FLA_Check_conformal_dims( FLA_TRANSPOSE, T, W ); FLA_Check_error_code( e_val ); e_val = FLA_Check_matrix_matrix_dims( FLA_NO_TRANSPOSE, FLA_NO_TRANSPOSE, D, C, E ); FLA_Check_error_code( e_val ); } else { e_val = FLA_Check_conformal_dims( FLA_NO_TRANSPOSE, C, T ); FLA_Check_error_code( e_val ); e_val = FLA_Check_conformal_dims( FLA_TRANSPOSE, T, W ); FLA_Check_error_code( e_val ); e_val = FLA_Check_matrix_matrix_dims( FLA_NO_TRANSPOSE, FLA_NO_TRANSPOSE, D, C, E ); FLA_Check_error_code( e_val ); } return FLA_SUCCESS; }