From 5f7fbb7115b1bf532c169dfd9adef84c41a95031 Mon Sep 17 00:00:00 2001 From: "Field G. Van Zee" Date: Tue, 19 Jun 2018 15:38:55 -0500 Subject: [PATCH] Static funcs for projecting dt to single/double. Details: - Added static functions for projecting a datatype to single precision or double precision, both for obj_t's storage datatypes and standalone datatypes. --- frame/include/bli_obj_macro_defs.h | 10 ++++++++++ frame/include/bli_param_macro_defs.h | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/frame/include/bli_obj_macro_defs.h b/frame/include/bli_obj_macro_defs.h index 60176d98c..bf1259a57 100644 --- a/frame/include/bli_obj_macro_defs.h +++ b/frame/include/bli_obj_macro_defs.h @@ -96,6 +96,16 @@ static bool_t bli_obj_is_double_prec( obj_t* obj ) return ( bli_obj_prec( obj ) == BLIS_BITVAL_DOUBLE_PREC ); } +static num_t bli_obj_dt_proj_to_single_prec( obj_t* obj ) +{ + return ( bli_obj_dt( obj ) & ~BLIS_BITVAL_SINGLE_PREC ); +} + +static num_t bli_obj_dt_proj_to_double_prec( obj_t* obj ) +{ + return ( bli_obj_dt( obj ) | BLIS_BITVAL_DOUBLE_PREC ); +} + static bool_t bli_obj_is_real( obj_t* obj ) { return ( bli_obj_domain( obj ) == BLIS_BITVAL_REAL ); diff --git a/frame/include/bli_param_macro_defs.h b/frame/include/bli_param_macro_defs.h index 5584f8ed0..e8343d804 100644 --- a/frame/include/bli_param_macro_defs.h +++ b/frame/include/bli_param_macro_defs.h @@ -122,6 +122,16 @@ static num_t bli_dt_proj_to_complex( num_t dt ) return ( dt | BLIS_BITVAL_COMPLEX ); } +static num_t bli_dt_proj_to_single_prec( num_t dt ) +{ + return ( dt & ~BLIS_BITVAL_SINGLE_PREC ); +} + +static num_t bli_dt_proj_to_double_prec( num_t dt ) +{ + return ( dt | BLIS_BITVAL_DOUBLE_PREC ); +} + // trans