void bli_herk_basic_check( obj_t* alpha, obj_t* a, obj_t* ah, obj_t* beta, obj_t* c ) { err_t e_val; // Check object datatypes. e_val = bli_check_noninteger_object( alpha ); bli_check_error_code( e_val ); e_val = bli_check_noninteger_object( beta ); bli_check_error_code( e_val ); e_val = bli_check_floating_object( a ); bli_check_error_code( e_val ); e_val = bli_check_floating_object( ah ); bli_check_error_code( e_val ); e_val = bli_check_floating_object( c ); bli_check_error_code( e_val ); // Check object dimensions. e_val = bli_check_scalar_object( alpha ); bli_check_error_code( e_val ); e_val = bli_check_scalar_object( beta ); bli_check_error_code( e_val ); e_val = bli_check_matrix_object( a ); bli_check_error_code( e_val ); e_val = bli_check_matrix_object( ah ); bli_check_error_code( e_val ); e_val = bli_check_matrix_object( c ); bli_check_error_code( e_val ); e_val = bli_check_level3_dims( a, ah, c ); bli_check_error_code( e_val ); // Check matrix structure. e_val = bli_check_general_object( a ); bli_check_error_code( e_val ); e_val = bli_check_general_object( ah ); bli_check_error_code( e_val ); }
void bli_castm_check ( obj_t* a, obj_t* b ) { err_t e_val; // Check object datatypes. e_val = bli_check_floating_object( a ); bli_check_error_code( e_val ); e_val = bli_check_floating_object( b ); bli_check_error_code( e_val ); // Check structure. // NOTE: We enforce general structure for now in order to simplify the // implementation. bli_check_general_object( a ); bli_check_error_code( e_val ); bli_check_general_object( b ); bli_check_error_code( e_val ); // Check object dimensions. e_val = bli_check_matrix_object( a ); bli_check_error_code( e_val ); e_val = bli_check_matrix_object( b ); bli_check_error_code( e_val ); e_val = bli_check_conformal_dims( a, b ); bli_check_error_code( e_val ); // Check object buffers (for non-NULLness). e_val = bli_check_object_buffer( a ); bli_check_error_code( e_val ); e_val = bli_check_object_buffer( b ); bli_check_error_code( e_val ); }
void bli_gemm_basic_check( obj_t* alpha, obj_t* a, obj_t* b, obj_t* beta, obj_t* c ) { err_t e_val; // Check object datatypes. e_val = bli_check_noninteger_object( alpha ); bli_check_error_code( e_val ); e_val = bli_check_noninteger_object( beta ); bli_check_error_code( e_val ); e_val = bli_check_floating_object( a ); bli_check_error_code( e_val ); e_val = bli_check_floating_object( b ); bli_check_error_code( e_val ); e_val = bli_check_floating_object( c ); bli_check_error_code( e_val ); // Check object dimensions. e_val = bli_check_scalar_object( alpha ); bli_check_error_code( e_val ); e_val = bli_check_scalar_object( beta ); bli_check_error_code( e_val ); e_val = bli_check_matrix_object( a ); bli_check_error_code( e_val ); e_val = bli_check_matrix_object( b ); bli_check_error_code( e_val ); e_val = bli_check_matrix_object( c ); bli_check_error_code( e_val ); e_val = bli_check_level3_dims( a, b, c ); bli_check_error_code( e_val ); // Check matrix structure. // We don't enforce general structure in matrix A so we can use gemm to // implement hemm/symm. Instead, we only check this from the front-end. //e_val = bli_check_general_object( b ); //bli_check_error_code( e_val ); e_val = bli_check_general_object( c ); bli_check_error_code( e_val ); }
void bli_gemm_check( obj_t* alpha, obj_t* a, obj_t* b, obj_t* beta, obj_t* c ) { err_t e_val; // Check basic properties of the operation. bli_gemm_basic_check( alpha, a, b, beta, c ); // Check matrix structure. e_val = bli_check_general_object( a ); bli_check_error_code( e_val ); e_val = bli_check_general_object( b ); bli_check_error_code( e_val ); }
void bli_ger_check( obj_t* alpha, obj_t* x, obj_t* y, obj_t* a ) { err_t e_val; // Check basic properties of the operation. bli_ger_basic_check( alpha, x, y, a ); // Check matrix structure. e_val = bli_check_general_object( a ); bli_check_error_code( e_val ); }
void bli_hemm_basic_check( side_t side, obj_t* alpha, obj_t* a, obj_t* b, obj_t* beta, obj_t* c ) { err_t e_val; // Check operation parameters. e_val = bli_check_valid_side( side ); bli_check_error_code( e_val ); // Check object datatypes. e_val = bli_check_noninteger_object( alpha ); bli_check_error_code( e_val ); e_val = bli_check_noninteger_object( beta ); bli_check_error_code( e_val ); e_val = bli_check_floating_object( a ); bli_check_error_code( e_val ); e_val = bli_check_floating_object( b ); bli_check_error_code( e_val ); e_val = bli_check_floating_object( c ); bli_check_error_code( e_val ); // Check object dimensions. e_val = bli_check_scalar_object( alpha ); bli_check_error_code( e_val ); e_val = bli_check_scalar_object( beta ); bli_check_error_code( e_val ); e_val = bli_check_matrix_object( a ); bli_check_error_code( e_val ); e_val = bli_check_matrix_object( b ); bli_check_error_code( e_val ); e_val = bli_check_matrix_object( c ); bli_check_error_code( e_val ); if ( bli_is_left( side ) ) { e_val = bli_check_level3_dims( a, b, c ); bli_check_error_code( e_val ); } else // if ( bli_is_right( side ) ) { e_val = bli_check_level3_dims( b, a, c ); bli_check_error_code( e_val ); } // Check matrix structure. e_val = bli_check_general_object( b ); bli_check_error_code( e_val ); e_val = bli_check_general_object( c ); bli_check_error_code( e_val ); }