mirror of
https://github.com/amd/blis.git
synced 2026-05-11 09:39:59 +00:00
Tightened some macros that detect datatypes.
Details: - Modified the definitions of some macros, such as bli_is_real(), so that the "special" bit is taken into account so that BLIS_INT is differentiated from BLIS_FLOAT. - Whitespace changes to bli_obj_macro_defs.h. - Removed BLIS_SPECIAL_BIT definition from bli_type_defs.h, since it wasn't being used.
This commit is contained in:
@@ -40,6 +40,30 @@
|
||||
|
||||
// Info query
|
||||
|
||||
#define bli_obj_is_float( obj ) \
|
||||
\
|
||||
( ( (obj).info & BLIS_DATATYPE_BITS ) == BLIS_BITVAL_FLOAT_TYPE )
|
||||
|
||||
#define bli_obj_is_double( obj ) \
|
||||
\
|
||||
( ( (obj).info & BLIS_DATATYPE_BITS ) == BLIS_BITVAL_DOUBLE_TYPE )
|
||||
|
||||
#define bli_obj_is_scomplex( obj ) \
|
||||
\
|
||||
( ( (obj).info & BLIS_DATATYPE_BITS ) == BLIS_BITVAL_SCOMPLEX_TYPE )
|
||||
|
||||
#define bli_obj_is_dcomplex( obj ) \
|
||||
\
|
||||
( ( (obj).info & BLIS_DATATYPE_BITS ) == BLIS_BITVAL_DCOMPLEX_TYPE )
|
||||
|
||||
#define bli_obj_is_int( obj ) \
|
||||
\
|
||||
( ( (obj).info & BLIS_DATATYPE_BITS ) == BLIS_BITVAL_INT_TYPE )
|
||||
|
||||
#define bli_obj_is_const( obj ) \
|
||||
\
|
||||
( ( (obj).info & BLIS_DATATYPE_BITS ) == BLIS_BITVAL_CONST_TYPE )
|
||||
|
||||
#define bli_obj_domain( obj ) \
|
||||
\
|
||||
( (obj).info & BLIS_DOMAIN_BIT )
|
||||
@@ -80,30 +104,6 @@
|
||||
\
|
||||
( ( (obj).info & BLIS_EXECUTION_DT_BITS ) >> BLIS_EXECUTION_DT_SHIFT )
|
||||
|
||||
#define bli_obj_is_float( obj ) \
|
||||
\
|
||||
( ( (obj).info & BLIS_DATATYPE_BITS ) == BLIS_BITVAL_FLOAT_TYPE )
|
||||
|
||||
#define bli_obj_is_double( obj ) \
|
||||
\
|
||||
( ( (obj).info & BLIS_DATATYPE_BITS ) == BLIS_BITVAL_DOUBLE_TYPE )
|
||||
|
||||
#define bli_obj_is_scomplex( obj ) \
|
||||
\
|
||||
( ( (obj).info & BLIS_DATATYPE_BITS ) == BLIS_BITVAL_SCOMPLEX_TYPE )
|
||||
|
||||
#define bli_obj_is_dcomplex( obj ) \
|
||||
\
|
||||
( ( (obj).info & BLIS_DATATYPE_BITS ) == BLIS_BITVAL_DCOMPLEX_TYPE )
|
||||
|
||||
#define bli_obj_is_int( obj ) \
|
||||
\
|
||||
( ( (obj).info & BLIS_DATATYPE_BITS ) == BLIS_BITVAL_INT_TYPE )
|
||||
|
||||
#define bli_obj_is_const( obj ) \
|
||||
\
|
||||
( ( (obj).info & BLIS_DATATYPE_BITS ) == BLIS_BITVAL_CONST_TYPE )
|
||||
|
||||
#define bli_obj_conjtrans_status( obj ) \
|
||||
\
|
||||
( (obj).info & BLIS_CONJTRANS_BITS )
|
||||
|
||||
@@ -75,21 +75,29 @@
|
||||
\
|
||||
( dt == BLIS_CONSTANT )
|
||||
|
||||
#define bli_is_int( dt ) \
|
||||
\
|
||||
( dt == BLIS_INT )
|
||||
|
||||
#define bli_is_real( dt ) \
|
||||
\
|
||||
( ( dt & BLIS_DOMAIN_BIT ) == BLIS_BITVAL_REAL )
|
||||
( bli_is_float( dt ) || \
|
||||
bli_is_double( dt ) )
|
||||
|
||||
#define bli_is_complex( dt ) \
|
||||
\
|
||||
( ( dt & BLIS_DOMAIN_BIT ) == BLIS_BITVAL_COMPLEX )
|
||||
( bli_is_scomplex( dt ) || \
|
||||
bli_is_dcomplex( dt ) )
|
||||
|
||||
#define bli_is_single_prec( dt ) \
|
||||
\
|
||||
( ( dt & BLIS_PRECISION_BIT ) == BLIS_BITVAL_SINGLE_PREC )
|
||||
( bli_is_float( dt ) || \
|
||||
bli_is_scomplex( dt ) )
|
||||
|
||||
#define bli_is_double_prec( dt ) \
|
||||
\
|
||||
( ( dt & BLIS_PRECISION_BIT ) == BLIS_BITVAL_DOUBLE_PREC )
|
||||
( bli_is_double( dt ) || \
|
||||
bli_is_dcomplex( dt ) )
|
||||
|
||||
#define bli_datatype_proj_to_real( dt ) \
|
||||
\
|
||||
|
||||
@@ -145,7 +145,6 @@ typedef dcomplex f77_dcomplex;
|
||||
|
||||
#define BLIS_DOMAIN_BIT 0x01
|
||||
#define BLIS_PRECISION_BIT 0x02
|
||||
#define BLIS_SPECIAL_BIT 0x04
|
||||
#define BLIS_DATATYPE_BITS 0x07
|
||||
#define BLIS_TRANS_BIT 0x08
|
||||
#define BLIS_CONJ_BIT 0x10
|
||||
|
||||
Reference in New Issue
Block a user