Exemple #1
0
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 );
}
Exemple #2
0
//
// 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 );
}
Exemple #3
0
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 );
}