|
libflame
12600
|
Go to the source code of this file.
References FLA_Amax_external().
{
return FLA_Amax_external( x, index );
}
| FLA_Error FLA_Amax_check | ( | FLA_Obj | x, |
| FLA_Obj | index | ||
| ) |
References FLA_Check_floating_object(), FLA_Check_if_scalar(), FLA_Check_if_vector(), FLA_Check_int_object(), and FLA_Check_nonconstant_object().
Referenced by FLA_Amax_external().
{
FLA_Error e_val;
e_val = FLA_Check_floating_object( x );
FLA_Check_error_code( e_val );
e_val = FLA_Check_nonconstant_object( x );
FLA_Check_error_code( e_val );
e_val = FLA_Check_if_vector( x );
FLA_Check_error_code( e_val );
e_val = FLA_Check_int_object( index );
FLA_Check_error_code( e_val );
e_val = FLA_Check_nonconstant_object( index );
FLA_Check_error_code( e_val );
e_val = FLA_Check_if_scalar( index );
FLA_Check_error_code( e_val );
return FLA_SUCCESS;
}
| FLA_Error FLA_Amax_external | ( | FLA_Obj | x, |
| FLA_Obj | index | ||
| ) |
References bl1_camax(), bl1_damax(), bl1_samax(), bl1_zamax(), FLA_Amax_check(), FLA_Check_error_level(), FLA_Obj_datatype(), FLA_Obj_has_zero_dim(), FLA_Obj_vector_dim(), and FLA_Obj_vector_inc().
Referenced by FLA_Amax(), FLA_LU_piv_unb_var3(), FLA_LU_piv_unb_var3b(), FLA_LU_piv_unb_var4(), FLA_LU_piv_unb_var5(), FLA_QR_UT_piv_unb_var1(), and FLA_QR_UT_piv_unb_var2().
{
FLA_Datatype datatype;
int num_elem;
int inc_x;
int *buff_index;
if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
FLA_Amax_check( x, index );
buff_index = ( int * ) FLA_INT_PTR( index );
if ( FLA_Obj_has_zero_dim( x ) )
{
*buff_index = 0;
return FLA_SUCCESS;
}
datatype = FLA_Obj_datatype( x );
inc_x = FLA_Obj_vector_inc( x );
num_elem = FLA_Obj_vector_dim( x );
switch ( datatype ){
case FLA_FLOAT:
{
float* buff_x = ( float * ) FLA_FLOAT_PTR( x );
bl1_samax( num_elem,
buff_x, inc_x,
buff_index );
break;
}
case FLA_DOUBLE:
{
double* buff_x = ( double * ) FLA_DOUBLE_PTR( x );
bl1_damax( num_elem,
buff_x, inc_x,
buff_index );
break;
}
case FLA_COMPLEX:
{
scomplex* buff_x = ( scomplex * ) FLA_COMPLEX_PTR( x );
bl1_camax( num_elem,
buff_x, inc_x,
buff_index );
break;
}
case FLA_DOUBLE_COMPLEX:
{
dcomplex* buff_x = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( x );
bl1_zamax( num_elem,
buff_x, inc_x,
buff_index );
break;
}
}
return FLA_SUCCESS;
}
References FLA_Asum_external().
Referenced by FLA_Norm1(), and FLA_Norm_inf().
{
return FLA_Asum_external( x, asum_x );
}
| FLA_Error FLA_Asum_check | ( | FLA_Obj | x, |
| FLA_Obj | asum_x | ||
| ) |
References FLA_Check_floating_object(), FLA_Check_identical_object_precision(), FLA_Check_if_scalar(), FLA_Check_if_vector(), and FLA_Check_nonconstant_object().
Referenced by FLA_Asum_external().
{
FLA_Error e_val;
e_val = FLA_Check_floating_object( x );
FLA_Check_error_code( e_val );
e_val = FLA_Check_nonconstant_object( x );
FLA_Check_error_code( e_val );
// e_val = FLA_Check_real_object( asum_x );
// FLA_Check_error_code( e_val );
e_val = FLA_Check_identical_object_precision( x, asum_x );
FLA_Check_error_code( e_val );
e_val = FLA_Check_if_scalar( asum_x );
FLA_Check_error_code( e_val );
e_val = FLA_Check_if_vector( x );
FLA_Check_error_code( e_val );
return FLA_SUCCESS;
}
| FLA_Error FLA_Asum_external | ( | FLA_Obj | x, |
| FLA_Obj | asum_x | ||
| ) |
References bl1_casum(), bl1_dasum(), bl1_sasum(), bl1_zasum(), FLA_Asum_check(), FLA_Check_error_level(), FLA_Obj_datatype(), FLA_Obj_has_zero_dim(), FLA_Obj_vector_dim(), FLA_Obj_vector_inc(), FLA_Set(), FLA_ZERO, scomplex::imag, dcomplex::imag, scomplex::real, and dcomplex::real.
Referenced by FLA_Asum().
{
FLA_Datatype datatype;
FLA_Datatype dt_asum;
int num_elem;
int inc_x;
if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
FLA_Asum_check( x, asum_x );
if ( FLA_Obj_has_zero_dim( x ) )
{
FLA_Set( FLA_ZERO, asum_x );
return FLA_SUCCESS;
}
dt_asum = FLA_Obj_datatype( asum_x );
datatype = FLA_Obj_datatype( x );
inc_x = FLA_Obj_vector_inc( x );
num_elem = FLA_Obj_vector_dim( x );
switch ( datatype ){
case FLA_FLOAT:
{
float *buff_x = ( float * ) FLA_FLOAT_PTR( x );
float *buff_asum_x = ( float * ) FLA_FLOAT_PTR( asum_x );
bl1_sasum( num_elem,
buff_x, inc_x,
buff_asum_x );
break;
}
case FLA_DOUBLE:
{
double *buff_x = ( double * ) FLA_DOUBLE_PTR( x );
double *buff_asum_x = ( double * ) FLA_DOUBLE_PTR( asum_x );
bl1_dasum( num_elem,
buff_x, inc_x,
buff_asum_x );
break;
}
case FLA_COMPLEX:
{
if ( dt_asum == FLA_FLOAT )
{
scomplex *buff_x = ( scomplex * ) FLA_COMPLEX_PTR( x );
float *buff_asum_x = ( float * ) FLA_FLOAT_PTR( asum_x );
bl1_casum( num_elem,
buff_x, inc_x,
buff_asum_x );
}
else if ( dt_asum == FLA_COMPLEX )
{
scomplex *buff_x = ( scomplex * ) FLA_COMPLEX_PTR( x );
scomplex *buff_asum_x = ( scomplex * ) FLA_COMPLEX_PTR( asum_x );
bl1_casum( num_elem,
buff_x, inc_x,
&(buff_asum_x->real) );
buff_asum_x->imag = 0.0F;
}
break;
}
case FLA_DOUBLE_COMPLEX:
{
if ( dt_asum == FLA_DOUBLE )
{
dcomplex *buff_x = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( x );
double *buff_asum_x = ( double * ) FLA_DOUBLE_PTR( asum_x );
bl1_zasum( num_elem,
buff_x, inc_x,
buff_asum_x );
}
else if ( dt_asum == FLA_DOUBLE_COMPLEX )
{
dcomplex *buff_x = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( x );
dcomplex *buff_asum_x = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( asum_x );
bl1_zasum( num_elem,
buff_x, inc_x,
&(buff_asum_x->real) );
buff_asum_x->imag = 0.0;
}
break;
}
}
return FLA_SUCCESS;
}
References FLA_Axpy_check(), FLA_Axpy_external(), FLA_Axpy_internal(), and FLA_Check_error_level().
Referenced by FLA_Bidiag_UT_u_step_unb_var3(), FLA_Bidiag_UT_u_step_unb_var4(), FLA_Bidiag_UT_u_step_unb_var5(), FLA_Fill_with_random_dist(), FLA_Hess_UT_step_unb_var2(), FLA_Hess_UT_step_unb_var3(), FLA_Hess_UT_step_unb_var4(), FLA_QR_UT_piv_colnorm(), FLA_Tridiag_UT_l_step_unb_var1(), FLA_Tridiag_UT_l_step_unb_var2(), and FLA_Tridiag_UT_l_step_unb_var3().
{
FLA_Error r_val;
#ifdef FLA_ENABLE_BLAS1_FRONT_END_CNTL_TREES
// Check parameters.
if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
FLA_Axpy_check( alpha, A, B );
// Invoke FLA_Axpy_internal() with flat control tree that simply calls
// external wrapper.
r_val = FLA_Axpy_internal( alpha, A, B, fla_axpy_cntl_blas );
#else
r_val = FLA_Axpy_external( alpha, A, B );
#endif
return r_val;
}
| FLA_Error FLA_Axpy_check | ( | FLA_Obj | alpha, |
| FLA_Obj | A, | ||
| FLA_Obj | B | ||
| ) |
References FLA_Check_conformal_dims(), FLA_Check_consistent_object_datatype(), FLA_Check_equal_vector_dims(), FLA_Check_floating_object(), FLA_Check_identical_object_datatype(), FLA_Check_nonconstant_object(), and FLA_Obj_is_vector().
Referenced by FLA_Axpy(), FLA_Axpy_external(), FLA_Axpy_external_gpu(), and FLASH_Axpy().
{
FLA_Error e_val;
e_val = FLA_Check_floating_object( A );
FLA_Check_error_code( e_val );
e_val = FLA_Check_nonconstant_object( A );
FLA_Check_error_code( e_val );
e_val = FLA_Check_identical_object_datatype( A, B );
FLA_Check_error_code( e_val );
e_val = FLA_Check_consistent_object_datatype( A, alpha );
FLA_Check_error_code( e_val );
if ( FLA_Obj_is_vector( A ) && FLA_Obj_is_vector( B ) )
{
e_val = FLA_Check_equal_vector_dims( A, B );
FLA_Check_error_code( e_val );
}
else
{
e_val = FLA_Check_conformal_dims( FLA_NO_TRANSPOSE, A, B );
FLA_Check_error_code( e_val );
}
return FLA_SUCCESS;
}
| FLA_Error FLA_Axpy_external | ( | FLA_Obj | alpha, |
| FLA_Obj | A, | ||
| FLA_Obj | B | ||
| ) |
References bl1_caxpymt(), bl1_daxpymt(), bl1_saxpymt(), bl1_zaxpymt(), FLA_Axpy_check(), FLA_Check_error_level(), FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_has_zero_dim(), FLA_Obj_is_conformal_to(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Obj_width(), and FLA_Param_map_flame_to_blis_trans().
Referenced by FLA_Apply_H2_UT_l_unb_var1(), FLA_Apply_H2_UT_piv_row(), FLA_Apply_H2_UT_r_unb_var1(), FLA_Apply_HUD_UT_lh_unb_var1(), FLA_Axpy(), FLA_Axpy_task(), FLA_Eig_gest_il_unb_var1(), FLA_Eig_gest_il_unb_var2(), FLA_Eig_gest_il_unb_var3(), FLA_Eig_gest_il_unb_var4(), FLA_Eig_gest_il_unb_var5(), FLA_Eig_gest_iu_unb_var1(), FLA_Eig_gest_iu_unb_var2(), FLA_Eig_gest_iu_unb_var3(), FLA_Eig_gest_iu_unb_var4(), FLA_Eig_gest_iu_unb_var5(), FLA_Eig_gest_nl_unb_var1(), FLA_Eig_gest_nl_unb_var2(), FLA_Eig_gest_nl_unb_var4(), FLA_Eig_gest_nl_unb_var5(), FLA_Eig_gest_nu_unb_var1(), FLA_Eig_gest_nu_unb_var2(), FLA_Eig_gest_nu_unb_var4(), FLA_Eig_gest_nu_unb_var5(), FLA_Trmvsx_external(), FLA_Trsvsx_external(), and FLASH_Axpy_hierarchy().
{
FLA_Datatype datatype;
int m_B, n_B;
int rs_A, cs_A;
int rs_B, cs_B;
trans1_t blis_trans;
if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
FLA_Axpy_check( alpha, A, B );
if ( FLA_Obj_has_zero_dim( A ) ) return FLA_SUCCESS;
datatype = FLA_Obj_datatype( A );
rs_A = FLA_Obj_row_stride( A );
cs_A = FLA_Obj_col_stride( A );
m_B = FLA_Obj_length( B );
n_B = FLA_Obj_width( B );
rs_B = FLA_Obj_row_stride( B );
cs_B = FLA_Obj_col_stride( B );
if ( FLA_Obj_is_conformal_to( FLA_NO_TRANSPOSE, A, B ) )
FLA_Param_map_flame_to_blis_trans( FLA_NO_TRANSPOSE, &blis_trans );
else // if ( FLA_Obj_is_conformal_to( FLA_TRANSPOSE, A, B ) )
FLA_Param_map_flame_to_blis_trans( FLA_TRANSPOSE, &blis_trans );
switch ( datatype ){
case FLA_FLOAT:
{
float *buff_alpha = ( float * ) FLA_FLOAT_PTR( alpha );
float *buff_A = ( float * ) FLA_FLOAT_PTR( A );
float *buff_B = ( float * ) FLA_FLOAT_PTR( B );
bl1_saxpymt( blis_trans,
m_B,
n_B,
buff_alpha,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
break;
}
case FLA_DOUBLE:
{
double *buff_alpha = ( double * ) FLA_DOUBLE_PTR( alpha );
double *buff_A = ( double * ) FLA_DOUBLE_PTR( A );
double *buff_B = ( double * ) FLA_DOUBLE_PTR( B );
bl1_daxpymt( blis_trans,
m_B,
n_B,
buff_alpha,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
break;
}
case FLA_COMPLEX:
{
scomplex *buff_alpha = ( scomplex * ) FLA_COMPLEX_PTR( alpha );
scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
scomplex *buff_B = ( scomplex * ) FLA_COMPLEX_PTR( B );
bl1_caxpymt( blis_trans,
m_B,
n_B,
buff_alpha,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
break;
}
case FLA_DOUBLE_COMPLEX:
{
dcomplex *buff_alpha = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( alpha );
dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
dcomplex *buff_B = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( B );
bl1_zaxpymt( blis_trans,
m_B,
n_B,
buff_alpha,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
break;
}
}
return FLA_SUCCESS;
}
| FLA_Error FLA_Axpy_external_gpu | ( | FLA_Obj | alpha, |
| FLA_Obj | A, | ||
| void * | A_gpu, | ||
| FLA_Obj | B, | ||
| void * | B_gpu | ||
| ) |
References FLA_Axpy_check(), FLA_Check_error_level(), FLA_Obj_datatype(), FLA_Obj_has_zero_dim(), FLA_Obj_length(), and FLA_Obj_width().
Referenced by FLASH_Queue_exec_task_gpu().
{
FLA_Datatype datatype;
int m_B, n_B;
int ldim_A, inc_A;
int ldim_B, inc_B;
int i;
if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
FLA_Axpy_check( alpha, A, B );
if ( FLA_Obj_has_zero_dim( A ) ) return FLA_SUCCESS;
datatype = FLA_Obj_datatype( A );
ldim_A = FLA_Obj_length( A );
inc_A = 1;
m_B = FLA_Obj_length( B );
n_B = FLA_Obj_width( B );
ldim_B = FLA_Obj_length( B );
inc_B = 1;
switch ( datatype ){
case FLA_FLOAT:
{
float* buff_alpha = ( float* ) FLA_FLOAT_PTR( alpha );
float* buff_A_gpu = ( float* ) A_gpu;
float* buff_B_gpu = ( float* ) B_gpu;
for ( i = 0; i < n_B; i++ )
cublasSaxpy( m_B,
*buff_alpha,
buff_A_gpu + i * ldim_A, inc_A,
buff_B_gpu + i * ldim_B, inc_B );
break;
}
case FLA_DOUBLE:
{
double* buff_alpha = ( double* ) FLA_DOUBLE_PTR( alpha );
double* buff_A_gpu = ( double* ) A_gpu;
double* buff_B_gpu = ( double* ) B_gpu;
for ( i = 0; i < n_B; i++ )
cublasDaxpy( m_B,
*buff_alpha,
buff_A_gpu + i * ldim_A, inc_A,
buff_B_gpu + i * ldim_B, inc_B );
break;
}
case FLA_COMPLEX:
{
cuComplex* buff_alpha = ( cuComplex* ) FLA_COMPLEX_PTR( alpha );
cuComplex* buff_A_gpu = ( cuComplex* ) A_gpu;
cuComplex* buff_B_gpu = ( cuComplex* ) B_gpu;
for ( i = 0; i < n_B; i++ )
cublasCaxpy( m_B,
*buff_alpha,
buff_A_gpu + i * ldim_A, inc_A,
buff_B_gpu + i * ldim_B, inc_B );
break;
}
case FLA_DOUBLE_COMPLEX:
{
cuDoubleComplex* buff_alpha = ( cuDoubleComplex* ) FLA_DOUBLE_COMPLEX_PTR( alpha );
cuDoubleComplex* buff_A_gpu = ( cuDoubleComplex* ) A_gpu;
cuDoubleComplex* buff_B_gpu = ( cuDoubleComplex* ) B_gpu;
for ( i = 0; i < n_B; i++ )
cublasZaxpy( m_B,
*buff_alpha,
buff_A_gpu + i * ldim_A, inc_A,
buff_B_gpu + i * ldim_B, inc_B );
break;
}
}
return FLA_SUCCESS;
}
| FLA_Error FLA_Axpy_internal_check | ( | FLA_Obj | alpha, |
| FLA_Obj | A, | ||
| FLA_Obj | B, | ||
| fla_axpy_t * | cntl | ||
| ) |
References FLA_Check_conformal_dims(), FLA_Check_identical_object_elemtype(), and FLA_Check_null_pointer().
Referenced by FLA_Axpy_internal().
{
FLA_Error e_val;
// Abort if the control structure is NULL.
e_val = FLA_Check_null_pointer( ( void* ) cntl );
FLA_Check_error_code( e_val );
// Verify that the object element types are identical.
e_val = FLA_Check_identical_object_elemtype( A, B );
FLA_Check_error_code( e_val );
// Verify conformality between all the objects. This check works regardless
// of whether the element type is FLA_MATRIX or FLA_SCALAR because the
// element length and width are used instead of scalar length and width.
e_val = FLA_Check_conformal_dims( FLA_NO_TRANSPOSE, A, B );
FLA_Check_error_code( e_val );
return FLA_SUCCESS;
}
| FLA_Error FLA_Axpy_task | ( | FLA_Obj | alpha, |
| FLA_Obj | A, | ||
| FLA_Obj | B, | ||
| fla_axpy_t * | cntl | ||
| ) |
References FLA_Axpy_external().
Referenced by FLA_Axpy_internal(), FLASH_Queue_exec_task(), and FLASH_Queue_exec_task_gpu().
{
return FLA_Axpy_external( alpha, A, B );
}
References FLA_Axpyrt_external().
{
return FLA_Axpyrt_external( uplo, trans, alpha, A, B );
}
References FLA_Check_conformal_dims(), FLA_Check_consistent_object_datatype(), FLA_Check_floating_object(), FLA_Check_identical_object_datatype(), FLA_Check_if_scalar(), FLA_Check_nonconstant_object(), and FLA_Check_valid_trans().
Referenced by FLA_Axpyrt_external().
{
FLA_Error e_val;
e_val = FLA_Check_valid_trans( uplo );
FLA_Check_error_code( e_val );
e_val = FLA_Check_valid_trans( trans );
FLA_Check_error_code( e_val );
e_val = FLA_Check_floating_object( A );
FLA_Check_error_code( e_val );
e_val = FLA_Check_nonconstant_object( A );
FLA_Check_error_code( e_val );
e_val = FLA_Check_identical_object_datatype( A, B );
FLA_Check_error_code( e_val );
e_val = FLA_Check_consistent_object_datatype( A, alpha );
FLA_Check_error_code( e_val );
e_val = FLA_Check_if_scalar( alpha );
FLA_Check_error_code( e_val );
e_val = FLA_Check_conformal_dims( trans, A, B );
FLA_Check_error_code( e_val );
return FLA_SUCCESS;
}
| FLA_Error FLA_Axpyrt_external | ( | FLA_Uplo | uplo, |
| FLA_Trans | trans, | ||
| FLA_Obj | alpha, | ||
| FLA_Obj | A, | ||
| FLA_Obj | B | ||
| ) |
References bl1_caxpymrt(), bl1_daxpymrt(), bl1_saxpymrt(), bl1_zaxpymrt(), FLA_Axpyrt_check(), FLA_Check_error_level(), FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_has_zero_dim(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Obj_width(), FLA_Param_map_flame_to_blis_trans(), and FLA_Param_map_flame_to_blis_uplo().
Referenced by FLA_Axpyrt().
{
FLA_Datatype datatype;
int m_B, n_B;
int rs_A, cs_A;
int rs_B, cs_B;
uplo1_t blis_uplo;
trans1_t blis_trans;
if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
FLA_Axpyrt_check( uplo, trans, alpha, A, B );
if ( FLA_Obj_has_zero_dim( A ) ) return FLA_SUCCESS;
datatype = FLA_Obj_datatype( A );
rs_A = FLA_Obj_row_stride( A );
cs_A = FLA_Obj_col_stride( A );
m_B = FLA_Obj_length( B );
n_B = FLA_Obj_width( B );
rs_B = FLA_Obj_row_stride( B );
cs_B = FLA_Obj_col_stride( B );
FLA_Param_map_flame_to_blis_uplo( uplo, &blis_uplo );
FLA_Param_map_flame_to_blis_trans( trans, &blis_trans );
switch ( datatype ){
case FLA_FLOAT:
{
float *buff_alpha = ( float * ) FLA_FLOAT_PTR( alpha );
float *buff_A = ( float * ) FLA_FLOAT_PTR( A );
float *buff_B = ( float * ) FLA_FLOAT_PTR( B );
bl1_saxpymrt( blis_uplo,
blis_trans,
m_B,
n_B,
buff_alpha,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
break;
}
case FLA_DOUBLE:
{
double *buff_alpha = ( double * ) FLA_DOUBLE_PTR( alpha );
double *buff_A = ( double * ) FLA_DOUBLE_PTR( A );
double *buff_B = ( double * ) FLA_DOUBLE_PTR( B );
bl1_daxpymrt( blis_uplo,
blis_trans,
m_B,
n_B,
buff_alpha,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
break;
}
case FLA_COMPLEX:
{
scomplex *buff_alpha = ( scomplex * ) FLA_COMPLEX_PTR( alpha );
scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
scomplex *buff_B = ( scomplex * ) FLA_COMPLEX_PTR( B );
bl1_caxpymrt( blis_uplo,
blis_trans,
m_B,
n_B,
buff_alpha,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
break;
}
case FLA_DOUBLE_COMPLEX:
{
dcomplex *buff_alpha = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( alpha );
dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
dcomplex *buff_B = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( B );
bl1_zaxpymrt( blis_uplo,
blis_trans,
m_B,
n_B,
buff_alpha,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
break;
}
}
return FLA_SUCCESS;
}
References FLA_Axpys_external().
Referenced by FLA_Lyap_h_unb_var2(), FLA_Lyap_h_unb_var3(), FLA_Lyap_h_unb_var4(), FLA_Lyap_n_unb_var2(), FLA_Lyap_n_unb_var3(), and FLA_Lyap_n_unb_var4().
{
return FLA_Axpys_external( alpha0, alpha1, A, beta, B );
}
References FLA_Check_conformal_dims(), FLA_Check_consistent_object_datatype(), FLA_Check_floating_object(), FLA_Check_identical_object_datatype(), FLA_Check_if_scalar(), and FLA_Check_nonconstant_object().
Referenced by FLA_Axpys_external().
{
FLA_Error e_val;
e_val = FLA_Check_floating_object( A );
FLA_Check_error_code( e_val );
e_val = FLA_Check_nonconstant_object( A );
FLA_Check_error_code( e_val );
e_val = FLA_Check_identical_object_datatype( A, B );
FLA_Check_error_code( e_val );
e_val = FLA_Check_consistent_object_datatype( A, alpha0 );
FLA_Check_error_code( e_val );
e_val = FLA_Check_consistent_object_datatype( A, alpha1 );
FLA_Check_error_code( e_val );
e_val = FLA_Check_consistent_object_datatype( A, beta );
FLA_Check_error_code( e_val );
e_val = FLA_Check_if_scalar( alpha0 );
FLA_Check_error_code( e_val );
e_val = FLA_Check_if_scalar( alpha1 );
FLA_Check_error_code( e_val );
e_val = FLA_Check_if_scalar( beta );
FLA_Check_error_code( e_val );
e_val = FLA_Check_conformal_dims( FLA_NO_TRANSPOSE, A, B );
FLA_Check_error_code( e_val );
return FLA_SUCCESS;
}
References bl1_caxpysmt(), bl1_daxpysmt(), bl1_saxpysmt(), bl1_zaxpysmt(), FLA_Axpys_check(), FLA_Check_error_level(), FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_has_zero_dim(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Obj_width(), and FLA_Param_map_flame_to_blis_trans().
Referenced by FLA_Axpys(), FLA_Hemm_ll_unb_var1(), FLA_Hemm_ll_unb_var2(), FLA_Hemm_ll_unb_var3(), FLA_Hemm_ll_unb_var4(), FLA_Hemm_ll_unb_var5(), FLA_Hemm_ll_unb_var6(), FLA_Hemm_ll_unb_var7(), FLA_Hemm_ll_unb_var8(), FLA_Hemm_lu_unb_var1(), FLA_Hemm_lu_unb_var2(), FLA_Hemm_lu_unb_var3(), FLA_Hemm_lu_unb_var4(), FLA_Hemm_lu_unb_var5(), FLA_Hemm_lu_unb_var6(), FLA_Hemm_lu_unb_var7(), FLA_Hemm_lu_unb_var8(), FLA_Hemm_rl_unb_var1(), FLA_Hemm_rl_unb_var2(), FLA_Hemm_rl_unb_var3(), FLA_Hemm_rl_unb_var4(), FLA_Hemm_rl_unb_var5(), FLA_Hemm_rl_unb_var6(), FLA_Hemm_rl_unb_var7(), FLA_Hemm_rl_unb_var8(), FLA_Hemm_ru_unb_var1(), FLA_Hemm_ru_unb_var2(), FLA_Hemm_ru_unb_var3(), FLA_Hemm_ru_unb_var4(), FLA_Hemm_ru_unb_var5(), FLA_Hemm_ru_unb_var6(), FLA_Hemm_ru_unb_var7(), FLA_Hemm_ru_unb_var8(), FLA_Symm_ll_unb_var1(), FLA_Symm_ll_unb_var2(), FLA_Symm_ll_unb_var3(), FLA_Symm_ll_unb_var4(), FLA_Symm_ll_unb_var5(), FLA_Symm_ll_unb_var6(), FLA_Symm_ll_unb_var7(), FLA_Symm_ll_unb_var8(), FLA_Symm_lu_unb_var1(), FLA_Symm_lu_unb_var2(), FLA_Symm_lu_unb_var3(), FLA_Symm_lu_unb_var4(), FLA_Symm_lu_unb_var5(), FLA_Symm_lu_unb_var6(), FLA_Symm_lu_unb_var7(), FLA_Symm_lu_unb_var8(), FLA_Symm_rl_unb_var1(), FLA_Symm_rl_unb_var2(), FLA_Symm_rl_unb_var3(), FLA_Symm_rl_unb_var4(), FLA_Symm_rl_unb_var5(), FLA_Symm_rl_unb_var6(), FLA_Symm_rl_unb_var7(), FLA_Symm_rl_unb_var8(), FLA_Symm_ru_unb_var1(), FLA_Symm_ru_unb_var2(), FLA_Symm_ru_unb_var3(), FLA_Symm_ru_unb_var4(), FLA_Symm_ru_unb_var5(), FLA_Symm_ru_unb_var6(), FLA_Symm_ru_unb_var7(), and FLA_Symm_ru_unb_var8().
{
FLA_Datatype datatype;
int m_B, n_B;
int rs_A, cs_A;
int rs_B, cs_B;
trans1_t blis_trans;
if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
FLA_Axpys_check( alpha0, alpha1, A, beta, B );
if ( FLA_Obj_has_zero_dim( A ) ) return FLA_SUCCESS;
datatype = FLA_Obj_datatype( A );
rs_A = FLA_Obj_row_stride( A );
cs_A = FLA_Obj_col_stride( A );
m_B = FLA_Obj_length( B );
n_B = FLA_Obj_width( B );
rs_B = FLA_Obj_row_stride( B );
cs_B = FLA_Obj_col_stride( B );
FLA_Param_map_flame_to_blis_trans( FLA_NO_TRANSPOSE, &blis_trans );
switch ( datatype ){
case FLA_FLOAT:
{
float *buff_alpha0 = ( float * ) FLA_FLOAT_PTR( alpha0 );
float *buff_alpha1 = ( float * ) FLA_FLOAT_PTR( alpha1 );
float *buff_beta = ( float * ) FLA_FLOAT_PTR( beta );
float *buff_A = ( float * ) FLA_FLOAT_PTR( A );
float *buff_B = ( float * ) FLA_FLOAT_PTR( B );
bl1_saxpysmt( blis_trans,
m_B,
n_B,
buff_alpha0,
buff_alpha1,
buff_A, rs_A, cs_A,
buff_beta,
buff_B, rs_B, cs_B );
break;
}
case FLA_DOUBLE:
{
double *buff_alpha0 = ( double * ) FLA_DOUBLE_PTR( alpha0 );
double *buff_alpha1 = ( double * ) FLA_DOUBLE_PTR( alpha1 );
double *buff_beta = ( double * ) FLA_DOUBLE_PTR( beta );
double *buff_A = ( double * ) FLA_DOUBLE_PTR( A );
double *buff_B = ( double * ) FLA_DOUBLE_PTR( B );
bl1_daxpysmt( blis_trans,
m_B,
n_B,
buff_alpha0,
buff_alpha1,
buff_A, rs_A, cs_A,
buff_beta,
buff_B, rs_B, cs_B );
break;
}
case FLA_COMPLEX:
{
scomplex *buff_alpha0 = ( scomplex * ) FLA_COMPLEX_PTR( alpha0 );
scomplex *buff_alpha1 = ( scomplex * ) FLA_COMPLEX_PTR( alpha1 );
scomplex *buff_beta = ( scomplex * ) FLA_COMPLEX_PTR( beta );
scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
scomplex *buff_B = ( scomplex * ) FLA_COMPLEX_PTR( B );
bl1_caxpysmt( blis_trans,
m_B,
n_B,
buff_alpha0,
buff_alpha1,
buff_A, rs_A, cs_A,
buff_beta,
buff_B, rs_B, cs_B );
break;
}
case FLA_DOUBLE_COMPLEX:
{
dcomplex *buff_alpha0 = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( alpha0 );
dcomplex *buff_alpha1 = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( alpha1 );
dcomplex *buff_beta = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( beta );
dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
dcomplex *buff_B = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( B );
bl1_zaxpysmt( blis_trans,
m_B,
n_B,
buff_alpha0,
buff_alpha1,
buff_A, rs_A, cs_A,
buff_beta,
buff_B, rs_B, cs_B );
break;
}
}
return FLA_SUCCESS;
}
References FLA_Axpyt_check(), FLA_Axpyt_external(), FLA_Axpyt_internal(), and FLA_Check_error_level().
Referenced by FLA_Bidiag_UT_u_step_unb_var2(), FLA_Bidiag_UT_u_step_unb_var3(), FLA_Bidiag_UT_u_step_unb_var4(), FLA_Bidiag_UT_u_step_unb_var5(), FLA_Hess_UT_step_unb_var2(), FLA_Hess_UT_step_unb_var3(), FLA_Hess_UT_step_unb_var4(), FLA_Hess_UT_step_unb_var5(), and FLA_Tridiag_UT_l_step_unb_var2().
{
FLA_Error r_val;
#ifdef FLA_ENABLE_BLAS1_FRONT_END_CNTL_TREES
// Check parameters.
if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
FLA_Axpyt_check( trans, alpha, A, B );
// Invoke FLA_Axpyt_internal() with flat control tree that simply calls
// external wrapper.
r_val = FLA_Axpyt_internal( trans, alpha, A, B, fla_axpyt_cntl_blas );
#else
r_val = FLA_Axpyt_external( trans, alpha, A, B );
#endif
return r_val;
}
| FLA_Error FLA_Axpyt_c_task | ( | FLA_Obj | alpha, |
| FLA_Obj | A, | ||
| FLA_Obj | B, | ||
| fla_axpyt_t * | cntl | ||
| ) |
References FLA_Axpyt_external().
Referenced by FLA_Axpyt_c().
{
return FLA_Axpyt_external( FLA_CONJ_NO_TRANSPOSE, alpha, A, B );
}
References FLA_Check_conformal_dims(), FLA_Check_consistent_object_datatype(), FLA_Check_floating_object(), FLA_Check_identical_object_datatype(), FLA_Check_if_scalar(), FLA_Check_nonconstant_object(), and FLA_Check_valid_trans().
Referenced by FLA_Axpyt(), FLA_Axpyt_external(), and FLASH_Axpyt().
{
FLA_Error e_val;
e_val = FLA_Check_valid_trans( trans );
FLA_Check_error_code( e_val );
e_val = FLA_Check_floating_object( A );
FLA_Check_error_code( e_val );
e_val = FLA_Check_nonconstant_object( A );
FLA_Check_error_code( e_val );
e_val = FLA_Check_identical_object_datatype( A, B );
FLA_Check_error_code( e_val );
e_val = FLA_Check_consistent_object_datatype( A, alpha );
FLA_Check_error_code( e_val );
e_val = FLA_Check_if_scalar( alpha );
FLA_Check_error_code( e_val );
e_val = FLA_Check_conformal_dims( trans, A, B );
FLA_Check_error_code( e_val );
return FLA_SUCCESS;
}
References bl1_caxpymt(), bl1_daxpymt(), bl1_saxpymt(), bl1_zaxpymt(), FLA_Axpyt_check(), FLA_Check_error_level(), FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_has_zero_dim(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Obj_width(), and FLA_Param_map_flame_to_blis_trans().
Referenced by FLA_Axpy_buffer_to_object(), FLA_Axpy_object_to_buffer(), FLA_Axpyt(), FLA_Axpyt_c_task(), FLA_Axpyt_h_task(), FLA_Axpyt_n_task(), FLA_Axpyt_t_task(), and FLA_Axpyt_task().
{
FLA_Datatype datatype;
int m_B, n_B;
int rs_A, cs_A;
int rs_B, cs_B;
trans1_t blis_trans;
if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
FLA_Axpyt_check( trans, alpha, A, B );
if ( FLA_Obj_has_zero_dim( A ) ) return FLA_SUCCESS;
datatype = FLA_Obj_datatype( A );
rs_A = FLA_Obj_row_stride( A );
cs_A = FLA_Obj_col_stride( A );
m_B = FLA_Obj_length( B );
n_B = FLA_Obj_width( B );
rs_B = FLA_Obj_row_stride( B );
cs_B = FLA_Obj_col_stride( B );
FLA_Param_map_flame_to_blis_trans( trans, &blis_trans );
switch ( datatype ){
case FLA_FLOAT:
{
float *buff_alpha = ( float * ) FLA_FLOAT_PTR( alpha );
float *buff_A = ( float * ) FLA_FLOAT_PTR( A );
float *buff_B = ( float * ) FLA_FLOAT_PTR( B );
bl1_saxpymt( blis_trans,
m_B,
n_B,
buff_alpha,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
break;
}
case FLA_DOUBLE:
{
double *buff_alpha = ( double * ) FLA_DOUBLE_PTR( alpha );
double *buff_A = ( double * ) FLA_DOUBLE_PTR( A );
double *buff_B = ( double * ) FLA_DOUBLE_PTR( B );
bl1_daxpymt( blis_trans,
m_B,
n_B,
buff_alpha,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
break;
}
case FLA_COMPLEX:
{
scomplex *buff_alpha = ( scomplex * ) FLA_COMPLEX_PTR( alpha );
scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
scomplex *buff_B = ( scomplex * ) FLA_COMPLEX_PTR( B );
bl1_caxpymt( blis_trans,
m_B,
n_B,
buff_alpha,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
break;
}
case FLA_DOUBLE_COMPLEX:
{
dcomplex *buff_alpha = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( alpha );
dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
dcomplex *buff_B = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( B );
bl1_zaxpymt( blis_trans,
m_B,
n_B,
buff_alpha,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
break;
}
}
return FLA_SUCCESS;
}
| FLA_Error FLA_Axpyt_h_task | ( | FLA_Obj | alpha, |
| FLA_Obj | A, | ||
| FLA_Obj | B, | ||
| fla_axpyt_t * | cntl | ||
| ) |
References FLA_Axpyt_external().
Referenced by FLA_Axpyt_h().
{
return FLA_Axpyt_external( FLA_CONJ_TRANSPOSE, alpha, A, B );
}
| FLA_Error FLA_Axpyt_internal_check | ( | FLA_Trans | trans, |
| FLA_Obj | alpha, | ||
| FLA_Obj | A, | ||
| FLA_Obj | B, | ||
| fla_axpyt_t * | cntl | ||
| ) |
References FLA_Check_conformal_dims(), FLA_Check_identical_object_elemtype(), and FLA_Check_null_pointer().
Referenced by FLA_Axpyt_internal().
{
FLA_Error e_val;
// Abort if the control structure is NULL.
e_val = FLA_Check_null_pointer( ( void* ) cntl );
FLA_Check_error_code( e_val );
// Verify that the object element types are identical.
e_val = FLA_Check_identical_object_elemtype( A, B );
FLA_Check_error_code( e_val );
// Verify conformality between all the objects. This check works regardless
// of whether the element type is FLA_MATRIX or FLA_SCALAR because the
// element length and width are used instead of scalar length and width.
e_val = FLA_Check_conformal_dims( trans, A, B );
FLA_Check_error_code( e_val );
return FLA_SUCCESS;
}
| FLA_Error FLA_Axpyt_n_task | ( | FLA_Obj | alpha, |
| FLA_Obj | A, | ||
| FLA_Obj | B, | ||
| fla_axpyt_t * | cntl | ||
| ) |
References FLA_Axpyt_external().
Referenced by FLA_Axpyt_n().
{
return FLA_Axpyt_external( FLA_NO_TRANSPOSE, alpha, A, B );
}
| FLA_Error FLA_Axpyt_t_task | ( | FLA_Obj | alpha, |
| FLA_Obj | A, | ||
| FLA_Obj | B, | ||
| fla_axpyt_t * | cntl | ||
| ) |
References FLA_Axpyt_external().
Referenced by FLA_Axpyt_t().
{
return FLA_Axpyt_external( FLA_TRANSPOSE, alpha, A, B );
}
| FLA_Error FLA_Axpyt_task | ( | FLA_Trans | trans, |
| FLA_Obj | alpha, | ||
| FLA_Obj | A, | ||
| FLA_Obj | B, | ||
| fla_axpyt_t * | cntl | ||
| ) |
References FLA_Axpyt_external().
Referenced by FLASH_Queue_exec_task().
{
return FLA_Axpyt_external( trans, alpha, A, B );
}
References FLA_Check_error_level(), FLA_Copy_check(), FLA_Copy_external(), and FLA_Copy_internal().
Referenced by FLA_Bidiag_UT_u_blf_var4(), FLA_Bidiag_UT_u_blk_var4(), FLA_Bidiag_UT_u_blk_var5(), FLA_Bidiag_UT_u_step_unb_var2(), FLA_Bidiag_UT_u_step_unb_var3(), FLA_Bidiag_UT_u_step_unb_var4(), FLA_Bidiag_UT_u_step_unb_var5(), FLA_Fill_with_cluster_dist(), FLA_Fill_with_geometric_dist(), FLA_Fill_with_inverse_dist(), FLA_Fill_with_linear_dist(), FLA_Fill_with_logarithmic_dist(), FLA_Fill_with_random_dist(), FLA_Hess_UT_step_unb_var1(), FLA_Hess_UT_step_unb_var2(), FLA_Hess_UT_step_unb_var3(), FLA_Hess_UT_step_unb_var4(), FLA_Hess_UT_step_unb_var5(), FLA_Hevd_compute_scaling(), FLA_Hevd_lv_unb_var1(), FLA_Hevd_lv_unb_var2(), FLA_Sort(), FLA_Svd_compute_scaling(), FLA_Svd_ext_u_unb_var1(), FLA_Svd_uv_unb_var1(), FLA_Svd_uv_unb_var2(), FLA_Tevd_external(), FLA_Tridiag_UT_l_step_unb_var1(), FLA_Tridiag_UT_l_step_unb_var2(), and FLA_Tridiag_UT_l_step_unb_var3().
{
FLA_Error r_val;
#ifdef FLA_ENABLE_BLAS1_FRONT_END_CNTL_TREES
// Check parameters.
if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
FLA_Copy_check( A, B );
// Invoke FLA_Copy_internal() with flat control tree that simply calls
// external wrapper.
r_val = FLA_Copy_internal( A, B, fla_copy_cntl_blas );
#else
r_val = FLA_Copy_external( A, B );
#endif
return r_val;
}
| FLA_Error FLA_Copy_check | ( | FLA_Obj | A, |
| FLA_Obj | B | ||
| ) |
References FLA_Check_conformal_dims(), FLA_Check_equal_vector_dims(), FLA_Check_nonconstant_object(), FLA_Check_valid_object_datatype(), and FLA_Obj_is_vector().
Referenced by FLA_Copy(), FLA_Copy_external(), FLA_Copy_external_gpu(), and FLASH_Copy().
{
FLA_Error e_val;
e_val = FLA_Check_valid_object_datatype( A );
FLA_Check_error_code( e_val );
e_val = FLA_Check_nonconstant_object( B );
FLA_Check_error_code( e_val );
if ( FLA_Obj_is_vector( A ) && FLA_Obj_is_vector( B ) )
{
e_val = FLA_Check_equal_vector_dims( A, B );
FLA_Check_error_code( e_val );
}
else
{
e_val = FLA_Check_conformal_dims( FLA_NO_TRANSPOSE, A, B );
FLA_Check_error_code( e_val );
}
return FLA_SUCCESS;
}
| FLA_Error FLA_Copy_external | ( | FLA_Obj | A, |
| FLA_Obj | B | ||
| ) |
References bl1_ccopymt(), bl1_cdcopymt(), bl1_cscopymt(), bl1_czcopymt(), bl1_dccopymt(), bl1_dcopymt(), bl1_dscopymt(), bl1_dzcopymt(), bl1_icopymt(), bl1_sccopymt(), bl1_scopymt(), bl1_sdcopymt(), bl1_szcopymt(), bl1_zccopymt(), bl1_zcopymt(), bl1_zdcopymt(), bl1_zscopymt(), FLA_Check_error_level(), FLA_Copy_check(), FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_has_zero_dim(), FLA_Obj_is_conformal_to(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Obj_width(), and FLA_Param_map_flame_to_blis_trans().
Referenced by FLA_Accum_T_UT_fc_unb_var1(), FLA_Accum_T_UT_fr_unb_var1(), FLA_Apply_H2_UT_l_unb_var1(), FLA_Apply_H2_UT_piv_row(), FLA_Apply_H2_UT_r_unb_var1(), FLA_Apply_HUD_UT_lh_unb_var1(), FLA_Bidiag_UT_recover_tau_submatrix(), FLA_CAQR2_UT_unb_var1(), FLA_Chol_solve(), FLA_Copy(), FLA_Copy_task(), FLA_Eig_gest_il_unb_var3(), FLA_Eig_gest_il_unb_var4(), FLA_Eig_gest_il_unb_var5(), FLA_Eig_gest_iu_unb_var3(), FLA_Eig_gest_iu_unb_var4(), FLA_Eig_gest_iu_unb_var5(), FLA_Eig_gest_nl_unb_var4(), FLA_Eig_gest_nl_unb_var5(), FLA_Eig_gest_nu_unb_var4(), FLA_Eig_gest_nu_unb_var5(), FLA_Hess_UT_blf_var2(), FLA_Hess_UT_blf_var3(), FLA_Hess_UT_blf_var4(), FLA_Hess_UT_blk_var1(), FLA_Hess_UT_blk_var2(), FLA_Hess_UT_blk_var3(), FLA_Hess_UT_blk_var4(), FLA_Hess_UT_recover_tau_submatrix(), FLA_LQ_UT_solve(), FLA_LU_nopiv_solve(), FLA_LU_piv_copy_task(), FLA_LU_piv_solve(), FLA_QR_UT_recover_tau_submatrix(), FLA_QR_UT_solve(), FLA_SA_LU_unb(), FLA_Tridiag_UT_l_blf_var3(), FLA_Tridiag_UT_l_blk_var3(), FLA_Tridiag_UT_recover_tau_submatrix(), FLA_Trmvsx_external(), FLA_Trsvsx_external(), FLA_UDdate_UT_solve(), and FLASH_Copy_hierarchy().
{
FLA_Datatype dt_A;
FLA_Datatype dt_B;
int m_B, n_B;
int rs_A, cs_A;
int rs_B, cs_B;
trans1_t blis_trans;
if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
FLA_Copy_check( A, B );
if ( FLA_Obj_has_zero_dim( A ) ) return FLA_SUCCESS;
dt_A = FLA_Obj_datatype( A );
dt_B = FLA_Obj_datatype( B );
rs_A = FLA_Obj_row_stride( A );
cs_A = FLA_Obj_col_stride( A );
m_B = FLA_Obj_length( B );
n_B = FLA_Obj_width( B );
rs_B = FLA_Obj_row_stride( B );
cs_B = FLA_Obj_col_stride( B );
if ( FLA_Obj_is_conformal_to( FLA_NO_TRANSPOSE, A, B ) )
FLA_Param_map_flame_to_blis_trans( FLA_NO_TRANSPOSE, &blis_trans );
else // if ( FLA_Obj_is_conformal_to( FLA_TRANSPOSE, A, B ) )
FLA_Param_map_flame_to_blis_trans( FLA_TRANSPOSE, &blis_trans );
// If A is of type FLA_CONSTANT, then we have to proceed based on the
// datatype of B.
if ( dt_A == FLA_CONSTANT )
{
if ( dt_B == FLA_FLOAT )
{
float *buff_A = ( float * ) FLA_FLOAT_PTR( A );
float *buff_B = ( float * ) FLA_FLOAT_PTR( B );
bl1_scopymt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_DOUBLE )
{
double *buff_A = ( double * ) FLA_DOUBLE_PTR( A );
double *buff_B = ( double * ) FLA_DOUBLE_PTR( B );
bl1_dcopymt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_COMPLEX )
{
scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
scomplex *buff_B = ( scomplex * ) FLA_COMPLEX_PTR( B );
bl1_ccopymt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_DOUBLE_COMPLEX )
{
dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
dcomplex *buff_B = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( B );
bl1_zcopymt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
}
else if ( dt_A == FLA_INT )
{
int* buff_A = ( int * ) FLA_INT_PTR( A );
int* buff_B = ( int * ) FLA_INT_PTR( B );
bl1_icopymt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_A == FLA_FLOAT )
{
float *buff_A = ( float * ) FLA_FLOAT_PTR( A );
if ( dt_B == FLA_FLOAT )
{
float *buff_B = ( float * ) FLA_FLOAT_PTR( B );
bl1_scopymt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_DOUBLE )
{
double *buff_B = ( double * ) FLA_DOUBLE_PTR( B );
bl1_sdcopymt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_COMPLEX )
{
scomplex *buff_B = ( scomplex * ) FLA_COMPLEX_PTR( B );
bl1_sccopymt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_DOUBLE_COMPLEX )
{
dcomplex *buff_B = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( B );
bl1_szcopymt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
}
else if ( dt_A == FLA_DOUBLE )
{
double *buff_A = ( double * ) FLA_DOUBLE_PTR( A );
if ( dt_B == FLA_FLOAT )
{
float *buff_B = ( float * ) FLA_FLOAT_PTR( B );
bl1_dscopymt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_DOUBLE )
{
double *buff_B = ( double * ) FLA_DOUBLE_PTR( B );
bl1_dcopymt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_COMPLEX )
{
scomplex *buff_B = ( scomplex * ) FLA_COMPLEX_PTR( B );
bl1_dccopymt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_DOUBLE_COMPLEX )
{
dcomplex *buff_B = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( B );
bl1_dzcopymt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
}
else if ( dt_A == FLA_COMPLEX )
{
scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
if ( dt_B == FLA_FLOAT )
{
float *buff_B = ( float * ) FLA_FLOAT_PTR( B );
bl1_cscopymt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_DOUBLE )
{
double *buff_B = ( double * ) FLA_DOUBLE_PTR( B );
bl1_cdcopymt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_COMPLEX )
{
scomplex *buff_B = ( scomplex * ) FLA_COMPLEX_PTR( B );
bl1_ccopymt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_DOUBLE_COMPLEX )
{
dcomplex *buff_B = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( B );
bl1_czcopymt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
}
else if ( dt_A == FLA_DOUBLE_COMPLEX )
{
dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
if ( dt_B == FLA_FLOAT )
{
float *buff_B = ( float * ) FLA_FLOAT_PTR( B );
bl1_zscopymt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_DOUBLE )
{
double *buff_B = ( double * ) FLA_DOUBLE_PTR( B );
bl1_zdcopymt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_COMPLEX )
{
scomplex *buff_B = ( scomplex * ) FLA_COMPLEX_PTR( B );
bl1_zccopymt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_DOUBLE_COMPLEX )
{
dcomplex *buff_B = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( B );
bl1_zcopymt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
}
return FLA_SUCCESS;
}
| FLA_Error FLA_Copy_external_gpu | ( | FLA_Obj | A, |
| void * | A_gpu, | ||
| FLA_Obj | B, | ||
| void * | B_gpu | ||
| ) |
References FLA_Check_error_level(), FLA_Copy_check(), FLA_Obj_datatype(), FLA_Obj_has_zero_dim(), FLA_Obj_length(), and FLA_Obj_width().
Referenced by FLASH_Queue_exec_task_gpu().
{
FLA_Datatype datatype;
int m_B, n_B;
int ldim_A, inc_A;
int ldim_B, inc_B;
int i;
if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
FLA_Copy_check( A, B );
if ( FLA_Obj_has_zero_dim( A ) ) return FLA_SUCCESS;
// It is important that we get the datatype of B and not A, since A could
// be an FLA_CONSTANT.
datatype = FLA_Obj_datatype( B );
ldim_A = FLA_Obj_length( A );
inc_A = 1;
m_B = FLA_Obj_length( B );
n_B = FLA_Obj_width( B );
ldim_B = FLA_Obj_length( B );
inc_B = 1;
switch ( datatype ){
case FLA_INT:
case FLA_FLOAT:
{
float* buff_A_gpu = ( float* ) A_gpu;
float* buff_B_gpu = ( float* ) B_gpu;
for ( i = 0; i < n_B; i++ )
cublasScopy( m_B,
buff_A_gpu + i * ldim_A, inc_A,
buff_B_gpu + i * ldim_B, inc_B );
break;
}
case FLA_DOUBLE:
{
double* buff_A_gpu = ( double* ) A_gpu;
double* buff_B_gpu = ( double* ) B_gpu;
for ( i = 0; i < n_B; i++ )
cublasDcopy( m_B,
buff_A_gpu + i * ldim_A, inc_A,
buff_B_gpu + i * ldim_B, inc_B );
break;
}
case FLA_COMPLEX:
{
cuComplex* buff_A_gpu = ( cuComplex* ) A_gpu;
cuComplex* buff_B_gpu = ( cuComplex* ) B_gpu;
for ( i = 0; i < n_B; i++ )
cublasCcopy( m_B,
buff_A_gpu + i * ldim_A, inc_A,
buff_B_gpu + i * ldim_B, inc_B );
break;
}
case FLA_DOUBLE_COMPLEX:
{
cuDoubleComplex* buff_A_gpu = ( cuDoubleComplex* ) A_gpu;
cuDoubleComplex* buff_B_gpu = ( cuDoubleComplex* ) B_gpu;
for ( i = 0; i < n_B; i++ )
cublasZcopy( m_B,
buff_A_gpu + i * ldim_A, inc_A,
buff_B_gpu + i * ldim_B, inc_B );
break;
}
}
return FLA_SUCCESS;
}
| FLA_Error FLA_Copy_internal_check | ( | FLA_Obj | A, |
| FLA_Obj | B, | ||
| fla_copy_t * | cntl | ||
| ) |
References FLA_Check_conformal_dims(), FLA_Check_identical_object_elemtype(), and FLA_Check_null_pointer().
Referenced by FLA_Copy_internal().
{
FLA_Error e_val;
// Abort if the control structure is NULL.
e_val = FLA_Check_null_pointer( ( void* ) cntl );
FLA_Check_error_code( e_val );
// Verify that the object element types are identical.
e_val = FLA_Check_identical_object_elemtype( A, B );
FLA_Check_error_code( e_val );
// Verify conformality between all the objects. This check works regardless
// of whether the element type is FLA_MATRIX or FLA_SCALAR because the
// element length and width are used instead of scalar length and width.
e_val = FLA_Check_conformal_dims( FLA_NO_TRANSPOSE, A, B );
FLA_Check_error_code( e_val );
return FLA_SUCCESS;
}
| FLA_Error FLA_Copy_task | ( | FLA_Obj | A, |
| FLA_Obj | B, | ||
| fla_copy_t * | cntl | ||
| ) |
References FLA_Copy_external().
Referenced by FLA_Copy_internal(), FLASH_Queue_exec_task(), and FLASH_Queue_exec_task_gpu().
{
return FLA_Copy_external( A, B );
}
References FLA_Check_error_level(), FLA_Copyr_external(), and FLA_Copyr_internal().
Referenced by FLA_Svd_ext_u_unb_var1(), FLA_Svd_uv_unb_var1(), and FLA_Svd_uv_unb_var2().
{
FLA_Error r_val;
#ifdef FLA_ENABLE_BLAS1_FRONT_END_CNTL_TREES
// Check parameters.
if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
FLA_Copyr_uheck( uplo, A, B );
// Invoke FLA_Copyr_internal() with flat control tree that simply calls
// external wrapper.
r_val = FLA_Copyr_internal( uplo, A, B, fla_copyr_cntl_blas );
#else
r_val = FLA_Copyr_external( uplo, A, B );
#endif
return r_val;
}
| FLA_Error FLA_Copyr_check | ( | FLA_Uplo | uplo, |
| FLA_Obj | A, | ||
| FLA_Obj | B | ||
| ) |
References FLA_Check_conformal_dims(), FLA_Check_nonconstant_object(), FLA_Check_valid_object_datatype(), and FLA_Check_valid_uplo().
Referenced by FLA_Copyr_external(), and FLASH_Copyr().
{
FLA_Error e_val;
e_val = FLA_Check_valid_uplo( uplo );
FLA_Check_error_code( e_val );
e_val = FLA_Check_valid_object_datatype( A );
FLA_Check_error_code( e_val );
e_val = FLA_Check_nonconstant_object( B );
FLA_Check_error_code( e_val );
e_val = FLA_Check_conformal_dims( FLA_NO_TRANSPOSE, A, B );
FLA_Check_error_code( e_val );
return FLA_SUCCESS;
}
| FLA_Error FLA_Copyr_external | ( | FLA_Uplo | uplo, |
| FLA_Obj | A, | ||
| FLA_Obj | B | ||
| ) |
References bl1_ccopymr(), bl1_cdcopymr(), bl1_cscopymr(), bl1_czcopymr(), bl1_dccopymr(), bl1_dcopymr(), bl1_dscopymr(), bl1_dzcopymr(), bl1_sccopymr(), bl1_scopymr(), bl1_sdcopymr(), bl1_szcopymr(), bl1_zccopymr(), bl1_zcopymr(), bl1_zdcopymr(), bl1_zscopymr(), FLA_Check_error_level(), FLA_Copyr_check(), FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_has_zero_dim(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Obj_width(), and FLA_Param_map_flame_to_blis_uplo().
Referenced by FLA_Copyr(), FLA_Copyr_l_task(), FLA_Copyr_task(), FLA_Copyr_u_task(), and FLA_QR_UT_copy_task().
{
FLA_Datatype dt_A;
FLA_Datatype dt_B;
int m_B, n_B;
int rs_A, cs_A;
int rs_B, cs_B;
uplo1_t blis_uplo;
if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
FLA_Copyr_check( uplo, A, B );
if ( FLA_Obj_has_zero_dim( A ) ) return FLA_SUCCESS;
dt_A = FLA_Obj_datatype( A );
dt_B = FLA_Obj_datatype( B );
rs_A = FLA_Obj_row_stride( A );
cs_A = FLA_Obj_col_stride( A );
m_B = FLA_Obj_length( B );
n_B = FLA_Obj_width( B );
rs_B = FLA_Obj_row_stride( B );
cs_B = FLA_Obj_col_stride( B );
FLA_Param_map_flame_to_blis_uplo( uplo, &blis_uplo );
// If A is of type FLA_CONSTANT, then we have to proceed based on the
// datatype of B.
if ( dt_A == FLA_CONSTANT )
{
if ( dt_B == FLA_FLOAT )
{
float *buff_A = ( float * ) FLA_FLOAT_PTR( A );
float *buff_B = ( float * ) FLA_FLOAT_PTR( B );
bl1_scopymr( blis_uplo,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_DOUBLE )
{
double *buff_A = ( double * ) FLA_DOUBLE_PTR( A );
double *buff_B = ( double * ) FLA_DOUBLE_PTR( B );
bl1_dcopymr( blis_uplo,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_COMPLEX )
{
scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
scomplex *buff_B = ( scomplex * ) FLA_COMPLEX_PTR( B );
bl1_ccopymr( blis_uplo,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_DOUBLE_COMPLEX )
{
dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
dcomplex *buff_B = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( B );
bl1_zcopymr( blis_uplo,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
}
/*
else if ( dt_A == FLA_INT )
{
int* buff_A = ( int * ) FLA_INT_PTR( A );
int* buff_B = ( int * ) FLA_INT_PTR( B );
bl1_icopymr( blis_uplo,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
*/
else if ( dt_A == FLA_FLOAT )
{
float *buff_A = ( float * ) FLA_FLOAT_PTR( A );
if ( dt_B == FLA_FLOAT )
{
float *buff_B = ( float * ) FLA_FLOAT_PTR( B );
bl1_scopymr( blis_uplo,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_DOUBLE )
{
double *buff_B = ( double * ) FLA_DOUBLE_PTR( B );
bl1_sdcopymr( blis_uplo,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_COMPLEX )
{
scomplex *buff_B = ( scomplex * ) FLA_COMPLEX_PTR( B );
bl1_sccopymr( blis_uplo,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_DOUBLE_COMPLEX )
{
dcomplex *buff_B = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( B );
bl1_szcopymr( blis_uplo,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
}
else if ( dt_A == FLA_DOUBLE )
{
double *buff_A = ( double * ) FLA_DOUBLE_PTR( A );
if ( dt_B == FLA_FLOAT )
{
float *buff_B = ( float * ) FLA_FLOAT_PTR( B );
bl1_dscopymr( blis_uplo,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_DOUBLE )
{
double *buff_B = ( double * ) FLA_DOUBLE_PTR( B );
bl1_dcopymr( blis_uplo,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_COMPLEX )
{
scomplex *buff_B = ( scomplex * ) FLA_COMPLEX_PTR( B );
bl1_dccopymr( blis_uplo,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_DOUBLE_COMPLEX )
{
dcomplex *buff_B = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( B );
bl1_dzcopymr( blis_uplo,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
}
else if ( dt_A == FLA_COMPLEX )
{
scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
if ( dt_B == FLA_FLOAT )
{
float *buff_B = ( float * ) FLA_FLOAT_PTR( B );
bl1_cscopymr( blis_uplo,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_DOUBLE )
{
double *buff_B = ( double * ) FLA_DOUBLE_PTR( B );
bl1_cdcopymr( blis_uplo,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_COMPLEX )
{
scomplex *buff_B = ( scomplex * ) FLA_COMPLEX_PTR( B );
bl1_ccopymr( blis_uplo,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_DOUBLE_COMPLEX )
{
dcomplex *buff_B = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( B );
bl1_czcopymr( blis_uplo,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
}
else if ( dt_A == FLA_DOUBLE_COMPLEX )
{
dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
if ( dt_B == FLA_FLOAT )
{
float *buff_B = ( float * ) FLA_FLOAT_PTR( B );
bl1_zscopymr( blis_uplo,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_DOUBLE )
{
double *buff_B = ( double * ) FLA_DOUBLE_PTR( B );
bl1_zdcopymr( blis_uplo,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_COMPLEX )
{
scomplex *buff_B = ( scomplex * ) FLA_COMPLEX_PTR( B );
bl1_zccopymr( blis_uplo,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_DOUBLE_COMPLEX )
{
dcomplex *buff_B = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( B );
bl1_zcopymr( blis_uplo,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
}
return FLA_SUCCESS;
}
| FLA_Error FLA_Copyr_internal_check | ( | FLA_Uplo | uplo, |
| FLA_Obj | A, | ||
| FLA_Obj | B, | ||
| fla_copyr_t * | cntl | ||
| ) |
References FLA_Check_conformal_dims(), FLA_Check_identical_object_elemtype(), and FLA_Check_null_pointer().
Referenced by FLA_Copyr_internal().
{
FLA_Error e_val;
// Abort if the control structure is NULL.
e_val = FLA_Check_null_pointer( ( void* ) cntl );
FLA_Check_error_code( e_val );
// Verify that the object element types are identical.
e_val = FLA_Check_identical_object_elemtype( A, B );
FLA_Check_error_code( e_val );
// Verify conformality between all the objects. This check works regardless
// of whether the element type is FLA_MATRIX or FLA_SCALAR because the
// element length and width are used instead of scalar length and width.
e_val = FLA_Check_conformal_dims( FLA_NO_TRANSPOSE, A, B );
FLA_Check_error_code( e_val );
return FLA_SUCCESS;
}
| FLA_Error FLA_Copyr_l_task | ( | FLA_Obj | A, |
| FLA_Obj | B, | ||
| fla_copyr_t * | cntl | ||
| ) |
References FLA_Copyr_external().
Referenced by FLA_Copyr_l().
{
return FLA_Copyr_external( FLA_LOWER_TRIANGULAR, A, B );
}
| FLA_Error FLA_Copyr_task | ( | FLA_Uplo | uplo, |
| FLA_Obj | A, | ||
| FLA_Obj | B, | ||
| fla_copyr_t * | cntl | ||
| ) |
References FLA_Copyr_external().
Referenced by FLASH_Queue_exec_task().
{
return FLA_Copyr_external( uplo, A, B );
}
| FLA_Error FLA_Copyr_u_task | ( | FLA_Obj | A, |
| FLA_Obj | B, | ||
| fla_copyr_t * | cntl | ||
| ) |
References FLA_Copyr_external().
Referenced by FLA_Copyr_u().
{
return FLA_Copyr_external( FLA_UPPER_TRIANGULAR, A, B );
}
References FLA_Copyrt_external().
Referenced by FLA_Lyap_h_unb_var1(), FLA_Lyap_h_unb_var2(), FLA_Lyap_h_unb_var3(), FLA_Lyap_h_unb_var4(), FLA_Lyap_n_unb_var1(), FLA_Lyap_n_unb_var2(), FLA_Lyap_n_unb_var3(), and FLA_Lyap_n_unb_var4().
{
return FLA_Copyrt_external( uplo, trans, A, B );
}
References FLA_Check_conformal_dims(), FLA_Check_nonconstant_object(), FLA_Check_valid_object_datatype(), FLA_Check_valid_trans(), and FLA_Check_valid_uplo().
Referenced by FLA_Copyrt_external().
{
FLA_Error e_val;
e_val = FLA_Check_valid_uplo( uplo );
FLA_Check_error_code( e_val );
e_val = FLA_Check_valid_trans( trans );
FLA_Check_error_code( e_val );
e_val = FLA_Check_valid_object_datatype( A );
FLA_Check_error_code( e_val );
e_val = FLA_Check_nonconstant_object( B );
FLA_Check_error_code( e_val );
e_val = FLA_Check_conformal_dims( trans, A, B );
FLA_Check_error_code( e_val );
return FLA_SUCCESS;
}
References bl1_ccopymrt(), bl1_cdcopymrt(), bl1_cscopymrt(), bl1_czcopymrt(), bl1_dccopymrt(), bl1_dcopymrt(), bl1_dscopymrt(), bl1_dzcopymrt(), bl1_sccopymrt(), bl1_scopymrt(), bl1_sdcopymrt(), bl1_szcopymrt(), bl1_zccopymrt(), bl1_zcopymrt(), bl1_zdcopymrt(), bl1_zscopymrt(), FLA_Check_error_level(), FLA_Copyrt_check(), FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_has_zero_dim(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Obj_width(), FLA_Param_map_flame_to_blis_trans(), and FLA_Param_map_flame_to_blis_uplo().
Referenced by FLA_Copyrt().
{
FLA_Datatype dt_A;
FLA_Datatype dt_B;
int m_B, n_B;
int rs_A, cs_A;
int rs_B, cs_B;
uplo1_t blis_uplo;
trans1_t blis_trans;
if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
FLA_Copyrt_check( uplo, trans, A, B );
if ( FLA_Obj_has_zero_dim( A ) ) return FLA_SUCCESS;
dt_A = FLA_Obj_datatype( A );
dt_B = FLA_Obj_datatype( B );
rs_A = FLA_Obj_row_stride( A );
cs_A = FLA_Obj_col_stride( A );
m_B = FLA_Obj_length( B );
n_B = FLA_Obj_width( B );
rs_B = FLA_Obj_row_stride( B );
cs_B = FLA_Obj_col_stride( B );
FLA_Param_map_flame_to_blis_uplo( uplo, &blis_uplo );
FLA_Param_map_flame_to_blis_trans( trans, &blis_trans );
// If A is of type FLA_CONSTANT, then we have to proceed based on the
// datatype of B.
if ( dt_A == FLA_CONSTANT )
{
if ( dt_B == FLA_FLOAT )
{
float *buff_A = ( float * ) FLA_FLOAT_PTR( A );
float *buff_B = ( float * ) FLA_FLOAT_PTR( B );
bl1_scopymrt( blis_uplo,
blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_DOUBLE )
{
double *buff_A = ( double * ) FLA_DOUBLE_PTR( A );
double *buff_B = ( double * ) FLA_DOUBLE_PTR( B );
bl1_dcopymrt( blis_uplo,
blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_COMPLEX )
{
scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
scomplex *buff_B = ( scomplex * ) FLA_COMPLEX_PTR( B );
bl1_ccopymrt( blis_uplo,
blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_DOUBLE_COMPLEX )
{
dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
dcomplex *buff_B = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( B );
bl1_zcopymrt( blis_uplo,
blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
}
/*
else if ( dt_A == FLA_INT )
{
int* buff_A = ( int * ) FLA_INT_PTR( A );
int* buff_B = ( int * ) FLA_INT_PTR( B );
bl1_icopymrt( blis_uplo,
blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
*/
else if ( dt_A == FLA_FLOAT )
{
float *buff_A = ( float * ) FLA_FLOAT_PTR( A );
if ( dt_B == FLA_FLOAT )
{
float *buff_B = ( float * ) FLA_FLOAT_PTR( B );
bl1_scopymrt( blis_uplo,
blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_DOUBLE )
{
double *buff_B = ( double * ) FLA_DOUBLE_PTR( B );
bl1_sdcopymrt( blis_uplo,
blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_COMPLEX )
{
scomplex *buff_B = ( scomplex * ) FLA_COMPLEX_PTR( B );
bl1_sccopymrt( blis_uplo,
blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_DOUBLE_COMPLEX )
{
dcomplex *buff_B = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( B );
bl1_szcopymrt( blis_uplo,
blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
}
else if ( dt_A == FLA_DOUBLE )
{
double *buff_A = ( double * ) FLA_DOUBLE_PTR( A );
if ( dt_B == FLA_FLOAT )
{
float *buff_B = ( float * ) FLA_FLOAT_PTR( B );
bl1_dscopymrt( blis_uplo,
blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_DOUBLE )
{
double *buff_B = ( double * ) FLA_DOUBLE_PTR( B );
bl1_dcopymrt( blis_uplo,
blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_COMPLEX )
{
scomplex *buff_B = ( scomplex * ) FLA_COMPLEX_PTR( B );
bl1_dccopymrt( blis_uplo,
blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_DOUBLE_COMPLEX )
{
dcomplex *buff_B = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( B );
bl1_dzcopymrt( blis_uplo,
blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
}
else if ( dt_A == FLA_COMPLEX )
{
scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
if ( dt_B == FLA_FLOAT )
{
float *buff_B = ( float * ) FLA_FLOAT_PTR( B );
bl1_cscopymrt( blis_uplo,
blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_DOUBLE )
{
double *buff_B = ( double * ) FLA_DOUBLE_PTR( B );
bl1_cdcopymrt( blis_uplo,
blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_COMPLEX )
{
scomplex *buff_B = ( scomplex * ) FLA_COMPLEX_PTR( B );
bl1_ccopymrt( blis_uplo,
blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_DOUBLE_COMPLEX )
{
dcomplex *buff_B = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( B );
bl1_czcopymrt( blis_uplo,
blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
}
else if ( dt_A == FLA_DOUBLE_COMPLEX )
{
dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
if ( dt_B == FLA_FLOAT )
{
float *buff_B = ( float * ) FLA_FLOAT_PTR( B );
bl1_zscopymrt( blis_uplo,
blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_DOUBLE )
{
double *buff_B = ( double * ) FLA_DOUBLE_PTR( B );
bl1_zdcopymrt( blis_uplo,
blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_COMPLEX )
{
scomplex *buff_B = ( scomplex * ) FLA_COMPLEX_PTR( B );
bl1_zccopymrt( blis_uplo,
blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_DOUBLE_COMPLEX )
{
dcomplex *buff_B = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( B );
bl1_zcopymrt( blis_uplo,
blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
}
return FLA_SUCCESS;
}
References FLA_Check_error_level(), FLA_Copyt_check(), FLA_Copyt_external(), and FLA_Copyt_internal().
Referenced by FLA_Bidiag_UT_l_realify_unb(), FLA_Bidiag_UT_u_blf_var4(), FLA_Bidiag_UT_u_blk_var4(), FLA_Bidiag_UT_u_blk_var5(), FLA_Bidiag_UT_u_realify_unb(), FLA_Bidiag_UT_u_step_unb_var1(), FLA_Bidiag_UT_u_step_unb_var2(), FLA_Bidiag_UT_u_step_unb_var3(), FLA_Bidiag_UT_u_step_unb_var4(), FLA_Bidiag_UT_u_step_unb_var5(), FLA_Hess_UT_step_unb_var2(), FLA_Hess_UT_step_unb_var3(), FLA_Hess_UT_step_unb_var4(), FLA_Hess_UT_step_unb_var5(), FLA_Lyap_h_unb_var1(), FLA_Lyap_h_unb_var2(), FLA_Lyap_h_unb_var3(), FLA_Lyap_h_unb_var4(), FLA_Lyap_n_unb_var1(), FLA_Lyap_n_unb_var2(), FLA_Lyap_n_unb_var3(), FLA_Lyap_n_unb_var4(), FLA_Tridiag_UT_l_realify_unb(), FLA_Tridiag_UT_l_step_unb_var2(), and FLA_Tridiag_UT_u_realify_unb().
{
FLA_Error r_val;
#ifdef FLA_ENABLE_BLAS1_FRONT_END_CNTL_TREES
// Check parameters.
if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
FLA_Copyt_check( trans, A, B );
// Invoke FLA_Copyt_internal() with flat control tree that simply calls
// external wrapper.
r_val = FLA_Copyt_internal( trans, A, B, fla_copyt_cntl_blas );
#else
r_val = FLA_Copyt_external( trans, A, B );
#endif
return r_val;
}
| FLA_Error FLA_Copyt_c_task | ( | FLA_Obj | A, |
| FLA_Obj | B, | ||
| fla_copyt_t * | cntl | ||
| ) |
References FLA_Copyt_external().
Referenced by FLA_Copyt_c().
{
return FLA_Copyt_external( FLA_CONJ_NO_TRANSPOSE, A, B );
}
| FLA_Error FLA_Copyt_check | ( | FLA_Trans | trans, |
| FLA_Obj | A, | ||
| FLA_Obj | B | ||
| ) |
References FLA_Check_conformal_dims(), FLA_Check_nonconstant_object(), FLA_Check_valid_object_datatype(), and FLA_Check_valid_trans().
Referenced by FLA_Copyt(), FLA_Copyt_external(), and FLASH_Copyt().
{
FLA_Error e_val;
e_val = FLA_Check_valid_trans( trans );
FLA_Check_error_code( e_val );
e_val = FLA_Check_valid_object_datatype( A );
FLA_Check_error_code( e_val );
e_val = FLA_Check_nonconstant_object( B );
FLA_Check_error_code( e_val );
e_val = FLA_Check_conformal_dims( trans, A, B );
FLA_Check_error_code( e_val );
return FLA_SUCCESS;
}
| FLA_Error FLA_Copyt_external | ( | FLA_Trans | trans, |
| FLA_Obj | A, | ||
| FLA_Obj | B | ||
| ) |
References bl1_ccopymt(), bl1_cdcopymt(), bl1_cscopymt(), bl1_czcopymt(), bl1_dccopymt(), bl1_dcopymt(), bl1_dscopymt(), bl1_dzcopymt(), bl1_icopymt(), bl1_sccopymt(), bl1_scopymt(), bl1_sdcopymt(), bl1_szcopymt(), bl1_zccopymt(), bl1_zcopymt(), bl1_zdcopymt(), bl1_zscopymt(), FLA_Check_error_level(), FLA_Copyt_check(), FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_has_zero_dim(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Obj_width(), and FLA_Param_map_flame_to_blis_trans().
Referenced by FLA_Accum_T_UT_fc_unb_var1(), FLA_Accum_T_UT_fr_unb_var1(), FLA_Copy_buffer_to_object(), FLA_Copy_object_to_buffer(), FLA_Copyt(), FLA_Copyt_c_task(), FLA_Copyt_h_task(), FLA_Copyt_n_task(), FLA_Copyt_t_task(), FLA_Copyt_task(), FLA_Hess_UT_blk_var5(), FLA_LQ_UT_blk_var2(), FLA_LQ_UT_unb_var2(), FLA_Obj_create_copy_of(), FLA_QR_UT_blk_var2(), FLA_QR_UT_piv_unb_var1(), FLA_QR_UT_piv_unb_var2(), and FLA_QR_UT_unb_var2().
{
FLA_Datatype dt_A;
FLA_Datatype dt_B;
int m_B, n_B;
int rs_A, cs_A;
int rs_B, cs_B;
trans1_t blis_trans;
if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
FLA_Copyt_check( trans, A, B );
if ( FLA_Obj_has_zero_dim( A ) ) return FLA_SUCCESS;
dt_A = FLA_Obj_datatype( A );
dt_B = FLA_Obj_datatype( B );
rs_A = FLA_Obj_row_stride( A );
cs_A = FLA_Obj_col_stride( A );
m_B = FLA_Obj_length( B );
n_B = FLA_Obj_width( B );
rs_B = FLA_Obj_row_stride( B );
cs_B = FLA_Obj_col_stride( B );
FLA_Param_map_flame_to_blis_trans( trans, &blis_trans );
// If A is of type FLA_CONSTANT, then we have to proceed based on the
// datatype of B.
if ( dt_A == FLA_CONSTANT )
{
if ( dt_B == FLA_FLOAT )
{
float *buff_A = ( float * ) FLA_FLOAT_PTR( A );
float *buff_B = ( float * ) FLA_FLOAT_PTR( B );
bl1_scopymt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_DOUBLE )
{
double *buff_A = ( double * ) FLA_DOUBLE_PTR( A );
double *buff_B = ( double * ) FLA_DOUBLE_PTR( B );
bl1_dcopymt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_COMPLEX )
{
scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
scomplex *buff_B = ( scomplex * ) FLA_COMPLEX_PTR( B );
bl1_ccopymt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_DOUBLE_COMPLEX )
{
dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
dcomplex *buff_B = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( B );
bl1_zcopymt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
}
else if ( dt_A == FLA_INT )
{
int* buff_A = ( int * ) FLA_INT_PTR( A );
int* buff_B = ( int * ) FLA_INT_PTR( B );
bl1_icopymt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_A == FLA_FLOAT )
{
float *buff_A = ( float * ) FLA_FLOAT_PTR( A );
if ( dt_B == FLA_FLOAT )
{
float *buff_B = ( float * ) FLA_FLOAT_PTR( B );
bl1_scopymt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_DOUBLE )
{
double *buff_B = ( double * ) FLA_DOUBLE_PTR( B );
bl1_sdcopymt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_COMPLEX )
{
scomplex *buff_B = ( scomplex * ) FLA_COMPLEX_PTR( B );
bl1_sccopymt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_DOUBLE_COMPLEX )
{
dcomplex *buff_B = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( B );
bl1_szcopymt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
}
else if ( dt_A == FLA_DOUBLE )
{
double *buff_A = ( double * ) FLA_DOUBLE_PTR( A );
if ( dt_B == FLA_FLOAT )
{
float *buff_B = ( float * ) FLA_FLOAT_PTR( B );
bl1_dscopymt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_DOUBLE )
{
double *buff_B = ( double * ) FLA_DOUBLE_PTR( B );
bl1_dcopymt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_COMPLEX )
{
scomplex *buff_B = ( scomplex * ) FLA_COMPLEX_PTR( B );
bl1_dccopymt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_DOUBLE_COMPLEX )
{
dcomplex *buff_B = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( B );
bl1_dzcopymt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
}
else if ( dt_A == FLA_COMPLEX )
{
scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
if ( dt_B == FLA_FLOAT )
{
float *buff_B = ( float * ) FLA_FLOAT_PTR( B );
bl1_cscopymt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_DOUBLE )
{
double *buff_B = ( double * ) FLA_DOUBLE_PTR( B );
bl1_cdcopymt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_COMPLEX )
{
scomplex *buff_B = ( scomplex * ) FLA_COMPLEX_PTR( B );
bl1_ccopymt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_DOUBLE_COMPLEX )
{
dcomplex *buff_B = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( B );
bl1_czcopymt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
}
else if ( dt_A == FLA_DOUBLE_COMPLEX )
{
dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
if ( dt_B == FLA_FLOAT )
{
float *buff_B = ( float * ) FLA_FLOAT_PTR( B );
bl1_zscopymt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_DOUBLE )
{
double *buff_B = ( double * ) FLA_DOUBLE_PTR( B );
bl1_zdcopymt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_COMPLEX )
{
scomplex *buff_B = ( scomplex * ) FLA_COMPLEX_PTR( B );
bl1_zccopymt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
else if ( dt_B == FLA_DOUBLE_COMPLEX )
{
dcomplex *buff_B = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( B );
bl1_zcopymt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
}
}
return FLA_SUCCESS;
}
| FLA_Error FLA_Copyt_h_task | ( | FLA_Obj | A, |
| FLA_Obj | B, | ||
| fla_copyt_t * | cntl | ||
| ) |
References FLA_Copyt_external().
Referenced by FLA_Copyt_h().
{
return FLA_Copyt_external( FLA_CONJ_TRANSPOSE, A, B );
}
| FLA_Error FLA_Copyt_internal_check | ( | FLA_Trans | trans, |
| FLA_Obj | A, | ||
| FLA_Obj | B, | ||
| fla_copyt_t * | cntl | ||
| ) |
References FLA_Check_conformal_dims(), FLA_Check_identical_object_elemtype(), and FLA_Check_null_pointer().
Referenced by FLA_Copyt_internal().
{
FLA_Error e_val;
// Abort if the control structure is NULL.
e_val = FLA_Check_null_pointer( ( void* ) cntl );
FLA_Check_error_code( e_val );
// Verify that the object element types are identical.
e_val = FLA_Check_identical_object_elemtype( A, B );
FLA_Check_error_code( e_val );
// Verify conformality between all the objects. This check works regardless
// of whether the element type is FLA_MATRIX or FLA_SCALAR because the
// element length and width are used instead of scalar length and width.
e_val = FLA_Check_conformal_dims( trans, A, B );
FLA_Check_error_code( e_val );
return FLA_SUCCESS;
}
| FLA_Error FLA_Copyt_n_task | ( | FLA_Obj | A, |
| FLA_Obj | B, | ||
| fla_copyt_t * | cntl | ||
| ) |
References FLA_Copyt_external().
Referenced by FLA_Copyt_n().
{
return FLA_Copyt_external( FLA_NO_TRANSPOSE, A, B );
}
| FLA_Error FLA_Copyt_t_task | ( | FLA_Obj | A, |
| FLA_Obj | B, | ||
| fla_copyt_t * | cntl | ||
| ) |
References FLA_Copyt_external().
Referenced by FLA_Copyt_t().
{
return FLA_Copyt_external( FLA_TRANSPOSE, A, B );
}
| FLA_Error FLA_Copyt_task | ( | FLA_Trans | trans, |
| FLA_Obj | A, | ||
| FLA_Obj | B, | ||
| fla_copyt_t * | cntl | ||
| ) |
References FLA_Copyt_external().
Referenced by FLASH_Queue_exec_task().
{
return FLA_Copyt_external( trans, A, B );
}
References FLA_Dot_external().
Referenced by FLA_Hess_UT_step_unb_var2(), FLA_Hess_UT_step_unb_var3(), FLA_Hess_UT_step_unb_var4(), FLA_Hess_UT_step_unb_var5(), and FLA_QR_UT_piv_colnorm().
{
return FLA_Dot_external( x, y, rho );
}
| FLA_Error FLA_Dot2cs | ( | FLA_Conj | conj, |
| FLA_Obj | alpha, | ||
| FLA_Obj | x, | ||
| FLA_Obj | y, | ||
| FLA_Obj | beta, | ||
| FLA_Obj | rho | ||
| ) |
References FLA_Dot2cs_external().
Referenced by FLA_Lyap_h_unb_var1(), FLA_Lyap_h_unb_var2(), FLA_Lyap_h_unb_var3(), FLA_Lyap_n_unb_var1(), FLA_Lyap_n_unb_var2(), and FLA_Lyap_n_unb_var3().
{
return FLA_Dot2cs_external( conj, alpha, x, y, beta, rho );
}
| FLA_Error FLA_Dot2cs_check | ( | FLA_Conj | conj, |
| FLA_Obj | alpha, | ||
| FLA_Obj | x, | ||
| FLA_Obj | y, | ||
| FLA_Obj | beta, | ||
| FLA_Obj | rho | ||
| ) |
References FLA_Check_consistent_object_datatype(), FLA_Check_equal_vector_dims(), FLA_Check_floating_object(), FLA_Check_identical_object_datatype(), FLA_Check_if_scalar(), FLA_Check_if_vector(), FLA_Check_nonconstant_object(), and FLA_Check_valid_conj().
Referenced by FLA_Dot2cs_external().
{
FLA_Error e_val;
e_val = FLA_Check_valid_conj( conj );
FLA_Check_error_code( e_val );
e_val = FLA_Check_floating_object( x );
FLA_Check_error_code( e_val );
e_val = FLA_Check_nonconstant_object( x );
FLA_Check_error_code( e_val );
e_val = FLA_Check_identical_object_datatype( x, y );
FLA_Check_error_code( e_val );
e_val = FLA_Check_identical_object_datatype( x, rho );
FLA_Check_error_code( e_val );
e_val = FLA_Check_consistent_object_datatype( x, alpha );
FLA_Check_error_code( e_val );
e_val = FLA_Check_consistent_object_datatype( x, beta );
FLA_Check_error_code( e_val );
e_val = FLA_Check_if_vector( x );
FLA_Check_error_code( e_val );
e_val = FLA_Check_if_vector( y );
FLA_Check_error_code( e_val );
e_val = FLA_Check_if_scalar( alpha );
FLA_Check_error_code( e_val );
e_val = FLA_Check_if_scalar( beta );
FLA_Check_error_code( e_val );
e_val = FLA_Check_if_scalar( rho );
FLA_Check_error_code( e_val );
e_val = FLA_Check_equal_vector_dims( x, y );
FLA_Check_error_code( e_val );
return FLA_SUCCESS;
}
| FLA_Error FLA_Dot2cs_external | ( | FLA_Conj | conj, |
| FLA_Obj | alpha, | ||
| FLA_Obj | x, | ||
| FLA_Obj | y, | ||
| FLA_Obj | beta, | ||
| FLA_Obj | rho | ||
| ) |
References bl1_cdot2s(), bl1_ddot2s(), bl1_sdot2s(), bl1_zdot2s(), FLA_Check_error_level(), FLA_Dot2cs_check(), FLA_Obj_datatype(), FLA_Obj_has_zero_dim(), FLA_Obj_vector_dim(), FLA_Obj_vector_inc(), FLA_Param_map_flame_to_blis_conj(), and FLA_Scal_external().
Referenced by FLA_Dot2cs(), FLA_Eig_gest_il_unb_var1(), FLA_Eig_gest_il_unb_var2(), FLA_Eig_gest_il_unb_var3(), FLA_Eig_gest_iu_unb_var1(), FLA_Eig_gest_iu_unb_var2(), FLA_Eig_gest_iu_unb_var3(), FLA_Eig_gest_nl_unb_var1(), FLA_Eig_gest_nl_unb_var2(), FLA_Eig_gest_nu_unb_var1(), FLA_Eig_gest_nu_unb_var2(), FLA_Her2k_lh_unb_var1(), FLA_Her2k_lh_unb_var2(), FLA_Her2k_lh_unb_var3(), FLA_Her2k_lh_unb_var4(), FLA_Her2k_lh_unb_var5(), FLA_Her2k_lh_unb_var6(), FLA_Her2k_lh_unb_var7(), FLA_Her2k_lh_unb_var8(), FLA_Her2k_ln_unb_var1(), FLA_Her2k_ln_unb_var2(), FLA_Her2k_ln_unb_var3(), FLA_Her2k_ln_unb_var4(), FLA_Her2k_ln_unb_var5(), FLA_Her2k_ln_unb_var6(), FLA_Her2k_ln_unb_var7(), FLA_Her2k_ln_unb_var8(), FLA_Her2k_uh_unb_var1(), FLA_Her2k_uh_unb_var2(), FLA_Her2k_uh_unb_var3(), FLA_Her2k_uh_unb_var4(), FLA_Her2k_uh_unb_var5(), FLA_Her2k_uh_unb_var6(), FLA_Her2k_uh_unb_var7(), FLA_Her2k_uh_unb_var8(), FLA_Her2k_un_unb_var1(), FLA_Her2k_un_unb_var2(), FLA_Her2k_un_unb_var3(), FLA_Her2k_un_unb_var4(), FLA_Her2k_un_unb_var5(), FLA_Her2k_un_unb_var6(), FLA_Her2k_un_unb_var7(), and FLA_Her2k_un_unb_var8().
{
FLA_Datatype datatype;
int num_elem;
int inc_x;
int inc_y;
conj1_t blis_conj;
if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
FLA_Dot2cs_check( conj, alpha, x, y, beta, rho );
if ( FLA_Obj_has_zero_dim( x ) )
{
FLA_Scal_external( beta, rho );
return FLA_SUCCESS;
}
datatype = FLA_Obj_datatype( x );
inc_x = FLA_Obj_vector_inc( x );
inc_y = FLA_Obj_vector_inc( y );
num_elem = FLA_Obj_vector_dim( x );
FLA_Param_map_flame_to_blis_conj( conj, &blis_conj );
switch ( datatype ){
case FLA_FLOAT:
{
float *buff_x = ( float * ) FLA_FLOAT_PTR( x );
float *buff_y = ( float * ) FLA_FLOAT_PTR( y );
float *buff_rho = ( float * ) FLA_FLOAT_PTR( rho );
float *buff_alpha = ( float * ) FLA_FLOAT_PTR( alpha );
float *buff_beta = ( float * ) FLA_FLOAT_PTR( beta );
bl1_sdot2s( blis_conj,
num_elem,
buff_alpha,
buff_x, inc_x,
buff_y, inc_y,
buff_beta,
buff_rho );
break;
}
case FLA_DOUBLE:
{
double *buff_x = ( double * ) FLA_DOUBLE_PTR( x );
double *buff_y = ( double * ) FLA_DOUBLE_PTR( y );
double *buff_rho = ( double * ) FLA_DOUBLE_PTR( rho );
double *buff_alpha = ( double * ) FLA_DOUBLE_PTR( alpha );
double *buff_beta = ( double * ) FLA_DOUBLE_PTR( beta );
bl1_ddot2s( blis_conj,
num_elem,
buff_alpha,
buff_x, inc_x,
buff_y, inc_y,
buff_beta,
buff_rho );
break;
}
case FLA_COMPLEX:
{
scomplex *buff_x = ( scomplex * ) FLA_COMPLEX_PTR( x );
scomplex *buff_y = ( scomplex * ) FLA_COMPLEX_PTR( y );
scomplex *buff_rho = ( scomplex * ) FLA_COMPLEX_PTR( rho );
scomplex *buff_alpha = ( scomplex * ) FLA_COMPLEX_PTR( alpha );
scomplex *buff_beta = ( scomplex * ) FLA_COMPLEX_PTR( beta );
bl1_cdot2s( blis_conj,
num_elem,
buff_alpha,
buff_x, inc_x,
buff_y, inc_y,
buff_beta,
buff_rho );
break;
}
case FLA_DOUBLE_COMPLEX:
{
dcomplex *buff_x = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( x );
dcomplex *buff_y = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( y );
dcomplex *buff_rho = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( rho );
dcomplex *buff_alpha = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( alpha );
dcomplex *buff_beta = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( beta );
bl1_zdot2s( blis_conj,
num_elem,
buff_alpha,
buff_x, inc_x,
buff_y, inc_y,
buff_beta,
buff_rho );
break;
}
}
return FLA_SUCCESS;
}
References FLA_Dot2s_external().
{
return FLA_Dot2s_external( alpha, x, y, beta, rho );
}
References FLA_Check_consistent_object_datatype(), FLA_Check_equal_vector_dims(), FLA_Check_floating_object(), FLA_Check_identical_object_datatype(), FLA_Check_if_scalar(), FLA_Check_if_vector(), and FLA_Check_nonconstant_object().
Referenced by FLA_Dot2s_external().
{
FLA_Error e_val;
e_val = FLA_Check_floating_object( x );
FLA_Check_error_code( e_val );
e_val = FLA_Check_nonconstant_object( x );
FLA_Check_error_code( e_val );
e_val = FLA_Check_identical_object_datatype( x, y );
FLA_Check_error_code( e_val );
e_val = FLA_Check_identical_object_datatype( x, rho );
FLA_Check_error_code( e_val );
e_val = FLA_Check_consistent_object_datatype( x, alpha );
FLA_Check_error_code( e_val );
e_val = FLA_Check_consistent_object_datatype( x, beta );
FLA_Check_error_code( e_val );
e_val = FLA_Check_if_vector( x );
FLA_Check_error_code( e_val );
e_val = FLA_Check_if_vector( y );
FLA_Check_error_code( e_val );
e_val = FLA_Check_if_scalar( alpha );
FLA_Check_error_code( e_val );
e_val = FLA_Check_if_scalar( beta );
FLA_Check_error_code( e_val );
e_val = FLA_Check_if_scalar( rho );
FLA_Check_error_code( e_val );
e_val = FLA_Check_equal_vector_dims( x, y );
FLA_Check_error_code( e_val );
return FLA_SUCCESS;
}
References bl1_cdot2s(), bl1_ddot2s(), bl1_sdot2s(), bl1_zdot2s(), FLA_Check_error_level(), FLA_Dot2s_check(), FLA_Obj_datatype(), FLA_Obj_has_zero_dim(), FLA_Obj_vector_dim(), FLA_Obj_vector_inc(), FLA_Param_map_flame_to_blis_conj(), and FLA_Scal_external().
Referenced by FLA_Dot2s(), FLA_Syr2k_ln_unb_var1(), FLA_Syr2k_ln_unb_var2(), FLA_Syr2k_ln_unb_var3(), FLA_Syr2k_ln_unb_var4(), FLA_Syr2k_ln_unb_var5(), FLA_Syr2k_ln_unb_var6(), FLA_Syr2k_ln_unb_var7(), FLA_Syr2k_ln_unb_var8(), FLA_Syr2k_lt_unb_var1(), FLA_Syr2k_lt_unb_var2(), FLA_Syr2k_lt_unb_var3(), FLA_Syr2k_lt_unb_var4(), FLA_Syr2k_lt_unb_var5(), FLA_Syr2k_lt_unb_var6(), FLA_Syr2k_lt_unb_var7(), FLA_Syr2k_lt_unb_var8(), FLA_Syr2k_un_unb_var1(), FLA_Syr2k_un_unb_var2(), FLA_Syr2k_un_unb_var3(), FLA_Syr2k_un_unb_var4(), FLA_Syr2k_un_unb_var5(), FLA_Syr2k_un_unb_var6(), FLA_Syr2k_un_unb_var7(), FLA_Syr2k_un_unb_var8(), FLA_Syr2k_ut_unb_var1(), FLA_Syr2k_ut_unb_var2(), FLA_Syr2k_ut_unb_var3(), FLA_Syr2k_ut_unb_var4(), FLA_Syr2k_ut_unb_var5(), FLA_Syr2k_ut_unb_var6(), FLA_Syr2k_ut_unb_var7(), and FLA_Syr2k_ut_unb_var8().
{
FLA_Datatype datatype;
int num_elem;
int inc_x;
int inc_y;
conj1_t blis_conj;
if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
FLA_Dot2s_check( alpha, x, y, beta, rho );
if ( FLA_Obj_has_zero_dim( x ) )
{
FLA_Scal_external( beta, rho );
return FLA_SUCCESS;
}
datatype = FLA_Obj_datatype( x );
inc_x = FLA_Obj_vector_inc( x );
inc_y = FLA_Obj_vector_inc( y );
num_elem = FLA_Obj_vector_dim( x );
FLA_Param_map_flame_to_blis_conj( FLA_NO_CONJUGATE, &blis_conj );
switch ( datatype ){
case FLA_FLOAT:
{
float *buff_x = ( float * ) FLA_FLOAT_PTR( x );
float *buff_y = ( float * ) FLA_FLOAT_PTR( y );
float *buff_rho = ( float * ) FLA_FLOAT_PTR( rho );
float *buff_alpha = ( float * ) FLA_FLOAT_PTR( alpha );
float *buff_beta = ( float * ) FLA_FLOAT_PTR( beta );
bl1_sdot2s( blis_conj,
num_elem,
buff_alpha,
buff_x, inc_x,
buff_y, inc_y,
buff_beta,
buff_rho );
break;
}
case FLA_DOUBLE:
{
double *buff_x = ( double * ) FLA_DOUBLE_PTR( x );
double *buff_y = ( double * ) FLA_DOUBLE_PTR( y );
double *buff_rho = ( double * ) FLA_DOUBLE_PTR( rho );
double *buff_alpha = ( double * ) FLA_DOUBLE_PTR( alpha );
double *buff_beta = ( double * ) FLA_DOUBLE_PTR( beta );
bl1_ddot2s( blis_conj,
num_elem,
buff_alpha,
buff_x, inc_x,
buff_y, inc_y,
buff_beta,
buff_rho );
break;
}
case FLA_COMPLEX:
{
scomplex *buff_x = ( scomplex * ) FLA_COMPLEX_PTR( x );
scomplex *buff_y = ( scomplex * ) FLA_COMPLEX_PTR( y );
scomplex *buff_rho = ( scomplex * ) FLA_COMPLEX_PTR( rho );
scomplex *buff_alpha = ( scomplex * ) FLA_COMPLEX_PTR( alpha );
scomplex *buff_beta = ( scomplex * ) FLA_COMPLEX_PTR( beta );
bl1_cdot2s( blis_conj,
num_elem,
buff_alpha,
buff_x, inc_x,
buff_y, inc_y,
buff_beta,
buff_rho );
break;
}
case FLA_DOUBLE_COMPLEX:
{
dcomplex *buff_x = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( x );
dcomplex *buff_y = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( y );
dcomplex *buff_rho = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( rho );
dcomplex *buff_alpha = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( alpha );
dcomplex *buff_beta = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( beta );
bl1_zdot2s( blis_conj,
num_elem,
buff_alpha,
buff_x, inc_x,
buff_y, inc_y,
buff_beta,
buff_rho );
break;
}
}
return FLA_SUCCESS;
}
| FLA_Error FLA_Dot_check | ( | FLA_Obj | x, |
| FLA_Obj | y, | ||
| FLA_Obj | rho | ||
| ) |
References FLA_Check_equal_vector_dims(), FLA_Check_floating_object(), FLA_Check_identical_object_datatype(), FLA_Check_if_vector(), and FLA_Check_nonconstant_object().
Referenced by FLA_Dot_external().
{
FLA_Error e_val;
e_val = FLA_Check_floating_object( x );
FLA_Check_error_code( e_val );
e_val = FLA_Check_nonconstant_object( x );
FLA_Check_error_code( e_val );
e_val = FLA_Check_identical_object_datatype( x, y );
FLA_Check_error_code( e_val );
e_val = FLA_Check_identical_object_datatype( x, rho );
FLA_Check_error_code( e_val );
e_val = FLA_Check_if_vector( x );
FLA_Check_error_code( e_val );
e_val = FLA_Check_if_vector( y );
FLA_Check_error_code( e_val );
e_val = FLA_Check_equal_vector_dims( x, y );
FLA_Check_error_code( e_val );
return FLA_SUCCESS;
}
| FLA_Error FLA_Dot_external | ( | FLA_Obj | x, |
| FLA_Obj | y, | ||
| FLA_Obj | rho | ||
| ) |
References bl1_cdot(), bl1_ddot(), bl1_sdot(), bl1_zdot(), FLA_Check_error_level(), FLA_Dot_check(), FLA_Obj_datatype(), FLA_Obj_has_zero_dim(), FLA_Obj_vector_dim(), FLA_Obj_vector_inc(), and FLA_Param_map_flame_to_blis_conj().
Referenced by FLA_Dot().
{
FLA_Datatype datatype;
int num_elem;
int inc_x;
int inc_y;
conj1_t blis_conj;
if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
FLA_Dot_check( x, y, rho );
if ( FLA_Obj_has_zero_dim( x ) ) return FLA_SUCCESS;
datatype = FLA_Obj_datatype( x );
inc_x = FLA_Obj_vector_inc( x );
inc_y = FLA_Obj_vector_inc( y );
num_elem = FLA_Obj_vector_dim( x );
FLA_Param_map_flame_to_blis_conj( FLA_NO_CONJUGATE, &blis_conj );
switch ( datatype ){
case FLA_FLOAT:
{
float *buff_x = ( float * ) FLA_FLOAT_PTR( x );
float *buff_y = ( float * ) FLA_FLOAT_PTR( y );
float *buff_rho = ( float * ) FLA_FLOAT_PTR( rho );
bl1_sdot( blis_conj,
num_elem,
buff_x, inc_x,
buff_y, inc_y,
buff_rho );
break;
}
case FLA_DOUBLE:
{
double *buff_x = ( double * ) FLA_DOUBLE_PTR( x );
double *buff_y = ( double * ) FLA_DOUBLE_PTR( y );
double *buff_rho = ( double * ) FLA_DOUBLE_PTR( rho );
bl1_ddot( blis_conj,
num_elem,
buff_x, inc_x,
buff_y, inc_y,
buff_rho );
break;
}
case FLA_COMPLEX:
{
scomplex *buff_x = ( scomplex * ) FLA_COMPLEX_PTR( x );
scomplex *buff_y = ( scomplex * ) FLA_COMPLEX_PTR( y );
scomplex *buff_rho = ( scomplex * ) FLA_COMPLEX_PTR( rho );
bl1_cdot( blis_conj,
num_elem,
buff_x, inc_x,
buff_y, inc_y,
buff_rho );
break;
}
case FLA_DOUBLE_COMPLEX:
{
dcomplex *buff_x = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( x );
dcomplex *buff_y = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( y );
dcomplex *buff_rho = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( rho );
bl1_zdot( blis_conj,
num_elem,
buff_x, inc_x,
buff_y, inc_y,
buff_rho );
break;
}
}
return FLA_SUCCESS;
}
References FLA_Dotc_external().
Referenced by FLA_Bidiag_UT_u_step_unb_var2(), FLA_Bidiag_UT_u_step_unb_var3(), FLA_Bidiag_UT_u_step_unb_var4(), FLA_Bidiag_UT_u_step_unb_var5(), FLA_Hess_UT_step_unb_var2(), FLA_Hess_UT_step_unb_var3(), FLA_Hess_UT_step_unb_var4(), FLA_Tridiag_UT_l_step_unb_var1(), FLA_Tridiag_UT_l_step_unb_var2(), and FLA_Tridiag_UT_l_step_unb_var3().
{
return FLA_Dotc_external( conj, x, y, rho );
}
References FLA_Check_equal_vector_dims(), FLA_Check_floating_object(), FLA_Check_identical_object_datatype(), FLA_Check_if_vector(), FLA_Check_nonconstant_object(), and FLA_Check_valid_conj().
Referenced by FLA_Dotc_external().
{
FLA_Error e_val;
e_val = FLA_Check_valid_conj( conj );
FLA_Check_error_code( e_val );
e_val = FLA_Check_floating_object( x );
FLA_Check_error_code( e_val );
e_val = FLA_Check_nonconstant_object( x );
FLA_Check_error_code( e_val );
e_val = FLA_Check_identical_object_datatype( x, y );
FLA_Check_error_code( e_val );
e_val = FLA_Check_identical_object_datatype( x, rho );
FLA_Check_error_code( e_val );
e_val = FLA_Check_if_vector( x );
FLA_Check_error_code( e_val );
e_val = FLA_Check_if_vector( y );
FLA_Check_error_code( e_val );
e_val = FLA_Check_equal_vector_dims( x, y );
FLA_Check_error_code( e_val );
return FLA_SUCCESS;
}
References bl1_cdot(), bl1_ddot(), bl1_sdot(), bl1_zdot(), FLA_Check_error_level(), FLA_Dotc_check(), FLA_Obj_datatype(), FLA_Obj_has_zero_dim(), FLA_Obj_vector_dim(), FLA_Obj_vector_inc(), and FLA_Param_map_flame_to_blis_conj().
Referenced by FLA_Dotc().
{
FLA_Datatype datatype;
int num_elem;
int inc_x;
int inc_y;
conj1_t blis_conj;
if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
FLA_Dotc_check( conj, x, y, rho );
if ( FLA_Obj_has_zero_dim( x ) ) return FLA_SUCCESS;
datatype = FLA_Obj_datatype( x );
inc_x = FLA_Obj_vector_inc( x );
inc_y = FLA_Obj_vector_inc( y );
num_elem = FLA_Obj_vector_dim( x );
FLA_Param_map_flame_to_blis_conj( conj, &blis_conj );
switch ( datatype ){
case FLA_FLOAT:
{
float *buff_x = ( float * ) FLA_FLOAT_PTR( x );
float *buff_y = ( float * ) FLA_FLOAT_PTR( y );
float *buff_rho = ( float * ) FLA_FLOAT_PTR( rho );
bl1_sdot( blis_conj,
num_elem,
buff_x, inc_x,
buff_y, inc_y,
buff_rho );
break;
}
case FLA_DOUBLE:
{
double *buff_x = ( double * ) FLA_DOUBLE_PTR( x );
double *buff_y = ( double * ) FLA_DOUBLE_PTR( y );
double *buff_rho = ( double * ) FLA_DOUBLE_PTR( rho );
bl1_ddot( blis_conj,
num_elem,
buff_x, inc_x,
buff_y, inc_y,
buff_rho );
break;
}
case FLA_COMPLEX:
{
scomplex *buff_x = ( scomplex * ) FLA_COMPLEX_PTR( x );
scomplex *buff_y = ( scomplex * ) FLA_COMPLEX_PTR( y );
scomplex *buff_rho = ( scomplex * ) FLA_COMPLEX_PTR( rho );
bl1_cdot( blis_conj,
num_elem,
buff_x, inc_x,
buff_y, inc_y,
buff_rho );
break;
}
case FLA_DOUBLE_COMPLEX:
{
dcomplex *buff_x = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( x );
dcomplex *buff_y = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( y );
dcomplex *buff_rho = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( rho );
bl1_zdot( blis_conj,
num_elem,
buff_x, inc_x,
buff_y, inc_y,
buff_rho );
break;
}
}
return FLA_SUCCESS;
}
| FLA_Error FLA_Dotcs | ( | FLA_Conj | conj, |
| FLA_Obj | alpha, | ||
| FLA_Obj | x, | ||
| FLA_Obj | y, | ||
| FLA_Obj | beta, | ||
| FLA_Obj | rho | ||
| ) |
References FLA_Dotcs_external().
{
return FLA_Dotcs_external( conj, alpha, x, y, beta, rho );
}
| FLA_Error FLA_Dotcs_check | ( | FLA_Conj | conj, |
| FLA_Obj | alpha, | ||
| FLA_Obj | x, | ||
| FLA_Obj | y, | ||
| FLA_Obj | beta, | ||
| FLA_Obj | rho | ||
| ) |
References FLA_Check_consistent_object_datatype(), FLA_Check_equal_vector_dims(), FLA_Check_floating_object(), FLA_Check_identical_object_datatype(), FLA_Check_if_scalar(), FLA_Check_if_vector(), FLA_Check_nonconstant_object(), and FLA_Check_valid_conj().
Referenced by FLA_Dotcs_external().
{
FLA_Error e_val;
e_val = FLA_Check_valid_conj( conj );
FLA_Check_error_code( e_val );
e_val = FLA_Check_floating_object( x );
FLA_Check_error_code( e_val );
e_val = FLA_Check_nonconstant_object( x );
FLA_Check_error_code( e_val );
e_val = FLA_Check_identical_object_datatype( x, y );
FLA_Check_error_code( e_val );
e_val = FLA_Check_identical_object_datatype( x, rho );
FLA_Check_error_code( e_val );
e_val = FLA_Check_consistent_object_datatype( x, alpha );
FLA_Check_error_code( e_val );
e_val = FLA_Check_consistent_object_datatype( x, beta );
FLA_Check_error_code( e_val );
e_val = FLA_Check_if_vector( x );
FLA_Check_error_code( e_val );
e_val = FLA_Check_if_vector( y );
FLA_Check_error_code( e_val );
e_val = FLA_Check_if_scalar( alpha );
FLA_Check_error_code( e_val );
e_val = FLA_Check_if_scalar( beta );
FLA_Check_error_code( e_val );
e_val = FLA_Check_if_scalar( rho );
FLA_Check_error_code( e_val );
e_val = FLA_Check_equal_vector_dims( x, y );
FLA_Check_error_code( e_val );
return FLA_SUCCESS;
}
| FLA_Error FLA_Dotcs_external | ( | FLA_Conj | conj, |
| FLA_Obj | alpha, | ||
| FLA_Obj | x, | ||
| FLA_Obj | y, | ||
| FLA_Obj | beta, | ||
| FLA_Obj | rho | ||
| ) |
References bl1_cdots(), bl1_ddots(), bl1_sdots(), bl1_zdots(), FLA_Check_error_level(), FLA_Dotcs_check(), FLA_Obj_datatype(), FLA_Obj_has_zero_dim(), FLA_Obj_vector_dim(), FLA_Obj_vector_inc(), FLA_Param_map_flame_to_blis_conj(), and FLA_Scal_external().
Referenced by FLA_Chol_l_unb_var1(), FLA_Chol_l_unb_var2(), FLA_Chol_u_unb_var1(), FLA_Chol_u_unb_var2(), FLA_Dotcs(), FLA_Herk_lh_unb_var1(), FLA_Herk_lh_unb_var2(), FLA_Herk_lh_unb_var3(), FLA_Herk_lh_unb_var4(), FLA_Herk_ln_unb_var1(), FLA_Herk_ln_unb_var2(), FLA_Herk_ln_unb_var3(), FLA_Herk_ln_unb_var4(), FLA_Herk_uh_unb_var1(), FLA_Herk_uh_unb_var2(), FLA_Herk_uh_unb_var3(), FLA_Herk_uh_unb_var4(), FLA_Herk_un_unb_var1(), FLA_Herk_un_unb_var2(), FLA_Herk_un_unb_var3(), FLA_Herk_un_unb_var4(), FLA_Ttmm_l_unb_var2(), FLA_Ttmm_l_unb_var3(), FLA_Ttmm_u_unb_var2(), and FLA_Ttmm_u_unb_var3().
{
FLA_Datatype datatype;
int num_elem;
int inc_x;
int inc_y;
conj1_t blis_conj;
if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
FLA_Dotcs_check( conj, alpha, x, y, beta, rho );
if ( FLA_Obj_has_zero_dim( x ) )
{
FLA_Scal_external( beta, rho );
return FLA_SUCCESS;
}
datatype = FLA_Obj_datatype( x );
inc_x = FLA_Obj_vector_inc( x );
inc_y = FLA_Obj_vector_inc( y );
num_elem = FLA_Obj_vector_dim( x );
FLA_Param_map_flame_to_blis_conj( conj, &blis_conj );
switch ( datatype ){
case FLA_FLOAT:
{
float *buff_x = ( float * ) FLA_FLOAT_PTR( x );
float *buff_y = ( float * ) FLA_FLOAT_PTR( y );
float *buff_rho = ( float * ) FLA_FLOAT_PTR( rho );
float *buff_alpha = ( float * ) FLA_FLOAT_PTR( alpha );
float *buff_beta = ( float * ) FLA_FLOAT_PTR( beta );
bl1_sdots( blis_conj,
num_elem,
buff_alpha,
buff_x, inc_x,
buff_y, inc_y,
buff_beta,
buff_rho );
break;
}
case FLA_DOUBLE:
{
double *buff_x = ( double * ) FLA_DOUBLE_PTR( x );
double *buff_y = ( double * ) FLA_DOUBLE_PTR( y );
double *buff_rho = ( double * ) FLA_DOUBLE_PTR( rho );
double *buff_alpha = ( double * ) FLA_DOUBLE_PTR( alpha );
double *buff_beta = ( double * ) FLA_DOUBLE_PTR( beta );
bl1_ddots( blis_conj,
num_elem,
buff_alpha,
buff_x, inc_x,
buff_y, inc_y,
buff_beta,
buff_rho );
break;
}
case FLA_COMPLEX:
{
scomplex *buff_x = ( scomplex * ) FLA_COMPLEX_PTR( x );
scomplex *buff_y = ( scomplex * ) FLA_COMPLEX_PTR( y );
scomplex *buff_rho = ( scomplex * ) FLA_COMPLEX_PTR( rho );
scomplex *buff_alpha = ( scomplex * ) FLA_COMPLEX_PTR( alpha );
scomplex *buff_beta = ( scomplex * ) FLA_COMPLEX_PTR( beta );
bl1_cdots( blis_conj,
num_elem,
buff_alpha,
buff_x, inc_x,
buff_y, inc_y,
buff_beta,
buff_rho );
break;
}
case FLA_DOUBLE_COMPLEX:
{
dcomplex *buff_x = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( x );
dcomplex *buff_y = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( y );
dcomplex *buff_rho = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( rho );
dcomplex *buff_alpha = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( alpha );
dcomplex *buff_beta = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( beta );
bl1_zdots( blis_conj,
num_elem,
buff_alpha,
buff_x, inc_x,
buff_y, inc_y,
buff_beta,
buff_rho );
break;
}
}
return FLA_SUCCESS;
}
References FLA_Dots_external().
Referenced by FLA_Hess_UT_step_unb_var5().
{
return FLA_Dots_external( alpha, x, y, beta, rho );
}
References FLA_Check_consistent_object_datatype(), FLA_Check_equal_vector_dims(), FLA_Check_floating_object(), FLA_Check_identical_object_datatype(), FLA_Check_if_scalar(), FLA_Check_if_vector(), and FLA_Check_nonconstant_object().
Referenced by FLA_Dots_external().
{
FLA_Error e_val;
e_val = FLA_Check_floating_object( x );
FLA_Check_error_code( e_val );
e_val = FLA_Check_nonconstant_object( x );
FLA_Check_error_code( e_val );
e_val = FLA_Check_identical_object_datatype( x, y );
FLA_Check_error_code( e_val );
e_val = FLA_Check_identical_object_datatype( x, rho );
FLA_Check_error_code( e_val );
e_val = FLA_Check_consistent_object_datatype( x, alpha );
FLA_Check_error_code( e_val );
e_val = FLA_Check_consistent_object_datatype( x, beta );
FLA_Check_error_code( e_val );
e_val = FLA_Check_if_vector( x );
FLA_Check_error_code( e_val );
e_val = FLA_Check_if_vector( y );
FLA_Check_error_code( e_val );
e_val = FLA_Check_if_scalar( alpha );
FLA_Check_error_code( e_val );
e_val = FLA_Check_if_scalar( beta );
FLA_Check_error_code( e_val );
e_val = FLA_Check_if_scalar( rho );
FLA_Check_error_code( e_val );
e_val = FLA_Check_equal_vector_dims( x, y );
FLA_Check_error_code( e_val );
return FLA_SUCCESS;
}
References bl1_cdots(), bl1_ddots(), bl1_sdots(), bl1_zdots(), FLA_Check_error_level(), FLA_Dots_check(), FLA_Obj_datatype(), FLA_Obj_has_zero_dim(), FLA_Obj_vector_dim(), FLA_Obj_vector_inc(), FLA_Param_map_flame_to_blis_conj(), and FLA_Scal_external().
Referenced by FLA_Dots(), FLA_LU_nopiv_unb_var1(), FLA_LU_nopiv_unb_var2(), FLA_LU_nopiv_unb_var3(), FLA_LU_nopiv_unb_var4(), FLA_LU_piv_unb_var3(), FLA_LU_piv_unb_var3b(), FLA_LU_piv_unb_var4(), FLA_Syrk_ln_unb_var1(), FLA_Syrk_ln_unb_var2(), FLA_Syrk_ln_unb_var3(), FLA_Syrk_ln_unb_var4(), FLA_Syrk_lt_unb_var1(), FLA_Syrk_lt_unb_var2(), FLA_Syrk_lt_unb_var3(), FLA_Syrk_lt_unb_var4(), FLA_Syrk_un_unb_var1(), FLA_Syrk_un_unb_var2(), FLA_Syrk_un_unb_var3(), FLA_Syrk_un_unb_var4(), FLA_Syrk_ut_unb_var1(), FLA_Syrk_ut_unb_var2(), FLA_Syrk_ut_unb_var3(), and FLA_Syrk_ut_unb_var4().
{
FLA_Datatype datatype;
int num_elem;
int inc_x;
int inc_y;
conj1_t blis_conj;
if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
FLA_Dots_check( alpha, x, y, beta, rho );
if ( FLA_Obj_has_zero_dim( x ) )
{
FLA_Scal_external( beta, rho );
return FLA_SUCCESS;
}
datatype = FLA_Obj_datatype( x );
inc_x = FLA_Obj_vector_inc( x );
inc_y = FLA_Obj_vector_inc( y );
num_elem = FLA_Obj_vector_dim( x );
FLA_Param_map_flame_to_blis_conj( FLA_NO_CONJUGATE, &blis_conj );
switch ( datatype ){
case FLA_FLOAT:
{
float *buff_x = ( float * ) FLA_FLOAT_PTR( x );
float *buff_y = ( float * ) FLA_FLOAT_PTR( y );
float *buff_rho = ( float * ) FLA_FLOAT_PTR( rho );
float *buff_alpha = ( float * ) FLA_FLOAT_PTR( alpha );
float *buff_beta = ( float * ) FLA_FLOAT_PTR( beta );
bl1_sdots( blis_conj,
num_elem,
buff_alpha,
buff_x, inc_x,
buff_y, inc_y,
buff_beta,
buff_rho );
break;
}
case FLA_DOUBLE:
{
double *buff_x = ( double * ) FLA_DOUBLE_PTR( x );
double *buff_y = ( double * ) FLA_DOUBLE_PTR( y );
double *buff_rho = ( double * ) FLA_DOUBLE_PTR( rho );
double *buff_alpha = ( double * ) FLA_DOUBLE_PTR( alpha );
double *buff_beta = ( double * ) FLA_DOUBLE_PTR( beta );
bl1_ddots( blis_conj,
num_elem,
buff_alpha,
buff_x, inc_x,
buff_y, inc_y,
buff_beta,
buff_rho );
break;
}
case FLA_COMPLEX:
{
scomplex *buff_x = ( scomplex * ) FLA_COMPLEX_PTR( x );
scomplex *buff_y = ( scomplex * ) FLA_COMPLEX_PTR( y );
scomplex *buff_rho = ( scomplex * ) FLA_COMPLEX_PTR( rho );
scomplex *buff_alpha = ( scomplex * ) FLA_COMPLEX_PTR( alpha );
scomplex *buff_beta = ( scomplex * ) FLA_COMPLEX_PTR( beta );
bl1_cdots( blis_conj,
num_elem,
buff_alpha,
buff_x, inc_x,
buff_y, inc_y,
buff_beta,
buff_rho );
break;
}
case FLA_DOUBLE_COMPLEX:
{
dcomplex *buff_x = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( x );
dcomplex *buff_y = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( y );
dcomplex *buff_rho = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( rho );
dcomplex *buff_alpha = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( alpha );
dcomplex *buff_beta = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( beta );
bl1_zdots( blis_conj,
num_elem,
buff_alpha,
buff_x, inc_x,
buff_y, inc_y,
buff_beta,
buff_rho );
break;
}
}
return FLA_SUCCESS;
}
| FLA_Error FLA_Inv_scal | ( | FLA_Obj | alpha, |
| FLA_Obj | A | ||
| ) |
References FLA_Inv_scal_external().
Referenced by FLA_Bidiag_UT_l_realify_unb(), FLA_Bidiag_UT_u_realify_unb(), FLA_Fill_with_inverse_dist(), FLA_Fill_with_logarithmic_dist(), FLA_Hess_UT_step_unb_var2(), FLA_Hess_UT_step_unb_var3(), FLA_Hess_UT_step_unb_var4(), FLA_Hevd_compute_scaling(), FLA_Hevd_lv_unb_var1(), FLA_Hevd_lv_unb_var2(), FLA_Lyap_h_unb_var1(), FLA_Lyap_h_unb_var2(), FLA_Lyap_h_unb_var3(), FLA_Lyap_h_unb_var4(), FLA_Lyap_n_unb_var1(), FLA_Lyap_n_unb_var2(), FLA_Lyap_n_unb_var3(), FLA_Lyap_n_unb_var4(), FLA_Svd_compute_scaling(), FLA_Svd_uv_unb_var1(), FLA_Svd_uv_unb_var2(), FLA_Tridiag_UT_l_realify_unb(), FLA_Tridiag_UT_l_step_unb_var1(), FLA_Tridiag_UT_l_step_unb_var2(), FLA_Tridiag_UT_l_step_unb_var3(), and FLA_Tridiag_UT_u_realify_unb().
{
return FLA_Inv_scal_external( alpha, A );
}
| FLA_Error FLA_Inv_scal_check | ( | FLA_Obj | alpha, |
| FLA_Obj | A | ||
| ) |
References FLA_Check_consistent_object_datatype(), FLA_Check_divide_by_zero(), FLA_Check_floating_object(), FLA_Check_identical_object_precision(), FLA_Check_if_scalar(), FLA_Check_nonconstant_object(), and FLA_Obj_is_real().
Referenced by FLA_Inv_scal_external().
{
FLA_Error e_val;
e_val = FLA_Check_floating_object( A );
FLA_Check_error_code( e_val );
e_val = FLA_Check_nonconstant_object( A );
FLA_Check_error_code( e_val );
if ( FLA_Obj_is_real( A ) )
{
e_val = FLA_Check_consistent_object_datatype( A, alpha );
FLA_Check_error_code( e_val );
}
else
{
e_val = FLA_Check_identical_object_precision( A, alpha );
FLA_Check_error_code( e_val );
}
e_val = FLA_Check_if_scalar( alpha );
FLA_Check_error_code( e_val );
e_val = FLA_Check_divide_by_zero( alpha );
FLA_Check_error_code( e_val );
return FLA_SUCCESS;
}
| FLA_Error FLA_Inv_scal_external | ( | FLA_Obj | alpha, |
| FLA_Obj | A | ||
| ) |
References bl1_cinvscalm(), bl1_csinvscalm(), bl1_dinvscalm(), bl1_sinvscalm(), bl1_zdinvscalm(), bl1_zinvscalm(), FLA_Check_error_level(), FLA_Inv_scal_check(), FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_equals(), FLA_Obj_has_zero_dim(), FLA_Obj_is_constant(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Obj_width(), FLA_ONE, and FLA_Param_map_flame_to_blis_conj().
Referenced by FLA_Apply_H2_UT_r_unb_var1(), FLA_Chol_l_unb_var2(), FLA_Chol_l_unb_var3(), FLA_Chol_u_unb_var2(), FLA_Chol_u_unb_var3(), FLA_Eig_gest_il_unb_var1(), FLA_Eig_gest_il_unb_var2(), FLA_Eig_gest_il_unb_var3(), FLA_Eig_gest_il_unb_var4(), FLA_Eig_gest_il_unb_var5(), FLA_Eig_gest_iu_unb_var1(), FLA_Eig_gest_iu_unb_var2(), FLA_Eig_gest_iu_unb_var3(), FLA_Eig_gest_iu_unb_var4(), FLA_Eig_gest_iu_unb_var5(), FLA_Inv_scal(), FLA_LU_nopiv_unb_var3(), FLA_LU_nopiv_unb_var4(), FLA_LU_nopiv_unb_var5(), FLA_LU_piv_unb_var3(), FLA_LU_piv_unb_var3b(), FLA_LU_piv_unb_var4(), FLA_LU_piv_unb_var5(), FLA_Trinv_ln_unb_var1(), FLA_Trinv_ln_unb_var2(), FLA_Trinv_ln_unb_var3(), FLA_Trinv_un_unb_var1(), FLA_Trinv_un_unb_var2(), FLA_Trinv_un_unb_var3(), FLA_Trsm_lln_unb_var1(), FLA_Trsm_lln_unb_var2(), FLA_Trsm_llt_unb_var1(), FLA_Trsm_llt_unb_var2(), FLA_Trsm_lun_unb_var1(), FLA_Trsm_lun_unb_var2(), FLA_Trsm_lut_unb_var1(), FLA_Trsm_lut_unb_var2(), FLA_Trsm_rln_unb_var1(), FLA_Trsm_rln_unb_var2(), FLA_Trsm_rlt_unb_var1(), FLA_Trsm_rlt_unb_var2(), FLA_Trsm_run_unb_var1(), FLA_Trsm_run_unb_var2(), FLA_Trsm_rut_unb_var1(), and FLA_Trsm_rut_unb_var2().
{
FLA_Datatype datatype, dt_alpha;
int m_A, n_A;
int rs_A, cs_A;
conj1_t blis_conj;
if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
FLA_Inv_scal_check( alpha, A );
if ( FLA_Obj_has_zero_dim( A ) ) return FLA_SUCCESS;
if ( FLA_Obj_equals( alpha, FLA_ONE ) ) return FLA_SUCCESS;
datatype = FLA_Obj_datatype( A );
m_A = FLA_Obj_length( A );
n_A = FLA_Obj_width( A );
rs_A = FLA_Obj_row_stride( A );
cs_A = FLA_Obj_col_stride( A );
if ( FLA_Obj_is_constant( alpha ) )
dt_alpha = datatype;
else
dt_alpha = FLA_Obj_datatype( alpha );
FLA_Param_map_flame_to_blis_conj( FLA_NO_CONJUGATE, &blis_conj );
switch ( datatype ){
case FLA_FLOAT:
{
float *buff_A = ( float * ) FLA_FLOAT_PTR( A );
float *buff_alpha = ( float * ) FLA_FLOAT_PTR( alpha );
bl1_sinvscalm( blis_conj,
m_A,
n_A,
buff_alpha,
buff_A, rs_A, cs_A );
break;
}
case FLA_DOUBLE:
{
double *buff_A = ( double * ) FLA_DOUBLE_PTR( A );
double *buff_alpha = ( double * ) FLA_DOUBLE_PTR( alpha );
bl1_dinvscalm( blis_conj,
m_A,
n_A,
buff_alpha,
buff_A, rs_A, cs_A );
break;
}
case FLA_COMPLEX:
{
if ( dt_alpha == FLA_COMPLEX )
{
scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
scomplex *buff_alpha = ( scomplex * ) FLA_COMPLEX_PTR( alpha );
bl1_cinvscalm( blis_conj,
m_A,
n_A,
buff_alpha,
buff_A, rs_A, cs_A );
}
else if ( dt_alpha == FLA_FLOAT )
{
scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
float *buff_alpha = ( float * ) FLA_FLOAT_PTR( alpha );
bl1_csinvscalm( blis_conj,
m_A,
n_A,
buff_alpha,
buff_A, rs_A, cs_A );
}
break;
}
case FLA_DOUBLE_COMPLEX:
{
if ( dt_alpha == FLA_DOUBLE_COMPLEX )
{
dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
dcomplex *buff_alpha = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( alpha );
bl1_zinvscalm( blis_conj,
m_A,
n_A,
buff_alpha,
buff_A, rs_A, cs_A );
}
else if ( dt_alpha == FLA_DOUBLE )
{
dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
double *buff_alpha = ( double * ) FLA_DOUBLE_PTR( alpha );
bl1_zdinvscalm( blis_conj,
m_A,
n_A,
buff_alpha,
buff_A, rs_A, cs_A );
}
break;
}
}
return FLA_SUCCESS;
}
| FLA_Error FLA_Inv_scalc | ( | FLA_Conj | conjalpha, |
| FLA_Obj | alpha, | ||
| FLA_Obj | A | ||
| ) |
References FLA_Inv_scalc_external().
Referenced by FLA_Bidiag_UT_u_step_unb_var2(), FLA_Bidiag_UT_u_step_unb_var3(), FLA_Bidiag_UT_u_step_unb_var4(), FLA_Bidiag_UT_u_step_unb_var5(), FLA_Hess_UT_step_unb_var2(), FLA_Hess_UT_step_unb_var3(), FLA_Hess_UT_step_unb_var4(), FLA_Tridiag_UT_l_step_unb_var1(), FLA_Tridiag_UT_l_step_unb_var2(), and FLA_Tridiag_UT_l_step_unb_var3().
{
return FLA_Inv_scalc_external( conjalpha, alpha, A );
}
| FLA_Error FLA_Inv_scalc_check | ( | FLA_Conj | conjalpha, |
| FLA_Obj | alpha, | ||
| FLA_Obj | A | ||
| ) |
References FLA_Check_consistent_object_datatype(), FLA_Check_divide_by_zero(), FLA_Check_floating_object(), FLA_Check_identical_object_precision(), FLA_Check_if_scalar(), FLA_Check_nonconstant_object(), FLA_Check_valid_conj(), and FLA_Obj_is_real().
Referenced by FLA_Inv_scalc_external().
{
FLA_Error e_val;
e_val = FLA_Check_valid_conj( conjalpha );
FLA_Check_error_code( e_val );
e_val = FLA_Check_floating_object( A );
FLA_Check_error_code( e_val );
e_val = FLA_Check_nonconstant_object( A );
FLA_Check_error_code( e_val );
if ( FLA_Obj_is_real( A ) )
{
e_val = FLA_Check_consistent_object_datatype( A, alpha );
FLA_Check_error_code( e_val );
}
else
{
e_val = FLA_Check_identical_object_precision( A, alpha );
FLA_Check_error_code( e_val );
}
e_val = FLA_Check_if_scalar( alpha );
FLA_Check_error_code( e_val );
e_val = FLA_Check_divide_by_zero( alpha );
FLA_Check_error_code( e_val );
return FLA_SUCCESS;
}
| FLA_Error FLA_Inv_scalc_external | ( | FLA_Conj | conjalpha, |
| FLA_Obj | alpha, | ||
| FLA_Obj | A | ||
| ) |
References bl1_cinvscalm(), bl1_csinvscalm(), bl1_dinvscalm(), bl1_sinvscalm(), bl1_zdinvscalm(), bl1_zinvscalm(), FLA_Check_error_level(), FLA_Inv_scalc_check(), FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_equals(), FLA_Obj_has_zero_dim(), FLA_Obj_is_constant(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Obj_width(), FLA_ONE, and FLA_Param_map_flame_to_blis_conj().
Referenced by FLA_Apply_H2_UT_l_unb_var1(), FLA_Apply_H2_UT_piv_row(), FLA_Apply_HUD_UT_lh_unb_var1(), FLA_Inv_scalc(), FLA_Trsm_llc_unb_var1(), FLA_Trsm_llc_unb_var2(), FLA_Trsm_llh_unb_var1(), FLA_Trsm_llh_unb_var2(), FLA_Trsm_luc_unb_var1(), FLA_Trsm_luc_unb_var2(), FLA_Trsm_luh_unb_var1(), FLA_Trsm_luh_unb_var2(), FLA_Trsm_rlc_unb_var1(), FLA_Trsm_rlc_unb_var2(), FLA_Trsm_rlh_unb_var1(), FLA_Trsm_rlh_unb_var2(), FLA_Trsm_ruc_unb_var1(), FLA_Trsm_ruc_unb_var2(), FLA_Trsm_ruh_unb_var1(), and FLA_Trsm_ruh_unb_var2().
{
FLA_Datatype datatype, dt_alpha;
int m_A, n_A;
int rs_A, cs_A;
conj1_t blis_conj;
if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
FLA_Inv_scalc_check( conj, alpha, A );
if ( FLA_Obj_has_zero_dim( A ) ) return FLA_SUCCESS;
if ( FLA_Obj_equals( alpha, FLA_ONE ) ) return FLA_SUCCESS;
datatype = FLA_Obj_datatype( A );
m_A = FLA_Obj_length( A );
n_A = FLA_Obj_width( A );
rs_A = FLA_Obj_row_stride( A );
cs_A = FLA_Obj_col_stride( A );
if ( FLA_Obj_is_constant( alpha ) )
dt_alpha = datatype;
else
dt_alpha = FLA_Obj_datatype( alpha );
FLA_Param_map_flame_to_blis_conj( conj, &blis_conj );
switch ( datatype ){
case FLA_FLOAT:
{
float *buff_A = ( float * ) FLA_FLOAT_PTR( A );
float *buff_alpha = ( float * ) FLA_FLOAT_PTR( alpha );
bl1_sinvscalm( blis_conj,
m_A,
n_A,
buff_alpha,
buff_A, rs_A, cs_A );
break;
}
case FLA_DOUBLE:
{
double *buff_A = ( double * ) FLA_DOUBLE_PTR( A );
double *buff_alpha = ( double * ) FLA_DOUBLE_PTR( alpha );
bl1_dinvscalm( blis_conj,
m_A,
n_A,
buff_alpha,
buff_A, rs_A, cs_A );
break;
}
case FLA_COMPLEX:
{
if ( dt_alpha == FLA_COMPLEX )
{
scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
scomplex *buff_alpha = ( scomplex * ) FLA_COMPLEX_PTR( alpha );
bl1_cinvscalm( blis_conj,
m_A,
n_A,
buff_alpha,
buff_A, rs_A, cs_A );
}
else if ( dt_alpha == FLA_FLOAT )
{
scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
float *buff_alpha = ( float * ) FLA_FLOAT_PTR( alpha );
bl1_csinvscalm( blis_conj,
m_A,
n_A,
buff_alpha,
buff_A, rs_A, cs_A );
}
break;
}
case FLA_DOUBLE_COMPLEX:
{
if ( dt_alpha == FLA_DOUBLE_COMPLEX )
{
dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
dcomplex *buff_alpha = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( alpha );
bl1_zinvscalm( blis_conj,
m_A,
n_A,
buff_alpha,
buff_A, rs_A, cs_A );
}
else if ( dt_alpha == FLA_DOUBLE )
{
dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
double *buff_alpha = ( double * ) FLA_DOUBLE_PTR( alpha );
bl1_zdinvscalm( blis_conj,
m_A,
n_A,
buff_alpha,
buff_A, rs_A, cs_A );
}
break;
}
}
return FLA_SUCCESS;
}
References FLA_Nrm2_external().
{
return FLA_Nrm2_external( x, norm_x );
}
| FLA_Error FLA_Nrm2_check | ( | FLA_Obj | x, |
| FLA_Obj | nrm_x | ||
| ) |
References FLA_Check_floating_object(), FLA_Check_identical_object_precision(), FLA_Check_if_scalar(), FLA_Check_if_vector(), FLA_Check_nonconstant_object(), and FLA_Check_real_object().
Referenced by FLA_Nrm2_external().
{
FLA_Error e_val;
e_val = FLA_Check_floating_object( x );
FLA_Check_error_code( e_val );
e_val = FLA_Check_nonconstant_object( x );
FLA_Check_error_code( e_val );
e_val = FLA_Check_real_object( norm );
FLA_Check_error_code( e_val );
e_val = FLA_Check_nonconstant_object( norm );
FLA_Check_error_code( e_val );
e_val = FLA_Check_identical_object_precision( x, norm );
FLA_Check_error_code( e_val );
e_val = FLA_Check_if_scalar( norm );
FLA_Check_error_code( e_val );
e_val = FLA_Check_if_vector( x );
FLA_Check_error_code( e_val );
return FLA_SUCCESS;
}
| FLA_Error FLA_Nrm2_external | ( | FLA_Obj | x, |
| FLA_Obj | nrm_x | ||
| ) |
References bl1_cnrm2(), bl1_dnrm2(), bl1_snrm2(), bl1_znrm2(), FLA_Check_error_level(), FLA_Nrm2_check(), FLA_Obj_datatype(), FLA_Obj_has_zero_dim(), FLA_Obj_vector_dim(), FLA_Obj_vector_inc(), FLA_Set(), and FLA_ZERO.
Referenced by FLA_Nrm2().
{
FLA_Datatype datatype;
int num_elem;
int inc_x;
if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
FLA_Nrm2_check( x, norm_x );
if ( FLA_Obj_has_zero_dim( x ) )
{
FLA_Set( FLA_ZERO, norm_x );
return FLA_SUCCESS;
}
datatype = FLA_Obj_datatype( x );
inc_x = FLA_Obj_vector_inc( x );
num_elem = FLA_Obj_vector_dim( x );
switch ( datatype ){
case FLA_FLOAT:
{
float *buff_x = ( float * ) FLA_FLOAT_PTR( x );
float *buff_norm_x = ( float * ) FLA_FLOAT_PTR( norm_x );
bl1_snrm2( num_elem,
buff_x, inc_x,
buff_norm_x );
break;
}
case FLA_DOUBLE:
{
double *buff_x = ( double * ) FLA_DOUBLE_PTR( x );
double *buff_norm_x = ( double * ) FLA_DOUBLE_PTR( norm_x );
bl1_dnrm2( num_elem,
buff_x, inc_x,
buff_norm_x );
break;
}
case FLA_COMPLEX:
{
scomplex *buff_x = ( scomplex * ) FLA_COMPLEX_PTR( x );
float *buff_norm_x = ( float * ) FLA_FLOAT_PTR( norm_x );
bl1_cnrm2( num_elem,
buff_x, inc_x,
buff_norm_x );
break;
}
case FLA_DOUBLE_COMPLEX:
{
dcomplex *buff_x = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( x );
double *buff_norm_x = ( double * ) FLA_DOUBLE_PTR( norm_x );
bl1_znrm2( num_elem,
buff_x, inc_x,
buff_norm_x );
break;
}
}
return FLA_SUCCESS;
}
References FLA_Check_error_level(), FLA_Scal_check(), FLA_Scal_external(), and FLA_Scal_internal().
Referenced by FLA_Bidiag_UT_u_step_unb_var2(), FLA_Bidiag_UT_u_step_unb_var3(), FLA_Bidiag_UT_u_step_unb_var4(), FLA_Bidiag_UT_u_step_unb_var5(), FLA_Fill_with_geometric_dist(), FLA_Fill_with_random_dist(), FLA_Hess_UT_step_unb_var2(), FLA_Hess_UT_step_unb_var3(), FLA_Hess_UT_step_unb_var4(), FLA_Lyap_h_unb_var1(), FLA_Lyap_h_unb_var2(), FLA_Lyap_h_unb_var3(), FLA_Lyap_h_unb_var4(), FLA_Lyap_n_unb_var1(), FLA_Lyap_n_unb_var2(), FLA_Lyap_n_unb_var3(), FLA_Lyap_n_unb_var4(), FLA_Negate(), FLA_Svd_ext_u_unb_var1(), FLA_Svd_uv_unb_var1(), FLA_Svd_uv_unb_var2(), FLA_Tridiag_UT_l_step_unb_var1(), FLA_Tridiag_UT_l_step_unb_var2(), and FLA_Tridiag_UT_l_step_unb_var3().
{
FLA_Error r_val;
#ifdef FLA_ENABLE_BLAS1_FRONT_END_CNTL_TREES
// Check parameters.
if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
FLA_Scal_check( alpha, A );
// Invoke FLA_Scal_internal() with flat control tree that simply calls
// external wrapper.
r_val = FLA_Scal_internal( alpha, A, fla_scal_cntl_blas );
#else
r_val = FLA_Scal_external( alpha, A );
#endif
return r_val;
}
| FLA_Error FLA_Scal_check | ( | FLA_Obj | alpha, |
| FLA_Obj | A | ||
| ) |
References FLA_Check_consistent_object_datatype(), FLA_Check_floating_object(), FLA_Check_identical_object_precision(), FLA_Check_if_scalar(), FLA_Check_nonconstant_object(), and FLA_Obj_is_real().
Referenced by FLA_Scal(), FLA_Scal_external(), FLA_Scal_external_gpu(), and FLASH_Scal().
{
FLA_Error e_val;
e_val = FLA_Check_floating_object( A );
FLA_Check_error_code( e_val );
e_val = FLA_Check_nonconstant_object( A );
FLA_Check_error_code( e_val );
if ( FLA_Obj_is_real( A ) )
{
e_val = FLA_Check_consistent_object_datatype( A, alpha );
FLA_Check_error_code( e_val );
}
else
{
e_val = FLA_Check_identical_object_precision( A, alpha );
FLA_Check_error_code( e_val );
}
e_val = FLA_Check_if_scalar( alpha );
FLA_Check_error_code( e_val );
return FLA_SUCCESS;
}
| FLA_Error FLA_Scal_external | ( | FLA_Obj | alpha, |
| FLA_Obj | A | ||
| ) |
References bl1_cscalm(), bl1_csscalm(), bl1_dscalm(), bl1_sscalm(), bl1_zdscalm(), bl1_zscalm(), FLA_Check_error_level(), FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_equals(), FLA_Obj_has_zero_dim(), FLA_Obj_is_constant(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Obj_width(), FLA_ONE, FLA_Param_map_flame_to_blis_conj(), FLA_Scal_check(), FLA_Set(), and FLA_ZERO.
Referenced by FLA_Dot2cs_external(), FLA_Dot2s_external(), FLA_Dotcs_external(), FLA_Dots_external(), FLA_Eig_gest_il_unb_var3(), FLA_Eig_gest_il_unb_var4(), FLA_Eig_gest_il_unb_var5(), FLA_Eig_gest_iu_unb_var3(), FLA_Eig_gest_iu_unb_var4(), FLA_Eig_gest_iu_unb_var5(), FLA_Eig_gest_nl_unb_var1(), FLA_Eig_gest_nl_unb_var2(), FLA_Eig_gest_nl_unb_var4(), FLA_Eig_gest_nl_unb_var5(), FLA_Eig_gest_nu_unb_var1(), FLA_Eig_gest_nu_unb_var2(), FLA_Eig_gest_nu_unb_var4(), FLA_Eig_gest_nu_unb_var5(), FLA_Gemm_cc_unb_var1(), FLA_Gemm_cc_unb_var2(), FLA_Gemm_cc_unb_var3(), FLA_Gemm_cc_unb_var4(), FLA_Gemm_cc_unb_var5(), FLA_Gemm_cc_unb_var6(), FLA_Gemm_ch_unb_var1(), FLA_Gemm_ch_unb_var2(), FLA_Gemm_ch_unb_var3(), FLA_Gemm_ch_unb_var4(), FLA_Gemm_ch_unb_var5(), FLA_Gemm_ch_unb_var6(), FLA_Gemm_cn_unb_var1(), FLA_Gemm_cn_unb_var2(), FLA_Gemm_cn_unb_var3(), FLA_Gemm_cn_unb_var4(), FLA_Gemm_cn_unb_var5(), FLA_Gemm_cn_unb_var6(), FLA_Gemm_ct_unb_var1(), FLA_Gemm_ct_unb_var2(), FLA_Gemm_ct_unb_var3(), FLA_Gemm_ct_unb_var4(), FLA_Gemm_ct_unb_var5(), FLA_Gemm_ct_unb_var6(), FLA_Gemm_external(), FLA_Gemm_hc_unb_var1(), FLA_Gemm_hc_unb_var2(), FLA_Gemm_hc_unb_var3(), FLA_Gemm_hc_unb_var4(), FLA_Gemm_hc_unb_var5(), FLA_Gemm_hc_unb_var6(), FLA_Gemm_hh_unb_var1(), FLA_Gemm_hh_unb_var2(), FLA_Gemm_hh_unb_var3(), FLA_Gemm_hh_unb_var4(), FLA_Gemm_hh_unb_var5(), FLA_Gemm_hh_unb_var6(), FLA_Gemm_hn_unb_var1(), FLA_Gemm_hn_unb_var2(), FLA_Gemm_hn_unb_var3(), FLA_Gemm_hn_unb_var4(), FLA_Gemm_hn_unb_var5(), FLA_Gemm_hn_unb_var6(), FLA_Gemm_ht_unb_var1(), FLA_Gemm_ht_unb_var2(), FLA_Gemm_ht_unb_var3(), FLA_Gemm_ht_unb_var4(), FLA_Gemm_ht_unb_var5(), FLA_Gemm_ht_unb_var6(), FLA_Gemm_nc_unb_var1(), FLA_Gemm_nc_unb_var2(), FLA_Gemm_nc_unb_var3(), FLA_Gemm_nc_unb_var4(), FLA_Gemm_nc_unb_var5(), FLA_Gemm_nc_unb_var6(), FLA_Gemm_nh_unb_var1(), FLA_Gemm_nh_unb_var2(), FLA_Gemm_nh_unb_var3(), FLA_Gemm_nh_unb_var4(), FLA_Gemm_nh_unb_var5(), FLA_Gemm_nh_unb_var6(), FLA_Gemm_nn_unb_var1(), FLA_Gemm_nn_unb_var2(), FLA_Gemm_nn_unb_var3(), FLA_Gemm_nn_unb_var4(), FLA_Gemm_nn_unb_var5(), FLA_Gemm_nn_unb_var6(), FLA_Gemm_nt_unb_var1(), FLA_Gemm_nt_unb_var2(), FLA_Gemm_nt_unb_var3(), FLA_Gemm_nt_unb_var4(), FLA_Gemm_nt_unb_var5(), FLA_Gemm_nt_unb_var6(), FLA_Gemm_tc_unb_var1(), FLA_Gemm_tc_unb_var2(), FLA_Gemm_tc_unb_var3(), FLA_Gemm_tc_unb_var4(), FLA_Gemm_tc_unb_var5(), FLA_Gemm_tc_unb_var6(), FLA_Gemm_th_unb_var1(), FLA_Gemm_th_unb_var2(), FLA_Gemm_th_unb_var3(), FLA_Gemm_th_unb_var4(), FLA_Gemm_th_unb_var5(), FLA_Gemm_th_unb_var6(), FLA_Gemm_tn_unb_var1(), FLA_Gemm_tn_unb_var2(), FLA_Gemm_tn_unb_var3(), FLA_Gemm_tn_unb_var4(), FLA_Gemm_tn_unb_var5(), FLA_Gemm_tn_unb_var6(), FLA_Gemm_tt_unb_var1(), FLA_Gemm_tt_unb_var2(), FLA_Gemm_tt_unb_var3(), FLA_Gemm_tt_unb_var4(), FLA_Gemm_tt_unb_var5(), FLA_Gemm_tt_unb_var6(), FLA_Gemv_external(), FLA_Gemvc_external(), FLA_Hemm_ll_unb_var1(), FLA_Hemm_ll_unb_var2(), FLA_Hemm_ll_unb_var3(), FLA_Hemm_ll_unb_var4(), FLA_Hemm_ll_unb_var5(), FLA_Hemm_ll_unb_var6(), FLA_Hemm_ll_unb_var7(), FLA_Hemm_ll_unb_var8(), FLA_Hemm_lu_unb_var1(), FLA_Hemm_lu_unb_var2(), FLA_Hemm_lu_unb_var3(), FLA_Hemm_lu_unb_var4(), FLA_Hemm_lu_unb_var5(), FLA_Hemm_lu_unb_var6(), FLA_Hemm_lu_unb_var7(), FLA_Hemm_lu_unb_var8(), FLA_Hemm_rl_unb_var1(), FLA_Hemm_rl_unb_var2(), FLA_Hemm_rl_unb_var3(), FLA_Hemm_rl_unb_var4(), FLA_Hemm_rl_unb_var5(), FLA_Hemm_rl_unb_var6(), FLA_Hemm_rl_unb_var7(), FLA_Hemm_rl_unb_var8(), FLA_Hemm_ru_unb_var1(), FLA_Hemm_ru_unb_var2(), FLA_Hemm_ru_unb_var3(), FLA_Hemm_ru_unb_var4(), FLA_Hemm_ru_unb_var5(), FLA_Hemm_ru_unb_var6(), FLA_Hemm_ru_unb_var7(), FLA_Hemm_ru_unb_var8(), FLA_Her2k_external(), FLA_Herk_external(), FLA_Scal(), FLA_Scal_task(), FLA_Symm_ll_unb_var1(), FLA_Symm_ll_unb_var2(), FLA_Symm_ll_unb_var3(), FLA_Symm_ll_unb_var4(), FLA_Symm_ll_unb_var5(), FLA_Symm_ll_unb_var6(), FLA_Symm_ll_unb_var7(), FLA_Symm_ll_unb_var8(), FLA_Symm_lu_unb_var1(), FLA_Symm_lu_unb_var2(), FLA_Symm_lu_unb_var3(), FLA_Symm_lu_unb_var4(), FLA_Symm_lu_unb_var5(), FLA_Symm_lu_unb_var6(), FLA_Symm_lu_unb_var7(), FLA_Symm_lu_unb_var8(), FLA_Symm_rl_unb_var1(), FLA_Symm_rl_unb_var2(), FLA_Symm_rl_unb_var3(), FLA_Symm_rl_unb_var4(), FLA_Symm_rl_unb_var5(), FLA_Symm_rl_unb_var6(), FLA_Symm_rl_unb_var7(), FLA_Symm_rl_unb_var8(), FLA_Symm_ru_unb_var1(), FLA_Symm_ru_unb_var2(), FLA_Symm_ru_unb_var3(), FLA_Symm_ru_unb_var4(), FLA_Symm_ru_unb_var5(), FLA_Symm_ru_unb_var6(), FLA_Symm_ru_unb_var7(), FLA_Symm_ru_unb_var8(), FLA_Syr2k_external(), FLA_Syrk_external(), FLA_Trinv_ln_unb_var1(), FLA_Trinv_ln_unb_var2(), FLA_Trinv_ln_unb_var3(), FLA_Trinv_ln_unb_var4(), FLA_Trinv_lu_unb_var1(), FLA_Trinv_lu_unb_var2(), FLA_Trinv_lu_unb_var3(), FLA_Trinv_lu_unb_var4(), FLA_Trinv_un_unb_var1(), FLA_Trinv_un_unb_var2(), FLA_Trinv_un_unb_var3(), FLA_Trinv_un_unb_var4(), FLA_Trinv_uu_unb_var1(), FLA_Trinv_uu_unb_var2(), FLA_Trinv_uu_unb_var3(), FLA_Trinv_uu_unb_var4(), FLA_Trmm_llc_unb_var1(), FLA_Trmm_llc_unb_var2(), FLA_Trmm_llc_unb_var3(), FLA_Trmm_llc_unb_var4(), FLA_Trmm_llh_unb_var1(), FLA_Trmm_llh_unb_var2(), FLA_Trmm_llh_unb_var3(), FLA_Trmm_llh_unb_var4(), FLA_Trmm_lln_unb_var1(), FLA_Trmm_lln_unb_var2(), FLA_Trmm_lln_unb_var3(), FLA_Trmm_lln_unb_var4(), FLA_Trmm_llt_unb_var1(), FLA_Trmm_llt_unb_var2(), FLA_Trmm_llt_unb_var3(), FLA_Trmm_llt_unb_var4(), FLA_Trmm_luc_unb_var1(), FLA_Trmm_luc_unb_var2(), FLA_Trmm_luc_unb_var3(), FLA_Trmm_luc_unb_var4(), FLA_Trmm_luh_unb_var1(), FLA_Trmm_luh_unb_var2(), FLA_Trmm_luh_unb_var3(), FLA_Trmm_luh_unb_var4(), FLA_Trmm_lun_unb_var1(), FLA_Trmm_lun_unb_var2(), FLA_Trmm_lun_unb_var3(), FLA_Trmm_lun_unb_var4(), FLA_Trmm_lut_unb_var1(), FLA_Trmm_lut_unb_var2(), FLA_Trmm_lut_unb_var3(), FLA_Trmm_lut_unb_var4(), FLA_Trmm_rlc_unb_var1(), FLA_Trmm_rlc_unb_var2(), FLA_Trmm_rlc_unb_var3(), FLA_Trmm_rlc_unb_var4(), FLA_Trmm_rlh_unb_var1(), FLA_Trmm_rlh_unb_var2(), FLA_Trmm_rlh_unb_var3(), FLA_Trmm_rlh_unb_var4(), FLA_Trmm_rln_unb_var1(), FLA_Trmm_rln_unb_var2(), FLA_Trmm_rln_unb_var3(), FLA_Trmm_rln_unb_var4(), FLA_Trmm_rlt_unb_var1(), FLA_Trmm_rlt_unb_var2(), FLA_Trmm_rlt_unb_var3(), FLA_Trmm_rlt_unb_var4(), FLA_Trmm_ruc_unb_var1(), FLA_Trmm_ruc_unb_var2(), FLA_Trmm_ruc_unb_var3(), FLA_Trmm_ruc_unb_var4(), FLA_Trmm_ruh_unb_var1(), FLA_Trmm_ruh_unb_var2(), FLA_Trmm_ruh_unb_var3(), FLA_Trmm_ruh_unb_var4(), FLA_Trmm_run_unb_var1(), FLA_Trmm_run_unb_var2(), FLA_Trmm_run_unb_var3(), FLA_Trmm_run_unb_var4(), FLA_Trmm_rut_unb_var1(), FLA_Trmm_rut_unb_var2(), FLA_Trmm_rut_unb_var3(), FLA_Trmm_rut_unb_var4(), FLA_Trmvsx_external(), FLA_Trsm_llc_unb_var1(), FLA_Trsm_llc_unb_var2(), FLA_Trsm_llc_unb_var3(), FLA_Trsm_llc_unb_var4(), FLA_Trsm_llh_unb_var1(), FLA_Trsm_llh_unb_var2(), FLA_Trsm_llh_unb_var3(), FLA_Trsm_llh_unb_var4(), FLA_Trsm_lln_unb_var1(), FLA_Trsm_lln_unb_var2(), FLA_Trsm_lln_unb_var3(), FLA_Trsm_lln_unb_var4(), FLA_Trsm_llt_unb_var1(), FLA_Trsm_llt_unb_var2(), FLA_Trsm_llt_unb_var3(), FLA_Trsm_llt_unb_var4(), FLA_Trsm_luc_unb_var1(), FLA_Trsm_luc_unb_var2(), FLA_Trsm_luc_unb_var3(), FLA_Trsm_luc_unb_var4(), FLA_Trsm_luh_unb_var1(), FLA_Trsm_luh_unb_var2(), FLA_Trsm_luh_unb_var3(), FLA_Trsm_luh_unb_var4(), FLA_Trsm_lun_unb_var1(), FLA_Trsm_lun_unb_var2(), FLA_Trsm_lun_unb_var3(), FLA_Trsm_lun_unb_var4(), FLA_Trsm_lut_unb_var1(), FLA_Trsm_lut_unb_var2(), FLA_Trsm_lut_unb_var3(), FLA_Trsm_lut_unb_var4(), FLA_Trsm_rlc_unb_var1(), FLA_Trsm_rlc_unb_var2(), FLA_Trsm_rlc_unb_var3(), FLA_Trsm_rlc_unb_var4(), FLA_Trsm_rlh_unb_var1(), FLA_Trsm_rlh_unb_var2(), FLA_Trsm_rlh_unb_var3(), FLA_Trsm_rlh_unb_var4(), FLA_Trsm_rln_unb_var1(), FLA_Trsm_rln_unb_var2(), FLA_Trsm_rln_unb_var3(), FLA_Trsm_rln_unb_var4(), FLA_Trsm_rlt_unb_var1(), FLA_Trsm_rlt_unb_var2(), FLA_Trsm_rlt_unb_var3(), FLA_Trsm_rlt_unb_var4(), FLA_Trsm_ruc_unb_var1(), FLA_Trsm_ruc_unb_var2(), FLA_Trsm_ruc_unb_var3(), FLA_Trsm_ruc_unb_var4(), FLA_Trsm_ruh_unb_var1(), FLA_Trsm_ruh_unb_var2(), FLA_Trsm_ruh_unb_var3(), FLA_Trsm_ruh_unb_var4(), FLA_Trsm_run_unb_var1(), FLA_Trsm_run_unb_var2(), FLA_Trsm_run_unb_var3(), FLA_Trsm_run_unb_var4(), FLA_Trsm_rut_unb_var1(), FLA_Trsm_rut_unb_var2(), FLA_Trsm_rut_unb_var3(), FLA_Trsm_rut_unb_var4(), FLA_Trsvsx_external(), FLA_Ttmm_l_unb_var1(), FLA_Ttmm_l_unb_var2(), FLA_Ttmm_u_unb_var1(), and FLA_Ttmm_u_unb_var2().
{
FLA_Datatype datatype, dt_alpha;
int m_A, n_A;
int rs_A, cs_A;
conj1_t blis_conj;
if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
FLA_Scal_check( alpha, A );
if ( FLA_Obj_has_zero_dim( A ) ) return FLA_SUCCESS;
if ( FLA_Obj_equals( alpha, FLA_ONE ) )
{
return FLA_SUCCESS;
}
else if ( FLA_Obj_equals( alpha, FLA_ZERO ) )
{
FLA_Set( FLA_ZERO, A );
return FLA_SUCCESS;
}
datatype = FLA_Obj_datatype( A );
m_A = FLA_Obj_length( A );
n_A = FLA_Obj_width( A );
rs_A = FLA_Obj_row_stride( A );
cs_A = FLA_Obj_col_stride( A );
if ( FLA_Obj_is_constant( alpha ) )
dt_alpha = datatype;
else
dt_alpha = FLA_Obj_datatype( alpha );
FLA_Param_map_flame_to_blis_conj( FLA_NO_CONJUGATE, &blis_conj );
switch ( datatype ){
case FLA_FLOAT:
{
float *buff_A = ( float * ) FLA_FLOAT_PTR( A );
float *buff_alpha = ( float * ) FLA_FLOAT_PTR( alpha );
bl1_sscalm( blis_conj,
m_A,
n_A,
buff_alpha,
buff_A, rs_A, cs_A );
break;
}
case FLA_DOUBLE:
{
double *buff_A = ( double * ) FLA_DOUBLE_PTR( A );
double *buff_alpha = ( double * ) FLA_DOUBLE_PTR( alpha );
bl1_dscalm( blis_conj,
m_A,
n_A,
buff_alpha,
buff_A, rs_A, cs_A );
break;
}
case FLA_COMPLEX:
{
if ( dt_alpha == FLA_COMPLEX )
{
scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
scomplex *buff_alpha = ( scomplex * ) FLA_COMPLEX_PTR( alpha );
bl1_cscalm( blis_conj,
m_A,
n_A,
buff_alpha,
buff_A, rs_A, cs_A );
}
else if ( dt_alpha == FLA_FLOAT )
{
scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
float *buff_alpha = ( float * ) FLA_FLOAT_PTR( alpha );
bl1_csscalm( blis_conj,
m_A,
n_A,
buff_alpha,
buff_A, rs_A, cs_A );
}
break;
}
case FLA_DOUBLE_COMPLEX:
{
if ( dt_alpha == FLA_DOUBLE_COMPLEX )
{
dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
dcomplex *buff_alpha = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( alpha );
bl1_zscalm( blis_conj,
m_A,
n_A,
buff_alpha,
buff_A, rs_A, cs_A );
}
else if ( dt_alpha == FLA_DOUBLE )
{
dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
double *buff_alpha = ( double * ) FLA_DOUBLE_PTR( alpha );
bl1_zdscalm( blis_conj,
m_A,
n_A,
buff_alpha,
buff_A, rs_A, cs_A );
}
break;
}
}
return FLA_SUCCESS;
}
| FLA_Error FLA_Scal_external_gpu | ( | FLA_Obj | alpha, |
| FLA_Obj | A, | ||
| void * | A_gpu | ||
| ) |
References FLA_Check_error_level(), FLA_Obj_datatype(), FLA_Obj_equals(), FLA_Obj_has_zero_dim(), FLA_Obj_length(), FLA_Obj_width(), FLA_ONE, and FLA_Scal_check().
Referenced by FLA_Gemm_external_gpu(), and FLASH_Queue_exec_task_gpu().
{
FLA_Datatype datatype;
int m_A, n_A;
int ldim_A, inc_A;
int i;
if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
FLA_Scal_check( alpha, A );
if ( FLA_Obj_has_zero_dim( A ) ) return FLA_SUCCESS;
if ( FLA_Obj_equals( alpha, FLA_ONE ) )
{
return FLA_SUCCESS;
}
datatype = FLA_Obj_datatype( A );
m_A = FLA_Obj_length( A );
n_A = FLA_Obj_width( A );
ldim_A = FLA_Obj_length( A );
inc_A = 1;
switch ( datatype ){
case FLA_FLOAT:
{
float* buff_alpha = ( float* ) FLA_FLOAT_PTR( alpha );
float* buff_A_gpu = ( float* ) A_gpu;
for ( i = 0; i < n_A; i++ )
cublasSscal( m_A,
*buff_alpha,
buff_A_gpu + i * ldim_A, inc_A );
break;
}
case FLA_DOUBLE:
{
double* buff_alpha = ( double* ) FLA_DOUBLE_PTR( alpha );
double* buff_A_gpu = ( double* ) A_gpu;
for ( i = 0; i < n_A; i++ )
cublasDscal( m_A,
*buff_alpha,
buff_A_gpu + i * ldim_A, inc_A );
break;
}
case FLA_COMPLEX:
{
cuComplex* buff_alpha = ( cuComplex* ) FLA_COMPLEX_PTR( alpha );
cuComplex* buff_A_gpu = ( cuComplex* ) A_gpu;
for ( i = 0; i < n_A; i++ )
cublasCscal( m_A,
*buff_alpha,
buff_A_gpu + i * ldim_A, inc_A );
break;
}
case FLA_DOUBLE_COMPLEX:
{
cuDoubleComplex* buff_alpha = ( cuDoubleComplex* ) FLA_DOUBLE_COMPLEX_PTR( alpha );
cuDoubleComplex* buff_A_gpu = ( cuDoubleComplex* ) A_gpu;
for ( i = 0; i < n_A; i++ )
cublasZscal( m_A,
*buff_alpha,
buff_A_gpu + i * ldim_A, inc_A );
break;
}
}
return FLA_SUCCESS;
}
| FLA_Error FLA_Scal_internal_check | ( | FLA_Obj | alpha, |
| FLA_Obj | A, | ||
| fla_scal_t * | cntl | ||
| ) |
References FLA_Check_null_pointer().
Referenced by FLA_Scal_internal().
{
FLA_Error e_val;
// Abort if the control structure is NULL.
e_val = FLA_Check_null_pointer( ( void* ) cntl );
FLA_Check_error_code( e_val );
return FLA_SUCCESS;
}
| FLA_Error FLA_Scal_task | ( | FLA_Obj | alpha, |
| FLA_Obj | A, | ||
| fla_scal_t * | cntl | ||
| ) |
References FLA_Scal_external().
Referenced by FLA_Scal_internal(), FLASH_Queue_exec_task(), and FLASH_Queue_exec_task_gpu().
{
return FLA_Scal_external( alpha, A );
}
References FLA_Scalc_external().
Referenced by FLA_Bidiag_UT_l_realify_unb(), FLA_Bidiag_UT_u_realify_unb(), FLA_Tridiag_UT_l_realify_unb(), and FLA_Tridiag_UT_u_realify_unb().
{
return FLA_Scalc_external( conjalpha, alpha, A );
}
| FLA_Error FLA_Scalc_check | ( | FLA_Conj | conjalpha, |
| FLA_Obj | alpha, | ||
| FLA_Obj | A | ||
| ) |
References FLA_Check_consistent_object_datatype(), FLA_Check_floating_object(), FLA_Check_identical_object_precision(), FLA_Check_if_scalar(), FLA_Check_nonconstant_object(), FLA_Check_valid_conj(), and FLA_Obj_is_real().
Referenced by FLA_Scalc_external().
{
FLA_Error e_val;
e_val = FLA_Check_valid_conj( conjalpha );
FLA_Check_error_code( e_val );
e_val = FLA_Check_floating_object( A );
FLA_Check_error_code( e_val );
e_val = FLA_Check_nonconstant_object( A );
FLA_Check_error_code( e_val );
if ( FLA_Obj_is_real( A ) )
{
e_val = FLA_Check_consistent_object_datatype( A, alpha );
FLA_Check_error_code( e_val );
}
else
{
e_val = FLA_Check_identical_object_precision( A, alpha );
FLA_Check_error_code( e_val );
}
e_val = FLA_Check_if_scalar( alpha );
FLA_Check_error_code( e_val );
return FLA_SUCCESS;
}
| FLA_Error FLA_Scalc_external | ( | FLA_Conj | conjalpha, |
| FLA_Obj | alpha, | ||
| FLA_Obj | A | ||
| ) |
References bl1_cscalm(), bl1_csscalm(), bl1_dscalm(), bl1_sscalm(), bl1_zdscalm(), bl1_zscalm(), FLA_Check_error_level(), FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_equals(), FLA_Obj_has_zero_dim(), FLA_Obj_is_constant(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Obj_width(), FLA_ONE, FLA_Param_map_flame_to_blis_conj(), FLA_Scalc_check(), FLA_Set(), and FLA_ZERO.
Referenced by FLA_Scalc(), FLA_Trmm_llc_unb_var1(), FLA_Trmm_llc_unb_var2(), FLA_Trmm_llh_unb_var1(), FLA_Trmm_llh_unb_var2(), FLA_Trmm_luc_unb_var1(), FLA_Trmm_luc_unb_var2(), FLA_Trmm_luh_unb_var1(), FLA_Trmm_luh_unb_var2(), FLA_Trmm_rlc_unb_var1(), FLA_Trmm_rlc_unb_var2(), FLA_Trmm_rlh_unb_var1(), FLA_Trmm_rlh_unb_var2(), FLA_Trmm_ruc_unb_var1(), FLA_Trmm_ruc_unb_var2(), FLA_Trmm_ruh_unb_var1(), and FLA_Trmm_ruh_unb_var2().
{
FLA_Datatype datatype, dt_alpha;
int m_A, n_A;
int rs_A, cs_A;
conj1_t blis_conj;
if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
FLA_Scalc_check( conj, alpha, A );
if ( FLA_Obj_has_zero_dim( A ) ) return FLA_SUCCESS;
if ( FLA_Obj_equals( alpha, FLA_ONE ) )
{
return FLA_SUCCESS;
}
else if ( FLA_Obj_equals( alpha, FLA_ZERO ) )
{
FLA_Set( FLA_ZERO, A );
return FLA_SUCCESS;
}
datatype = FLA_Obj_datatype( A );
m_A = FLA_Obj_length( A );
n_A = FLA_Obj_width( A );
rs_A = FLA_Obj_row_stride( A );
cs_A = FLA_Obj_col_stride( A );
if ( FLA_Obj_is_constant( alpha ) )
dt_alpha = datatype;
else
dt_alpha = FLA_Obj_datatype( alpha );
FLA_Param_map_flame_to_blis_conj( conj, &blis_conj );
switch ( datatype ){
case FLA_FLOAT:
{
float *buff_A = ( float * ) FLA_FLOAT_PTR( A );
float *buff_alpha = ( float * ) FLA_FLOAT_PTR( alpha );
bl1_sscalm( blis_conj,
m_A,
n_A,
buff_alpha,
buff_A, rs_A, cs_A );
break;
}
case FLA_DOUBLE:
{
double *buff_A = ( double * ) FLA_DOUBLE_PTR( A );
double *buff_alpha = ( double * ) FLA_DOUBLE_PTR( alpha );
bl1_dscalm( blis_conj,
m_A,
n_A,
buff_alpha,
buff_A, rs_A, cs_A );
break;
}
case FLA_COMPLEX:
{
if ( dt_alpha == FLA_COMPLEX )
{
scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
scomplex *buff_alpha = ( scomplex * ) FLA_COMPLEX_PTR( alpha );
bl1_cscalm( blis_conj,
m_A,
n_A,
buff_alpha,
buff_A, rs_A, cs_A );
}
else if ( dt_alpha == FLA_FLOAT )
{
scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
float *buff_alpha = ( float * ) FLA_FLOAT_PTR( alpha );
bl1_csscalm( blis_conj,
m_A,
n_A,
buff_alpha,
buff_A, rs_A, cs_A );
}
break;
}
case FLA_DOUBLE_COMPLEX:
{
if ( dt_alpha == FLA_DOUBLE_COMPLEX )
{
dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
dcomplex *buff_alpha = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( alpha );
bl1_zscalm( blis_conj,
m_A,
n_A,
buff_alpha,
buff_A, rs_A, cs_A );
}
else if ( dt_alpha == FLA_DOUBLE )
{
dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
double *buff_alpha = ( double * ) FLA_DOUBLE_PTR( alpha );
bl1_zdscalm( blis_conj,
m_A,
n_A,
buff_alpha,
buff_A, rs_A, cs_A );
}
break;
}
}
return FLA_SUCCESS;
}
References FLA_Check_error_level(), FLA_Scalr_check(), FLA_Scalr_external(), and FLA_Scalr_internal().
Referenced by FLA_Hevd_lv_unb_var1(), and FLA_Hevd_lv_unb_var2().
{
FLA_Error r_val;
#ifdef FLA_ENABLE_BLAS1_FRONT_END_CNTL_TREES
// Check parameters.
if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
FLA_Scalr_check( alpha, A );
// Invoke FLA_Scalr_internal() with flat control tree that simply calls
// external wrapper.
r_val = FLA_Scalr_internal( uplo, alpha, A, fla_scalr_cntl_blas );
#else
r_val = FLA_Scalr_external( uplo, alpha, A );
#endif
return r_val;
}
| FLA_Error FLA_Scalr_check | ( | FLA_Uplo | uplo, |
| FLA_Obj | alpha, | ||
| FLA_Obj | A | ||
| ) |
References FLA_Check_consistent_object_datatype(), FLA_Check_floating_object(), FLA_Check_identical_object_precision(), FLA_Check_if_scalar(), FLA_Check_nonconstant_object(), FLA_Check_valid_uplo(), and FLA_Obj_is_real().
Referenced by FLA_Scalr(), FLA_Scalr_external(), FLA_Scalr_external_gpu(), and FLASH_Scalr().
{
FLA_Error e_val;
e_val = FLA_Check_valid_uplo( uplo );
FLA_Check_error_code( e_val );
e_val = FLA_Check_floating_object( A );
FLA_Check_error_code( e_val );
e_val = FLA_Check_nonconstant_object( A );
FLA_Check_error_code( e_val );
if ( FLA_Obj_is_real( A ) )
{
e_val = FLA_Check_consistent_object_datatype( A, alpha );
FLA_Check_error_code( e_val );
}
else
{
e_val = FLA_Check_identical_object_precision( A, alpha );
FLA_Check_error_code( e_val );
}
e_val = FLA_Check_if_scalar( alpha );
FLA_Check_error_code( e_val );
return FLA_SUCCESS;
}
| FLA_Error FLA_Scalr_external | ( | FLA_Uplo | uplo, |
| FLA_Obj | alpha, | ||
| FLA_Obj | A | ||
| ) |
References bl1_cscalmr(), bl1_csscalmr(), bl1_dscalmr(), bl1_sscalmr(), bl1_zdscalmr(), bl1_zscalmr(), FLA_Check_error_level(), FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_has_zero_dim(), FLA_Obj_is_constant(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Obj_width(), FLA_Param_map_flame_to_blis_uplo(), and FLA_Scalr_check().
Referenced by FLA_Her2k_lh_unb_var1(), FLA_Her2k_lh_unb_var10(), FLA_Her2k_lh_unb_var2(), FLA_Her2k_lh_unb_var3(), FLA_Her2k_lh_unb_var4(), FLA_Her2k_lh_unb_var5(), FLA_Her2k_lh_unb_var6(), FLA_Her2k_lh_unb_var7(), FLA_Her2k_lh_unb_var8(), FLA_Her2k_lh_unb_var9(), FLA_Her2k_ln_unb_var1(), FLA_Her2k_ln_unb_var10(), FLA_Her2k_ln_unb_var2(), FLA_Her2k_ln_unb_var3(), FLA_Her2k_ln_unb_var4(), FLA_Her2k_ln_unb_var5(), FLA_Her2k_ln_unb_var6(), FLA_Her2k_ln_unb_var7(), FLA_Her2k_ln_unb_var8(), FLA_Her2k_ln_unb_var9(), FLA_Her2k_uh_unb_var1(), FLA_Her2k_uh_unb_var10(), FLA_Her2k_uh_unb_var2(), FLA_Her2k_uh_unb_var3(), FLA_Her2k_uh_unb_var4(), FLA_Her2k_uh_unb_var5(), FLA_Her2k_uh_unb_var6(), FLA_Her2k_uh_unb_var7(), FLA_Her2k_uh_unb_var8(), FLA_Her2k_uh_unb_var9(), FLA_Her2k_un_unb_var1(), FLA_Her2k_un_unb_var10(), FLA_Her2k_un_unb_var2(), FLA_Her2k_un_unb_var3(), FLA_Her2k_un_unb_var4(), FLA_Her2k_un_unb_var5(), FLA_Her2k_un_unb_var6(), FLA_Her2k_un_unb_var7(), FLA_Her2k_un_unb_var8(), FLA_Her2k_un_unb_var9(), FLA_Herk_lh_unb_var1(), FLA_Herk_lh_unb_var2(), FLA_Herk_lh_unb_var3(), FLA_Herk_lh_unb_var4(), FLA_Herk_lh_unb_var5(), FLA_Herk_lh_unb_var6(), FLA_Herk_ln_unb_var1(), FLA_Herk_ln_unb_var2(), FLA_Herk_ln_unb_var3(), FLA_Herk_ln_unb_var4(), FLA_Herk_ln_unb_var5(), FLA_Herk_ln_unb_var6(), FLA_Herk_uh_unb_var1(), FLA_Herk_uh_unb_var2(), FLA_Herk_uh_unb_var3(), FLA_Herk_uh_unb_var4(), FLA_Herk_uh_unb_var5(), FLA_Herk_uh_unb_var6(), FLA_Herk_un_unb_var1(), FLA_Herk_un_unb_var2(), FLA_Herk_un_unb_var3(), FLA_Herk_un_unb_var4(), FLA_Herk_un_unb_var5(), FLA_Herk_un_unb_var6(), FLA_Scalr(), FLA_Scalr_l_task(), FLA_Scalr_task(), FLA_Scalr_u_task(), FLA_Syr2k_ln_unb_var1(), FLA_Syr2k_ln_unb_var10(), FLA_Syr2k_ln_unb_var2(), FLA_Syr2k_ln_unb_var3(), FLA_Syr2k_ln_unb_var4(), FLA_Syr2k_ln_unb_var5(), FLA_Syr2k_ln_unb_var6(), FLA_Syr2k_ln_unb_var7(), FLA_Syr2k_ln_unb_var8(), FLA_Syr2k_ln_unb_var9(), FLA_Syr2k_lt_unb_var1(), FLA_Syr2k_lt_unb_var10(), FLA_Syr2k_lt_unb_var2(), FLA_Syr2k_lt_unb_var3(), FLA_Syr2k_lt_unb_var4(), FLA_Syr2k_lt_unb_var5(), FLA_Syr2k_lt_unb_var6(), FLA_Syr2k_lt_unb_var7(), FLA_Syr2k_lt_unb_var8(), FLA_Syr2k_lt_unb_var9(), FLA_Syr2k_un_unb_var1(), FLA_Syr2k_un_unb_var10(), FLA_Syr2k_un_unb_var2(), FLA_Syr2k_un_unb_var3(), FLA_Syr2k_un_unb_var4(), FLA_Syr2k_un_unb_var5(), FLA_Syr2k_un_unb_var6(), FLA_Syr2k_un_unb_var7(), FLA_Syr2k_un_unb_var8(), FLA_Syr2k_un_unb_var9(), FLA_Syr2k_ut_unb_var1(), FLA_Syr2k_ut_unb_var10(), FLA_Syr2k_ut_unb_var2(), FLA_Syr2k_ut_unb_var3(), FLA_Syr2k_ut_unb_var4(), FLA_Syr2k_ut_unb_var5(), FLA_Syr2k_ut_unb_var6(), FLA_Syr2k_ut_unb_var7(), FLA_Syr2k_ut_unb_var8(), FLA_Syr2k_ut_unb_var9(), FLA_Syrk_ln_unb_var1(), FLA_Syrk_ln_unb_var2(), FLA_Syrk_ln_unb_var3(), FLA_Syrk_ln_unb_var4(), FLA_Syrk_ln_unb_var5(), FLA_Syrk_ln_unb_var6(), FLA_Syrk_lt_unb_var1(), FLA_Syrk_lt_unb_var2(), FLA_Syrk_lt_unb_var3(), FLA_Syrk_lt_unb_var4(), FLA_Syrk_lt_unb_var5(), FLA_Syrk_lt_unb_var6(), FLA_Syrk_un_unb_var1(), FLA_Syrk_un_unb_var2(), FLA_Syrk_un_unb_var3(), FLA_Syrk_un_unb_var4(), FLA_Syrk_un_unb_var5(), FLA_Syrk_un_unb_var6(), FLA_Syrk_ut_unb_var1(), FLA_Syrk_ut_unb_var2(), FLA_Syrk_ut_unb_var3(), FLA_Syrk_ut_unb_var4(), FLA_Syrk_ut_unb_var5(), and FLA_Syrk_ut_unb_var6().
{
FLA_Datatype datatype, dt_alpha;
int m_A, n_A;
int rs_A, cs_A;
uplo1_t blis_uplo;
if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
FLA_Scalr_check( uplo, alpha, A );
if ( FLA_Obj_has_zero_dim( A ) ) return FLA_SUCCESS;
datatype = FLA_Obj_datatype( A );
m_A = FLA_Obj_length( A );
n_A = FLA_Obj_width( A );
rs_A = FLA_Obj_row_stride( A );
cs_A = FLA_Obj_col_stride( A );
if ( FLA_Obj_is_constant( alpha ) )
dt_alpha = datatype;
else
dt_alpha = FLA_Obj_datatype( alpha );
FLA_Param_map_flame_to_blis_uplo( uplo, &blis_uplo );
switch ( datatype ){
case FLA_FLOAT:
{
float *buff_A = ( float * ) FLA_FLOAT_PTR( A );
float *buff_alpha = ( float * ) FLA_FLOAT_PTR( alpha );
bl1_sscalmr( blis_uplo,
m_A,
n_A,
buff_alpha,
buff_A, rs_A, cs_A );
break;
}
case FLA_DOUBLE:
{
double *buff_A = ( double * ) FLA_DOUBLE_PTR( A );
double *buff_alpha = ( double * ) FLA_DOUBLE_PTR( alpha );
bl1_dscalmr( blis_uplo,
m_A,
n_A,
buff_alpha,
buff_A, rs_A, cs_A );
break;
}
case FLA_COMPLEX:
{
if ( dt_alpha == FLA_COMPLEX )
{
scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
scomplex *buff_alpha = ( scomplex * ) FLA_COMPLEX_PTR( alpha );
bl1_cscalmr( blis_uplo,
m_A,
n_A,
buff_alpha,
buff_A, rs_A, cs_A );
}
else if ( dt_alpha == FLA_FLOAT )
{
scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
float *buff_alpha = ( float * ) FLA_FLOAT_PTR( alpha );
bl1_csscalmr( blis_uplo,
m_A,
n_A,
buff_alpha,
buff_A, rs_A, cs_A );
}
break;
}
case FLA_DOUBLE_COMPLEX:
{
if ( dt_alpha == FLA_DOUBLE_COMPLEX )
{
dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
dcomplex *buff_alpha = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( alpha );
bl1_zscalmr( blis_uplo,
m_A,
n_A,
buff_alpha,
buff_A, rs_A, cs_A );
}
else if ( dt_alpha == FLA_DOUBLE )
{
dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
double *buff_alpha = ( double * ) FLA_DOUBLE_PTR( alpha );
bl1_zdscalmr( blis_uplo,
m_A,
n_A,
buff_alpha,
buff_A, rs_A, cs_A );
}
break;
}
}
return FLA_SUCCESS;
}
| FLA_Error FLA_Scalr_external_gpu | ( | FLA_Uplo | uplo, |
| FLA_Obj | alpha, | ||
| FLA_Obj | A, | ||
| void * | A_gpu | ||
| ) |
References FLA_Check_error_level(), FLA_Obj_datatype(), FLA_Obj_equals(), FLA_Obj_has_zero_dim(), FLA_Obj_length(), FLA_Obj_width(), FLA_ONE, and FLA_Scalr_check().
Referenced by FLASH_Queue_exec_task_gpu().
{
FLA_Datatype datatype;
int m_A, n_A;
int ldim_A, inc_A;
int i;
if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
FLA_Scalr_check( uplo, alpha, A );
if ( FLA_Obj_has_zero_dim( A ) ) return FLA_SUCCESS;
if ( FLA_Obj_equals( alpha, FLA_ONE ) )
{
return FLA_SUCCESS;
}
datatype = FLA_Obj_datatype( A );
m_A = FLA_Obj_length( A );
n_A = FLA_Obj_width( A );
ldim_A = FLA_Obj_length( A );
inc_A = 1;
if ( uplo == FLA_LOWER_TRIANGULAR ){
switch ( datatype ){
case FLA_FLOAT:
{
float* buff_alpha = ( float* ) FLA_FLOAT_PTR( alpha );
float* buff_A_gpu = ( float* ) A_gpu;
for ( i = 0; i < min( n_A, m_A ); i++ )
cublasSscal( m_A - i,
*buff_alpha,
buff_A_gpu + i * ldim_A + i, inc_A );
break;
}
case FLA_DOUBLE:
{
double* buff_alpha = ( double* ) FLA_DOUBLE_PTR( alpha );
double* buff_A_gpu = ( double* ) A_gpu;
for ( i = 0; i < min( n_A, m_A ); i++ )
cublasDscal( m_A - i,
*buff_alpha,
buff_A_gpu + i * ldim_A + i, inc_A );
break;
}
case FLA_COMPLEX:
{
cuComplex* buff_alpha = ( cuComplex* ) FLA_COMPLEX_PTR( alpha );
cuComplex* buff_A_gpu = ( cuComplex* ) A_gpu;
for ( i = 0; i < min( n_A, m_A ); i++ )
cublasCscal( m_A - i,
*buff_alpha,
buff_A_gpu + i * ldim_A + i, inc_A );
break;
}
case FLA_DOUBLE_COMPLEX:
{
cuDoubleComplex* buff_alpha = ( cuDoubleComplex* ) FLA_DOUBLE_COMPLEX_PTR( alpha );
cuDoubleComplex* buff_A_gpu = ( cuDoubleComplex* ) A_gpu;
for ( i = 0; i < min( n_A, m_A ); i++ )
cublasZscal( m_A - i,
*buff_alpha,
buff_A_gpu + i * ldim_A + i, inc_A );
break;
}
}
}
else if ( uplo == FLA_UPPER_TRIANGULAR ){
switch ( datatype ){
case FLA_FLOAT:
{
float* buff_alpha = ( float* ) FLA_FLOAT_PTR( alpha );
float* buff_A_gpu = ( float* ) A_gpu;
for ( i = 0; i < n_A; i++ )
cublasSscal( min( i + 1, m_A ),
*buff_alpha,
buff_A_gpu + i * ldim_A, inc_A );
break;
}
case FLA_DOUBLE:
{
double* buff_alpha = ( double* ) FLA_DOUBLE_PTR( alpha );
double* buff_A_gpu = ( double* ) A_gpu;
for ( i = 0; i < n_A; i++ )
cublasDscal( min( i + 1, m_A ),
*buff_alpha,
buff_A_gpu + i * ldim_A, inc_A );
break;
}
case FLA_COMPLEX:
{
cuComplex* buff_alpha = ( cuComplex* ) FLA_COMPLEX_PTR( alpha );
cuComplex* buff_A_gpu = ( cuComplex* ) A_gpu;
for ( i = 0; i < n_A; i++ )
cublasCscal( min( i + 1, m_A ),
*buff_alpha,
buff_A_gpu + i * ldim_A, inc_A );
break;
}
case FLA_DOUBLE_COMPLEX:
{
cuDoubleComplex* buff_alpha = ( cuDoubleComplex* ) FLA_DOUBLE_COMPLEX_PTR( alpha );
cuDoubleComplex* buff_A_gpu = ( cuDoubleComplex* ) A_gpu;
for ( i = 0; i < n_A; i++ )
cublasZscal( min( i + 1, m_A ),
*buff_alpha,
buff_A_gpu + i * ldim_A, inc_A );
break;
}
}
}
return FLA_SUCCESS;
}
| FLA_Error FLA_Scalr_internal_check | ( | FLA_Uplo | uplo, |
| FLA_Obj | alpha, | ||
| FLA_Obj | A, | ||
| fla_scalr_t * | cntl | ||
| ) |
References FLA_Check_null_pointer().
Referenced by FLA_Scalr_internal().
{
FLA_Error e_val;
// Abort if the control structure is NULL.
e_val = FLA_Check_null_pointer( ( void* ) cntl );
FLA_Check_error_code( e_val );
return FLA_SUCCESS;
}
| FLA_Error FLA_Scalr_l_task | ( | FLA_Obj | alpha, |
| FLA_Obj | A, | ||
| fla_scalr_t * | cntl | ||
| ) |
References FLA_Scalr_external().
Referenced by FLA_Scalr_l().
{
return FLA_Scalr_external( FLA_LOWER_TRIANGULAR, alpha, A );
}
| FLA_Error FLA_Scalr_task | ( | FLA_Uplo | uplo, |
| FLA_Obj | alpha, | ||
| FLA_Obj | A, | ||
| fla_scalr_t * | cntl | ||
| ) |
References FLA_Scalr_external().
Referenced by FLASH_Queue_exec_task(), and FLASH_Queue_exec_task_gpu().
{
return FLA_Scalr_external( uplo, alpha, A );
}
| FLA_Error FLA_Scalr_u_task | ( | FLA_Obj | alpha, |
| FLA_Obj | A, | ||
| fla_scalr_t * | cntl | ||
| ) |
References FLA_Scalr_external().
Referenced by FLA_Scalr_u().
{
return FLA_Scalr_external( FLA_UPPER_TRIANGULAR, alpha, A );
}
References FLA_Swap_external().
{
return FLA_Swap_external( A, B );
}
| FLA_Error FLA_Swap_check | ( | FLA_Obj | A, |
| FLA_Obj | B | ||
| ) |
References FLA_Check_conformal_dims(), FLA_Check_equal_vector_dims(), FLA_Check_floating_object(), FLA_Check_identical_object_datatype(), FLA_Check_nonconstant_object(), and FLA_Obj_is_vector().
Referenced by FLA_Swap_external().
{
FLA_Error e_val;
e_val = FLA_Check_floating_object( A );
FLA_Check_error_code( e_val );
e_val = FLA_Check_nonconstant_object( A );
FLA_Check_error_code( e_val );
e_val = FLA_Check_identical_object_datatype( A, B );
FLA_Check_error_code( e_val );
if ( FLA_Obj_is_vector( A ) && FLA_Obj_is_vector( B ) )
{
e_val = FLA_Check_equal_vector_dims( A, B );
FLA_Check_error_code( e_val );
}
else
{
e_val = FLA_Check_conformal_dims( FLA_NO_TRANSPOSE, A, B );
FLA_Check_error_code( e_val );
}
return FLA_SUCCESS;
}
| FLA_Error FLA_Swap_external | ( | FLA_Obj | A, |
| FLA_Obj | B | ||
| ) |
References bl1_cswapmt(), bl1_dswapmt(), bl1_sswapmt(), bl1_zswapmt(), FLA_Check_error_level(), FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_has_zero_dim(), FLA_Obj_is_conformal_to(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Obj_width(), FLA_Param_map_flame_to_blis_trans(), and FLA_Swap_check().
Referenced by FLA_Swap().
{
FLA_Datatype datatype;
int m_B, n_B;
int rs_A, cs_A;
int rs_B, cs_B;
trans1_t blis_trans;
if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
FLA_Swap_check( A, B );
if ( FLA_Obj_has_zero_dim( A ) ) return FLA_SUCCESS;
datatype = FLA_Obj_datatype( A );
rs_A = FLA_Obj_row_stride( A );
cs_A = FLA_Obj_col_stride( A );
m_B = FLA_Obj_length( B );
n_B = FLA_Obj_width( B );
rs_B = FLA_Obj_row_stride( B );
cs_B = FLA_Obj_col_stride( B );
if ( FLA_Obj_is_conformal_to( FLA_NO_TRANSPOSE, A, B ) )
FLA_Param_map_flame_to_blis_trans( FLA_NO_TRANSPOSE, &blis_trans );
else // if ( FLA_Obj_is_conformal_to( FLA_TRANSPOSE, A, B ) )
FLA_Param_map_flame_to_blis_trans( FLA_TRANSPOSE, &blis_trans );
switch ( datatype ){
case FLA_FLOAT:
{
float* buff_A = ( float * ) FLA_FLOAT_PTR( A );
float* buff_B = ( float * ) FLA_FLOAT_PTR( B );
bl1_sswapmt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
break;
}
case FLA_DOUBLE:
{
double* buff_A = ( double * ) FLA_DOUBLE_PTR( A );
double* buff_B = ( double * ) FLA_DOUBLE_PTR( B );
bl1_dswapmt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
break;
}
case FLA_COMPLEX:
{
scomplex* buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
scomplex* buff_B = ( scomplex * ) FLA_COMPLEX_PTR( B );
bl1_cswapmt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
break;
}
case FLA_DOUBLE_COMPLEX:
{
dcomplex* buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
dcomplex* buff_B = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( B );
bl1_zswapmt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
break;
}
}
return FLA_SUCCESS;
}
References FLA_Swapt_external().
{
return FLA_Swapt_external( trans, A, B );
}
| FLA_Error FLA_Swapt_check | ( | FLA_Trans | trans, |
| FLA_Obj | A, | ||
| FLA_Obj | B | ||
| ) |
References FLA_Check_conformal_dims(), FLA_Check_floating_object(), FLA_Check_identical_object_datatype(), FLA_Check_nonconstant_object(), and FLA_Check_valid_trans().
Referenced by FLA_Swapt_external().
{
FLA_Error e_val;
e_val = FLA_Check_valid_trans( trans );
FLA_Check_error_code( e_val );
e_val = FLA_Check_floating_object( A );
FLA_Check_error_code( e_val );
e_val = FLA_Check_nonconstant_object( A );
FLA_Check_error_code( e_val );
e_val = FLA_Check_identical_object_datatype( A, B );
FLA_Check_error_code( e_val );
e_val = FLA_Check_conformal_dims( trans, A, B );
FLA_Check_error_code( e_val );
return FLA_SUCCESS;
}
| FLA_Error FLA_Swapt_external | ( | FLA_Trans | trans, |
| FLA_Obj | A, | ||
| FLA_Obj | B | ||
| ) |
References bl1_cswapmt(), bl1_dswapmt(), bl1_sswapmt(), bl1_zswapmt(), FLA_Check_error_level(), FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_has_zero_dim(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Obj_width(), FLA_Param_map_flame_to_blis_trans(), and FLA_Swapt_check().
Referenced by FLA_Swap_t_blk_var1(), FLA_Swap_t_blk_var2(), FLA_Swapt(), FLA_Transpose_unb_var1(), and FLA_Transpose_unb_var2().
{
FLA_Datatype datatype;
int m_B, n_B;
int rs_A, cs_A;
int rs_B, cs_B;
trans1_t blis_trans;
if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
FLA_Swapt_check( trans, A, B );
if ( FLA_Obj_has_zero_dim( A ) ) return FLA_SUCCESS;
datatype = FLA_Obj_datatype( A );
rs_A = FLA_Obj_row_stride( A );
cs_A = FLA_Obj_col_stride( A );
m_B = FLA_Obj_length( B );
n_B = FLA_Obj_width( B );
rs_B = FLA_Obj_row_stride( B );
cs_B = FLA_Obj_col_stride( B );
FLA_Param_map_flame_to_blis_trans( trans, &blis_trans );
switch ( datatype ){
case FLA_FLOAT:
{
float* buff_A = ( float * ) FLA_FLOAT_PTR( A );
float* buff_B = ( float * ) FLA_FLOAT_PTR( B );
bl1_sswapmt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
break;
}
case FLA_DOUBLE:
{
double* buff_A = ( double * ) FLA_DOUBLE_PTR( A );
double* buff_B = ( double * ) FLA_DOUBLE_PTR( B );
bl1_dswapmt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
break;
}
case FLA_COMPLEX:
{
scomplex* buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
scomplex* buff_B = ( scomplex * ) FLA_COMPLEX_PTR( B );
bl1_cswapmt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
break;
}
case FLA_DOUBLE_COMPLEX:
{
dcomplex* buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
dcomplex* buff_B = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( B );
bl1_zswapmt( blis_trans,
m_B,
n_B,
buff_A, rs_A, cs_A,
buff_B, rs_B, cs_B );
break;
}
}
return FLA_SUCCESS;
}
1.7.6.1