void bli_trmm3m_entry( side_t side, obj_t* alpha, obj_t* a, obj_t* b ) { bli_trmm_front( side, alpha, a, b, gemm3m_cntl ); }
// // Define object-based interface. // void bli_trmm4m( side_t side, obj_t* alpha, obj_t* a, obj_t* b ) { trmm_t* l_cntl; trmm_t* r_cntl; // Since 4m only applies to the complex domain, we use the regular // control tree for real domain cases. if ( bli_obj_is_complex( *b ) ) { l_cntl = trmm4m_l_cntl; r_cntl = trmm4m_r_cntl; } else { l_cntl = trmm_l_cntl; r_cntl = trmm_r_cntl; } bli_trmm_front( side, alpha, a, b, l_cntl, r_cntl ); }
void bli_trmm( side_t side, obj_t* alpha, obj_t* a, obj_t* b ) { num_t dt = bli_obj_datatype( *b ); // If an induced method is available (ie: implemented and enabled), // call it instead. if ( bli_trmmind_has_avail( dt ) ) { trmm_fp_t func = bli_trmmind_get_avail( dt ); return func( side, alpha, a, b ); } bli_trmm_front( side, alpha, a, b, gemm_cntl ); }