Added get/set static funcs for exec dt/dom/prec.

Details:
- Added functions to bli_obj_macro_defs.h to get and set the target
  domain and target precision bits in the obj_t, and also added the
  appropriate support in bli_type_defs.h.
This commit is contained in:
Field G. Van Zee
2018-06-19 12:21:23 -05:00
parent e88a5b8da8
commit f317c2e31b
2 changed files with 24 additions and 0 deletions

View File

@@ -121,6 +121,16 @@ static num_t bli_obj_target_dt( obj_t* obj )
return ( ( obj->info & BLIS_TARGET_DT_BITS ) >> BLIS_TARGET_DT_SHIFT );
}
static dom_t bli_obj_target_domain( obj_t* obj )
{
return ( ( obj->info & BLIS_TARGET_DOMAIN_BIT ) >> BLIS_TARGET_DT_SHIFT );
}
static prec_t bli_obj_target_prec( obj_t* obj )
{
return ( ( obj->info & BLIS_TARGET_PREC_BIT ) >> BLIS_TARGET_DT_SHIFT );
}
static num_t bli_obj_exec_dt( obj_t* obj )
{
return ( ( obj->info & BLIS_EXEC_DT_BITS ) >> BLIS_EXEC_DT_SHIFT );
@@ -341,6 +351,16 @@ static void bli_obj_set_target_dt( num_t dt, obj_t* obj )
obj->info = ( obj->info & ~BLIS_TARGET_DT_BITS ) | ( dt << BLIS_TARGET_DT_SHIFT );
}
static void bli_obj_set_target_domain( dom_t dt, obj_t* obj )
{
obj->info = ( obj->info & ~BLIS_TARGET_DOMAIN_BIT ) | ( dt << BLIS_TARGET_DOMAIN_SHIFT );
}
static void bli_obj_set_target_prec( prec_t dt, obj_t* obj )
{
obj->info = ( obj->info & ~BLIS_TARGET_PREC_BIT ) | ( dt << BLIS_TARGET_PREC_SHIFT );
}
static void bli_obj_set_exec_dt( num_t dt, obj_t* obj )
{
obj->info = ( obj->info & ~BLIS_EXEC_DT_BITS ) | ( dt << BLIS_EXEC_DT_SHIFT );

View File

@@ -271,6 +271,8 @@ typedef dcomplex f77_dcomplex;
#define BLIS_UNIT_DIAG_SHIFT 8
#define BLIS_INVERT_DIAG_SHIFT 9
#define BLIS_TARGET_DT_SHIFT 10
#define BLIS_TARGET_DOMAIN_SHIFT 10
#define BLIS_TARGET_PREC_SHIFT 11
#define BLIS_EXEC_DT_SHIFT 13
#define BLIS_EXEC_DOMAIN_SHIFT 13
#define BLIS_EXEC_PREC_SHIFT 14
@@ -301,6 +303,8 @@ typedef dcomplex f77_dcomplex;
#define BLIS_UNIT_DIAG_BIT ( 0x1 << BLIS_UNIT_DIAG_SHIFT )
#define BLIS_INVERT_DIAG_BIT ( 0x1 << BLIS_INVERT_DIAG_SHIFT )
#define BLIS_TARGET_DT_BITS ( 0x7 << BLIS_TARGET_DT_SHIFT )
#define BLIS_TARGET_DOMAIN_BIT ( 0x1 << BLIS_TARGET_DOMAIN_SHIFT )
#define BLIS_TARGET_PREC_BIT ( 0x1 << BLIS_TARGET_PREC_SHIFT )
#define BLIS_EXEC_DT_BITS ( 0x7 << BLIS_EXEC_DT_SHIFT )
#define BLIS_EXEC_DOMAIN_BIT ( 0x1 << BLIS_EXEC_DOMAIN_SHIFT )
#define BLIS_EXEC_PREC_BIT ( 0x1 << BLIS_EXEC_PREC_SHIFT )