Пример #1
0
//
// Define object-based interface.
//
void bli_trsm4m( side_t  side,
                 obj_t*  alpha,
                 obj_t*  a,
                 obj_t*  b )
{
	trsm_t* l_cntl;
	trsm_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 = trsm4m_l_cntl; r_cntl = trsm4m_r_cntl; }
	else                            { l_cntl = trsm_l_cntl;   r_cntl = trsm_r_cntl;   }

	bli_trsm_front( side, alpha, a, b,
	                l_cntl,
	                r_cntl );
}
Пример #2
0
void bli_trsm( 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_trsmind_has_avail( dt ) )
	{
		trsm_fp_t func = bli_trsmind_get_avail( dt );

		return func( side, alpha, a, b );
	}

	bli_trsm_front( side, alpha, a, b,
	                trsm_l_cntl,
	                trsm_r_cntl );
}
Пример #3
0
//
// Define object-based interface.
//
void bli_trsm( side_t  side,
               obj_t*  alpha,
               obj_t*  a,
               obj_t*  b )
{
	if (
#ifdef BLIS_ENABLE_SCOMPLEX_VIA_4M
	     bli_obj_is_scomplex( *b ) ||
#endif
#ifdef BLIS_ENABLE_DCOMPLEX_VIA_4M
	     bli_obj_is_dcomplex( *b ) ||
#endif
	     FALSE
	   )
		return bli_trsm4m( side, alpha, a, b );

	bli_trsm_front( side, alpha, a, b,
	                trsm_l_cntl,
	                trsm_r_cntl );
}