From 03f6c3599743bc837a7d40eb5b415b1bf4f2a4e9 Mon Sep 17 00:00:00 2001 From: "Field G. Van Zee" Date: Mon, 22 Jul 2013 12:54:32 -0500 Subject: [PATCH] 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. --- frame/include/bli_obj_macro_defs.h | 48 ++++++++++++++-------------- frame/include/bli_param_macro_defs.h | 16 +++++++--- frame/include/bli_type_defs.h | 1 - 3 files changed, 36 insertions(+), 29 deletions(-) diff --git a/frame/include/bli_obj_macro_defs.h b/frame/include/bli_obj_macro_defs.h index aa4830c7a..30bb3e373 100644 --- a/frame/include/bli_obj_macro_defs.h +++ b/frame/include/bli_obj_macro_defs.h @@ -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 ) diff --git a/frame/include/bli_param_macro_defs.h b/frame/include/bli_param_macro_defs.h index 45442b006..b85bd846b 100644 --- a/frame/include/bli_param_macro_defs.h +++ b/frame/include/bli_param_macro_defs.h @@ -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 ) \ \ diff --git a/frame/include/bli_type_defs.h b/frame/include/bli_type_defs.h index 01f162152..500318989 100644 --- a/frame/include/bli_type_defs.h +++ b/frame/include/bli_type_defs.h @@ -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