Exemplo n.º 1
0
void bli_gemm_int_check( obj_t*  alpha,
                         obj_t*  a,
                         obj_t*  b,
                         obj_t*  beta,
                         obj_t*  c,
                         gemm_t* cntl )
{
	err_t e_val;

	// Check object buffers (for non-NULLness).

	e_val = bli_check_object_buffer( alpha );
	bli_check_error_code( e_val );

	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 );

	e_val = bli_check_object_buffer( beta );
	bli_check_error_code( e_val );

	e_val = bli_check_object_buffer( c );
	bli_check_error_code( e_val );

	// Check basic properties of the operation.

	bli_gemm_basic_check( alpha, a, b, beta, c );

	// Check control tree pointer.

	e_val = bli_check_valid_cntl( ( void* )cntl );
	bli_check_error_code( e_val );
}
Exemplo n.º 2
0
void bli_castv_check
     (
       obj_t* x,
       obj_t* y
     )
{
	err_t e_val;

	// Check object datatypes.

	e_val = bli_check_floating_object( x );
	bli_check_error_code( e_val );

	e_val = bli_check_floating_object( y );
	bli_check_error_code( e_val );

	// Check object dimensions.

	e_val = bli_check_vector_object( x );
	bli_check_error_code( e_val );

	e_val = bli_check_vector_object( y );
	bli_check_error_code( e_val );

	e_val = bli_check_equal_vector_lengths( x, y );
	bli_check_error_code( e_val );

	// Check object buffers (for non-NULLness).

	e_val = bli_check_object_buffer( x );
	bli_check_error_code( e_val );

	e_val = bli_check_object_buffer( y );
	bli_check_error_code( e_val );
}
Exemplo n.º 3
0
void bli_addd_check( obj_t*  x,
                     obj_t*  y )
{
	err_t e_val;

	// Check object datatypes.

	e_val = bli_check_floating_object( x );
	bli_check_error_code( e_val );

	e_val = bli_check_floating_object( y );
	bli_check_error_code( e_val );

	// Check object dimensions.

	e_val = bli_check_matrix_object( x );
	bli_check_error_code( e_val );

	e_val = bli_check_matrix_object( y );
	bli_check_error_code( e_val );

	e_val = bli_check_conformal_dims( x, y );
	bli_check_error_code( e_val );

	// Check object buffers (for non-NULLness).

	e_val = bli_check_object_buffer( x );
	bli_check_error_code( e_val );

	e_val = bli_check_object_buffer( y );
	bli_check_error_code( e_val );
}
Exemplo n.º 4
0
void bli_mulsc_check( obj_t* chi,
                      obj_t* psi )
{
	err_t e_val;

	// Check object datatypes.

	e_val = bli_check_noninteger_object( chi );
	bli_check_error_code( e_val );

	e_val = bli_check_noninteger_object( psi );
	bli_check_error_code( e_val );

	e_val = bli_check_nonconstant_object( psi );
	bli_check_error_code( e_val );

	// Check object dimensions.

	e_val = bli_check_scalar_object( chi );
	bli_check_error_code( e_val );

	e_val = bli_check_scalar_object( psi );
	bli_check_error_code( e_val );

	// Check object buffers (for non-NULLness).

	e_val = bli_check_object_buffer( chi );
	bli_check_error_code( e_val );

	e_val = bli_check_object_buffer( psi );
	bli_check_error_code( e_val );
}
Exemplo n.º 5
0
void bli_normiv_check( obj_t*  x,
                       obj_t*  norm )
{
	err_t e_val;

	// Check object datatypes.

	e_val = bli_check_floating_object( x );
	bli_check_error_code( e_val );

	e_val = bli_check_nonconstant_object( norm );
	bli_check_error_code( e_val );

	// Check object dimensions.

	e_val = bli_check_vector_object( x );
	bli_check_error_code( e_val );

	e_val = bli_check_scalar_object( norm );
	bli_check_error_code( e_val );

	// Check object buffers (for non-NULLness).

	e_val = bli_check_object_buffer( x );
	bli_check_error_code( e_val );

	e_val = bli_check_object_buffer( norm );
	bli_check_error_code( e_val );
}
Exemplo n.º 6
0
void bli_scalv_int_check( obj_t*   beta,
	                      obj_t*   x,
	                      scalv_t* cntl )
{
	err_t e_val;

	// Check basic properties of the operation.

	bli_scalv_basic_check( beta, x );

	// Check object buffers (for non-NULLness).

	e_val = bli_check_object_buffer( beta );
	bli_check_error_code( e_val );

	e_val = bli_check_object_buffer( x );
	bli_check_error_code( e_val );

	// Check control tree pointer

	// NOTE: We can't check the control tree until we stop interpreting a
	// NULL value (in bli_scalv_int()) as a request to skip the operation.
	//e_val = bli_check_valid_cntl( ( void* )cntl );
	//bli_check_error_code( e_val );
}
Exemplo n.º 7
0
void bli_ger_int_check( obj_t*  alpha,
                        obj_t*  x,
                        obj_t*  y,
                        obj_t*  a,
                        cntx_t* cntx,
                        ger_t*  cntl )
{
	err_t e_val;

	// Check object datatypes.

	bli_ger_basic_check( alpha, x, y, a );

	// Check object buffers (for non-NULLness).

	e_val = bli_check_object_buffer( alpha );
	bli_check_error_code( e_val );

	e_val = bli_check_object_buffer( x );
	bli_check_error_code( e_val );

	e_val = bli_check_object_buffer( y );
	bli_check_error_code( e_val );

	e_val = bli_check_object_buffer( a );
	bli_check_error_code( e_val );

	// Check control tree pointer

	e_val = bli_check_valid_cntl( ( void* )cntl );
	bli_check_error_code( e_val );
}
Exemplo n.º 8
0
void bli_axpyf_check( obj_t*  alpha,
                      obj_t*  a,
                      obj_t*  x,
                      obj_t*  y )
{
	err_t e_val;

	// Check object datatypes.

	e_val = bli_check_noninteger_object( alpha );
	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( x );
	bli_check_error_code( e_val );

	e_val = bli_check_floating_object( y );
	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_matrix_object( a );
	bli_check_error_code( e_val );

	e_val = bli_check_vector_object( x );
	bli_check_error_code( e_val );

	e_val = bli_check_vector_object( y );
	bli_check_error_code( e_val );

	e_val = bli_check_vector_dim_equals( x, bli_obj_width_after_trans( *a ) );
	bli_check_error_code( e_val );

	e_val = bli_check_vector_dim_equals( y, bli_obj_length_after_trans( *a ) );
	bli_check_error_code( e_val );

	// Check object buffers (for non-NULLness).

	e_val = bli_check_object_buffer( alpha );
	bli_check_error_code( e_val );

	e_val = bli_check_object_buffer( a );
	bli_check_error_code( e_val );

	e_val = bli_check_object_buffer( x );
	bli_check_error_code( e_val );

	e_val = bli_check_object_buffer( y );
	bli_check_error_code( e_val );
}
Exemplo n.º 9
0
void bli_unzipsc_check
     (
       obj_t*  chi,
       obj_t*  zeta_r,
       obj_t*  zeta_i 
     )
{
	err_t e_val;

	// Check object datatypes.

    e_val = bli_check_noninteger_object( chi );
    bli_check_error_code( e_val );

    e_val = bli_check_real_object( zeta_r );
    bli_check_error_code( e_val );

    e_val = bli_check_real_object( zeta_i );
    bli_check_error_code( e_val );

    e_val = bli_check_nonconstant_object( zeta_r );
    bli_check_error_code( e_val );

    e_val = bli_check_nonconstant_object( zeta_i );
    bli_check_error_code( e_val );

    e_val = bli_check_object_real_proj_of( chi, zeta_r );
    bli_check_error_code( e_val );

    e_val = bli_check_object_real_proj_of( chi, zeta_i );
    bli_check_error_code( e_val );

	// Check object dimensions.

	e_val = bli_check_scalar_object( chi );
	bli_check_error_code( e_val );

	e_val = bli_check_scalar_object( zeta_r );
	bli_check_error_code( e_val );

	e_val = bli_check_scalar_object( zeta_i );
	bli_check_error_code( e_val );

	// Check object buffers (for non-NULLness).

	e_val = bli_check_object_buffer( chi );
	bli_check_error_code( e_val );

	e_val = bli_check_object_buffer( zeta_r );
	bli_check_error_code( e_val );

	e_val = bli_check_object_buffer( zeta_i );
	bli_check_error_code( e_val );
}
Exemplo n.º 10
0
void bli_hemv_int_check( conj_t  conjh,
                         obj_t*  alpha,
                         obj_t*  a,
                         obj_t*  x,
                         obj_t*  beta,
                         obj_t*  y,
                         hemv_t* cntl )
{
	err_t e_val;

	// Check basic properties of the operation.

	bli_hemv_basic_check( alpha, a, x, beta, y );

	// Check matrix structure.

	if ( bli_is_conj( conjh ) )
	{
		e_val = bli_check_hermitian_object( a );
		bli_check_error_code( e_val );
	}
	else
	{
		e_val = bli_check_symmetric_object( a );
		bli_check_error_code( e_val );
	}

	// Check object buffers (for non-NULLness).

	e_val = bli_check_object_buffer( alpha );
	bli_check_error_code( e_val );

	e_val = bli_check_object_buffer( a );
	bli_check_error_code( e_val );

	e_val = bli_check_object_buffer( x );
	bli_check_error_code( e_val );

	e_val = bli_check_object_buffer( beta );
	bli_check_error_code( e_val );

	e_val = bli_check_object_buffer( y );
	bli_check_error_code( e_val );

	// Check control tree pointer.

	e_val = bli_check_valid_cntl( ( void* )cntl );
	bli_check_error_code( e_val );
}
Exemplo n.º 11
0
void bli_utilm_fprint_check
     (
       FILE*  file,
       char*  s1,
       obj_t* x,
       char*  format,
       char*  s2
     )
{
	err_t e_val;

	// Check argument pointers.
	
	e_val = bli_check_null_pointer( file );
	bli_check_error_code( e_val );

	e_val = bli_check_null_pointer( s1 );
	bli_check_error_code( e_val );

	e_val = bli_check_null_pointer( s2 ); 
	bli_check_error_code( e_val );

	// Check object buffers (for non-NULLness).

	e_val = bli_check_object_buffer( x ); 
	bli_check_error_code( e_val );
}
Exemplo n.º 12
0
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 );
}
Exemplo n.º 13
0
void bli_dotv_check( obj_t*  x,
                     obj_t*  y,
                     obj_t*  rho )
{
	err_t e_val;

	// Check object datatypes.

	e_val = bli_check_floating_object( x );
	bli_check_error_code( e_val );

	e_val = bli_check_floating_object( y );
	bli_check_error_code( e_val );

	e_val = bli_check_noninteger_object( rho );
	bli_check_error_code( e_val );

	e_val = bli_check_nonconstant_object( rho );
	bli_check_error_code( e_val );

	// Check object dimensions.

	e_val = bli_check_vector_object( x );
	bli_check_error_code( e_val );

	e_val = bli_check_vector_object( y );
	bli_check_error_code( e_val );

	e_val = bli_check_scalar_object( rho );
	bli_check_error_code( e_val );

	e_val = bli_check_equal_vector_lengths( x, y );
	bli_check_error_code( e_val );

	// Check object buffers (for non-NULLness).

	e_val = bli_check_object_buffer( x );
	bli_check_error_code( e_val );

	e_val = bli_check_object_buffer( y );
	bli_check_error_code( e_val );

	e_val = bli_check_object_buffer( rho );
	bli_check_error_code( e_val );
}
Exemplo n.º 14
0
void bli_utilv_sumsqv_check
     (
       obj_t*  x,
       obj_t*  scale,
       obj_t*  sumsq
     )
{
	err_t e_val;

	// Check object datatypes.

	e_val = bli_check_floating_object( x );
	bli_check_error_code( e_val );

	e_val = bli_check_nonconstant_object( scale );
	bli_check_error_code( e_val );

	e_val = bli_check_nonconstant_object( sumsq );
	bli_check_error_code( e_val );

	// Check object dimensions.

	e_val = bli_check_vector_object( x );
	bli_check_error_code( e_val );

	e_val = bli_check_scalar_object( scale );
	bli_check_error_code( e_val );
	
	e_val = bli_check_scalar_object( sumsq );
	bli_check_error_code( e_val );

	// Check object buffers (for non-NULLness).
	
	e_val = bli_check_object_buffer( x );
	bli_check_error_code( e_val );
	
	e_val = bli_check_object_buffer( scale );
	bli_check_error_code( e_val );

	e_val = bli_check_object_buffer( sumsq );
	bli_check_error_code( e_val );
}
Exemplo n.º 15
0
void bli_absqsc_check( obj_t* chi,
                       obj_t* absq )
{
    err_t e_val;

    // Check object datatypes.

    e_val = bli_check_noninteger_object( chi );
    bli_check_error_code( e_val );

    e_val = bli_check_nonconstant_object( absq );
    bli_check_error_code( e_val );

    e_val = bli_check_real_object( absq );
    bli_check_error_code( e_val );

    /*
    	// FGVZ: FIXME. This is a hack. We should have a _check_datatype_real_proj()
    	// or something similar.
    	if ( !bli_obj_is_const( *chi ) &&
    	     bli_obj_datatype( *absq ) !=
    	     bli_obj_datatype_proj_to_real( *chi ) ) bli_abort();
    */
    e_val = bli_check_object_real_proj_of( chi, absq );
    bli_check_error_code( e_val );

    // Check object dimensions.

    e_val = bli_check_scalar_object( chi );
    bli_check_error_code( e_val );

    e_val = bli_check_scalar_object( absq );
    bli_check_error_code( e_val );

    // Check object buffers (for non-NULLness).

    e_val = bli_check_object_buffer( chi );
    bli_check_error_code( e_val );

    e_val = bli_check_object_buffer( absq );
    bli_check_error_code( e_val );
}
Exemplo n.º 16
0
void bli_l0_xx2sc_check
     (
       obj_t*  chi,
       obj_t*  absq 
     )
{
	err_t e_val;

	// Check object datatypes.

	e_val = bli_check_noninteger_object( chi );
	bli_check_error_code( e_val );

	e_val = bli_check_nonconstant_object( absq );
	bli_check_error_code( e_val );

	e_val = bli_check_real_object( absq );
	bli_check_error_code( e_val );

	e_val = bli_check_object_real_proj_of( chi, absq );
	bli_check_error_code( e_val );

	// Check object dimensions.

	e_val = bli_check_scalar_object( chi );
	bli_check_error_code( e_val );

	e_val = bli_check_scalar_object( absq );
	bli_check_error_code( e_val );

	// Check object buffers (for non-NULLness).

	e_val = bli_check_object_buffer( chi );
	bli_check_error_code( e_val );

	e_val = bli_check_object_buffer( absq );
	bli_check_error_code( e_val );
}
Exemplo n.º 17
0
void bli_utilm_rand_check
     (
       obj_t* x
     )
{
	err_t e_val;

	// Check object datatypes.

	e_val = bli_check_noninteger_object( x );
	bli_check_error_code( e_val );

	e_val = bli_check_nonconstant_object( x );
	bli_check_error_code( e_val );

	// Check object buffers (for non-NULLness).

	e_val = bli_check_object_buffer( x );
	bli_check_error_code( e_val );
}
Exemplo n.º 18
0
void bli_mksymm_check( obj_t*  a )
{
	err_t e_val;

	// Check object datatypes.

	e_val = bli_check_floating_object( a );
	bli_check_error_code( e_val );

	e_val = bli_check_nonconstant_object( a );
	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_square_object( a );
	bli_check_error_code( e_val );

	e_val = bli_check_object_diag_offset_equals( a, 0 );
	bli_check_error_code( e_val );

	// Check matrix structure.

	//e_val = bli_check_symmetric_object( a );
	//bli_check_error_code( e_val );

	// Check matrix storage.

	e_val = bli_check_upper_or_lower_object( a );
	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 );
}
Exemplo n.º 19
0
void bli_setsc_check
     (
       double  zeta_r,
       double  zeta_i,
       obj_t*  chi 
     )
{
	err_t e_val;

	// Check object datatypes.

	e_val = bli_check_floating_object( chi );
	bli_check_error_code( e_val );

	// Check object dimensions.

	e_val = bli_check_scalar_object( chi );
	bli_check_error_code( e_val );

	// Check object buffers (for non-NULLness).

	e_val = bli_check_object_buffer( chi );
	bli_check_error_code( e_val );
}
Exemplo n.º 20
0
void bli_getsc_check
     (
       obj_t*  chi,
       double* zeta_r,
       double* zeta_i 
     )
{
	err_t e_val;

	// Check object datatypes.

	e_val = bli_check_noninteger_object( chi );
	bli_check_error_code( e_val );

	// Check object dimensions.

	e_val = bli_check_scalar_object( chi );
	bli_check_error_code( e_val );

	// Check object buffers (for non-NULLness).

	e_val = bli_check_object_buffer( chi );
	bli_check_error_code( e_val );
}
Exemplo n.º 21
0
void bli_dotxaxpyf_check( obj_t*  alpha,
                          obj_t*  at,
                          obj_t*  a,
                          obj_t*  w,
                          obj_t*  x,
                          obj_t*  beta,
                          obj_t*  y,
                          obj_t*  z )
{
	err_t e_val;

	// Check object datatypes.

	e_val = bli_check_noninteger_object( alpha );
	bli_check_error_code( e_val );

	e_val = bli_check_floating_object( at );
	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( w );
	bli_check_error_code( e_val );

	e_val = bli_check_floating_object( x );
	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( y );
	bli_check_error_code( e_val );

	e_val = bli_check_floating_object( z );
	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_matrix_object( at );
	bli_check_error_code( e_val );

	e_val = bli_check_matrix_object( a );
	bli_check_error_code( e_val );

	e_val = bli_check_vector_object( w );
	bli_check_error_code( e_val );

	e_val = bli_check_vector_object( x );
	bli_check_error_code( e_val );

	e_val = bli_check_scalar_object( beta );
	bli_check_error_code( e_val );

	e_val = bli_check_vector_object( y );
	bli_check_error_code( e_val );

	e_val = bli_check_vector_object( z );
	bli_check_error_code( e_val );

	e_val = bli_check_equal_vector_lengths( w, z );
	bli_check_error_code( e_val );

	e_val = bli_check_equal_vector_lengths( x, y );
	bli_check_error_code( e_val );

	e_val = bli_check_conformal_dims( at, a );
	bli_check_error_code( e_val );

	e_val = bli_check_object_length_equals( at, bli_obj_vector_dim( *w ) );
	bli_check_error_code( e_val );

	e_val = bli_check_object_width_equals( at, bli_obj_vector_dim( *y ) );
	bli_check_error_code( e_val );

	e_val = bli_check_object_length_equals( a, bli_obj_vector_dim( *z ) );
	bli_check_error_code( e_val );

	e_val = bli_check_object_width_equals( a, bli_obj_vector_dim( *x ) );
	bli_check_error_code( e_val );

	// Check object aliases.

	e_val = bli_check_object_alias_of( at, a );
	bli_check_error_code( e_val );

	// Check object buffers (for non-NULLness).

	e_val = bli_check_object_buffer( alpha );
	bli_check_error_code( e_val );

	e_val = bli_check_object_buffer( at );
	bli_check_error_code( e_val );

	e_val = bli_check_object_buffer( a );
	bli_check_error_code( e_val );

	e_val = bli_check_object_buffer( w );
	bli_check_error_code( e_val );

	e_val = bli_check_object_buffer( x );
	bli_check_error_code( e_val );

	e_val = bli_check_object_buffer( beta );
	bli_check_error_code( e_val );

	e_val = bli_check_object_buffer( y );
	bli_check_error_code( e_val );

	e_val = bli_check_object_buffer( z );
	bli_check_error_code( e_val );
}
Exemplo n.º 22
0
void bli_axpy2v_check( obj_t*  alpha1,
                       obj_t*  alpha2,
                       obj_t*  x,
                       obj_t*  y,
                       obj_t*  z )
{
	err_t e_val;

	// Check object datatypes.

	e_val = bli_check_noninteger_object( alpha1 );
	bli_check_error_code( e_val );

	e_val = bli_check_noninteger_object( alpha2 );
	bli_check_error_code( e_val );

	e_val = bli_check_floating_object( x );
	bli_check_error_code( e_val );

	e_val = bli_check_floating_object( y );
	bli_check_error_code( e_val );

	e_val = bli_check_floating_object( z );
	bli_check_error_code( e_val );

	// Check object dimensions.

	e_val = bli_check_scalar_object( alpha1 );
	bli_check_error_code( e_val );

	e_val = bli_check_scalar_object( alpha2 );
	bli_check_error_code( e_val );

	e_val = bli_check_vector_object( x );
	bli_check_error_code( e_val );

	e_val = bli_check_vector_object( y );
	bli_check_error_code( e_val );

	e_val = bli_check_vector_object( z );
	bli_check_error_code( e_val );

	e_val = bli_check_equal_vector_lengths( x, y );
	bli_check_error_code( e_val );

	e_val = bli_check_equal_vector_lengths( x, z );
	bli_check_error_code( e_val );

	// Check object buffers (for non-NULLness).

	e_val = bli_check_object_buffer( alpha1 );
	bli_check_error_code( e_val );

	e_val = bli_check_object_buffer( alpha2 );
	bli_check_error_code( e_val );

	e_val = bli_check_object_buffer( x );
	bli_check_error_code( e_val );

	e_val = bli_check_object_buffer( y );
	bli_check_error_code( e_val );

	e_val = bli_check_object_buffer( z );
	bli_check_error_code( e_val );
}