|
libflame revision_anchor
|
Functions | |
| FLA_Error | FLA_Obj_set_to_scalar (FLA_Obj alpha, FLA_Obj A) |
| void | FLA_Obj_extract_real_scalar (FLA_Obj alpha, double *alpha_value) |
| void | FLA_Obj_extract_complex_scalar (FLA_Obj alpha, dcomplex *alpha_value) |
| void | FLA_Obj_extract_real_part (FLA_Obj alpha, FLA_Obj beta) |
| void | FLA_Obj_extract_imag_part (FLA_Obj alpha, FLA_Obj beta) |
| void | FLA_Obj_set_real_part (FLA_Obj alpha, FLA_Obj beta) |
| void | FLA_Obj_set_imag_part (FLA_Obj alpha, FLA_Obj beta) |
| FLA_Error | FLA_Obj_set_diagonal_to_scalar (FLA_Obj alpha, FLA_Obj A) |
| FLA_Error | FLA_Obj_set_to_identity (FLA_Obj A) |
| FLA_Error | FLA_Obj_add_to_diagonal (void *diag_value, FLA_Obj A) |
| FLA_Error | FLA_Obj_shift_diagonal (FLA_Conj conj, FLA_Obj sigma, FLA_Obj A) |
| FLA_Error | FLA_Obj_scale_diagonal (FLA_Conj conj, FLA_Obj alpha, FLA_Obj A) |
| FLA_Error | FLA_Obj_fshow (FILE *file, char *s1, FLA_Obj A, char *format, char *s2) |
| FLA_Error | FLA_Obj_show (char *s1, FLA_Obj A, char *format, char *s2) |
References FLA_Check_error_level(), FLA_Obj_add_to_diagonal_check(), FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_min_dim(), FLA_Obj_row_stride(), dcomplex::imag, scomplex::imag, dcomplex::real, and scomplex::real.
{
FLA_Datatype datatype;
dim_t j, min_m_n;
dim_t rs, cs;
if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
FLA_Obj_add_to_diagonal_check( diag_value, A );
datatype = FLA_Obj_datatype( A );
min_m_n = FLA_Obj_min_dim( A );
rs = FLA_Obj_row_stride( A );
cs = FLA_Obj_col_stride( A );
switch ( datatype ){
case FLA_FLOAT:
{
float *buff_A = ( float * ) FLA_FLOAT_PTR( A );
float *value_ptr = ( float * ) diag_value;
for ( j = 0; j < min_m_n; j++ )
buff_A[ j*cs + j*rs ] += *value_ptr;
break;
}
case FLA_DOUBLE:
{
double *buff_A = ( double * ) FLA_DOUBLE_PTR( A );
double *value_ptr = ( double * ) diag_value;
for ( j = 0; j < min_m_n; j++ )
buff_A[ j*cs + j*rs ] += *value_ptr;
break;
}
case FLA_COMPLEX:
{
scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
scomplex *value_ptr = ( scomplex * ) diag_value;
for ( j = 0; j < min_m_n; j++ )
{
buff_A[ j*cs + j*rs ].real += value_ptr->real;
buff_A[ j*cs + j*rs ].imag += value_ptr->imag;
}
break;
}
case FLA_DOUBLE_COMPLEX:
{
dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
dcomplex *value_ptr = ( dcomplex * ) diag_value;
for ( j = 0; j < min_m_n; j++ )
{
buff_A[ j*cs + j*rs ].real += value_ptr->real;
buff_A[ j*cs + j*rs ].imag += value_ptr->imag;
}
break;
}
}
return FLA_SUCCESS;
}
References FLA_Check_error_level(), FLA_Obj_extract_complex_scalar_check(), FLA_Obj_is_single_precision(), scomplex::imag, dcomplex::imag, scomplex::real, and dcomplex::real.
{
if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
FLA_Obj_extract_complex_scalar_check( alpha, alpha_value );
if ( FLA_Obj_is_single_precision( alpha ) )
{
scomplex temp = *FLA_COMPLEX_PTR( alpha );
alpha_value->real = ( double ) temp.real;
alpha_value->imag = ( double ) temp.imag;
}
else
*alpha_value = *FLA_DOUBLE_COMPLEX_PTR( alpha );
}
References FLA_Check_error_level(), FLA_Obj_datatype(), FLA_Obj_extract_imag_part_check(), FLA_Obj_is_real(), FLA_Obj_set_to_scalar(), FLA_ZERO, dcomplex::imag, and scomplex::imag.
{
if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
FLA_Obj_extract_imag_part_check( alpha, beta );
if ( FLA_Obj_is_real( alpha ) )
FLA_Obj_set_to_scalar( FLA_ZERO, beta );
else // if ( FLA_Obj_is_complex( alpha ) )
{
if ( FLA_Obj_datatype( alpha ) == FLA_COMPLEX )
{
scomplex* buff_alpha = FLA_COMPLEX_PTR( alpha );
float* buff_beta = FLA_FLOAT_PTR( beta );
*buff_beta = buff_alpha->imag;
}
else if ( FLA_Obj_datatype( alpha ) == FLA_DOUBLE_COMPLEX )
{
dcomplex* buff_alpha = FLA_DOUBLE_COMPLEX_PTR( alpha );
double* buff_beta = FLA_DOUBLE_PTR( beta );
*buff_beta = buff_alpha->imag;
}
}
}
References FLA_Check_error_level(), FLA_Copy(), FLA_Obj_datatype(), FLA_Obj_extract_real_part_check(), FLA_Obj_is_real(), dcomplex::real, and scomplex::real.
{
if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
FLA_Obj_extract_real_part_check( alpha, beta );
if ( FLA_Obj_is_real( alpha ) )
FLA_Copy( alpha, beta );
else // if ( FLA_Obj_is_complex( alpha ) )
{
if ( FLA_Obj_datatype( alpha ) == FLA_COMPLEX )
{
scomplex* buff_alpha = FLA_COMPLEX_PTR( alpha );
float* buff_beta = FLA_FLOAT_PTR( beta );
*buff_beta = buff_alpha->real;
}
else if ( FLA_Obj_datatype( alpha ) == FLA_DOUBLE_COMPLEX )
{
dcomplex* buff_alpha = FLA_DOUBLE_COMPLEX_PTR( alpha );
double* buff_beta = FLA_DOUBLE_PTR( beta );
*buff_beta = buff_alpha->real;
}
}
}
| void FLA_Obj_extract_real_scalar | ( | FLA_Obj | alpha, |
| double * | alpha_value | ||
| ) |
References FLA_Check_error_level(), FLA_Obj_extract_real_scalar_check(), and FLA_Obj_is_single_precision().
{
if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
FLA_Obj_extract_real_scalar_check( alpha, alpha_value );
if ( FLA_Obj_is_single_precision( alpha ) )
*alpha_value = ( double ) *FLA_FLOAT_PTR( alpha );
else
*alpha_value = *FLA_DOUBLE_PTR( alpha );
}
References FLA_Check_error_level(), FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_fshow_check(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Obj_width(), scomplex::imag, dcomplex::real, and scomplex::real.
Referenced by FLA_Obj_show().
{
FLA_Datatype datatype;
dim_t i, j, m, n;
dim_t rs, cs;
if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
FLA_Obj_fshow_check( file, s1, A, format, s2 );
datatype = FLA_Obj_datatype( A );
m = FLA_Obj_length( A );
n = FLA_Obj_width( A );
rs = FLA_Obj_row_stride( A );
cs = FLA_Obj_col_stride( A );
fprintf( file, "%s\n", s1 );
switch ( datatype ){
case FLA_CONSTANT:
{
int* consti = FLA_INT_PTR( A );
float* consts = FLA_FLOAT_PTR( A );
double* constd = FLA_DOUBLE_PTR( A );
scomplex* constc = FLA_COMPLEX_PTR( A );
dcomplex* constz = FLA_DOUBLE_COMPLEX_PTR( A );
fprintf( file, "int = %d\n", *consti );
fprintf( file, "float = %e\n", *consts );
fprintf( file, "double = %e\n", *constd );
fprintf( file, "scomplex = %e + %e\n", constc->real, constc->imag );
fprintf( file, "dcomplex = %e + %e\n", constz->real, constc->imag );
break;
}
case FLA_FLOAT:
{
float *buffer = ( float * ) FLA_FLOAT_PTR( A );
for ( i = 0; i < m; i++ )
{
for ( j = 0; j < n; j++ )
{
fprintf( file, format, buffer[ j*cs + i*rs ] );
fprintf( file, " " );
}
fprintf( file, "\n" );
}
break;
}
case FLA_DOUBLE:
{
double *buffer = ( double * ) FLA_DOUBLE_PTR( A );
for ( i = 0; i < m; i++ )
{
for ( j = 0; j < n; j++ )
{
fprintf( file, format, buffer[ j*cs + i*rs ] );
fprintf( file, " " );
}
fprintf( file, "\n" );
}
break;
}
case FLA_COMPLEX:
{
scomplex *buffer = ( scomplex * ) FLA_COMPLEX_PTR( A );
for ( i = 0; i < m; i++ )
{
for ( j = 0; j < n; j++ )
{
fprintf( file, format, buffer[ j*cs + i*rs ].real, buffer[ j*cs + i*rs ].imag );
fprintf( file, " " );
}
fprintf( file, "\n" );
}
break;
}
case FLA_DOUBLE_COMPLEX:
{
dcomplex *buffer = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
for ( i = 0; i < m; i++ )
{
for ( j = 0; j < n; j++ )
{
fprintf( file, format, buffer[ j*cs + i*rs ].real, buffer[ j*cs + i*rs ].imag );
fprintf( file, " " );
}
fprintf( file, "\n" );
}
break;
}
case FLA_INT:
{
int *buffer = ( int * ) FLA_INT_PTR( A );
for ( i = 0; i < m; i++ )
{
for ( j = 0; j < n; j++ )
{
fprintf( file, format, buffer[ j*cs + i*rs ] );
fprintf( file, " " );
}
fprintf( file, "\n" );
}
break;
}
}
fprintf( file, "%s\n", s2 );
return FLA_SUCCESS;
}
References bli_cscalediag(), bli_csscalediag(), bli_dscalediag(), bli_sscalediag(), bli_zdscalediag(), bli_zscalediag(), FLA_Check_error_level(), FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Obj_scale_diagonal_check(), FLA_Obj_width(), and FLA_Param_map_flame_to_blis_conj().
Referenced by FLA_UDdate_UT_unb_var1().
{
FLA_Datatype datatype_A;
FLA_Datatype datatype_alpha;
dim_t m_A, n_A;
dim_t rs_A, cs_A;
char blis_conj;
if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
FLA_Obj_scale_diagonal_check( conj, alpha, A );
datatype_A = FLA_Obj_datatype( A );
datatype_alpha = FLA_Obj_datatype( alpha );
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 );
FLA_Param_map_flame_to_blis_conj( conj, &blis_conj );
switch( datatype_A ){
case FLA_FLOAT:
{
float *buff_A = ( float * ) FLA_FLOAT_PTR( A );
float *buff_alpha = ( float * ) FLA_FLOAT_PTR( alpha );
bli_sscalediag( blis_conj,
0,
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 );
bli_dscalediag( blis_conj,
0,
m_A,
n_A,
buff_alpha,
buff_A, rs_A, cs_A );
break;
}
case FLA_COMPLEX:
{
if ( datatype_alpha == FLA_COMPLEX )
{
scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
scomplex *buff_alpha = ( scomplex * ) FLA_COMPLEX_PTR( alpha );
bli_cscalediag( blis_conj,
0,
m_A,
n_A,
buff_alpha,
buff_A, rs_A, cs_A );
}
else
{
scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
float *buff_alpha = ( float * ) FLA_FLOAT_PTR( alpha );
bli_csscalediag( blis_conj,
0,
m_A,
n_A,
buff_alpha,
buff_A, rs_A, cs_A );
}
break;
}
case FLA_DOUBLE_COMPLEX:
{
if ( datatype_alpha == FLA_DOUBLE_COMPLEX )
{
dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
dcomplex *buff_alpha = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( alpha );
bli_zscalediag( blis_conj,
0,
m_A,
n_A,
buff_alpha,
buff_A, rs_A, cs_A );
}
else
{
dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
double *buff_alpha = ( double * ) FLA_DOUBLE_PTR( alpha );
bli_zdscalediag( blis_conj,
0,
m_A,
n_A,
buff_alpha,
buff_A, rs_A, cs_A );
}
break;
}
}
return FLA_SUCCESS;
}
References bli_csetdiag(), bli_dsetdiag(), bli_ssetdiag(), bli_zsetdiag(), FLA_Check_error_level(), FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Obj_set_diagonal_to_scalar_check(), and FLA_Obj_width().
Referenced by FLA_Obj_set_to_identity().
{
FLA_Datatype datatype;
int m_A, n_A;
int rs_A, cs_A;
if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
FLA_Obj_set_diagonal_to_scalar_check( alpha, A );
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 );
switch ( datatype ){
case FLA_INT:
{
int *buff_A = ( int * ) FLA_INT_PTR( A );
int *buff_alpha = ( int * ) FLA_INT_PTR( alpha );
int i;
for ( i = 0; i < min( m_A, n_A ); i++ )
buff_A[ i*cs_A + i*rs_A ] = *buff_alpha;
break;
}
case FLA_FLOAT:
{
float *buff_A = ( float * ) FLA_FLOAT_PTR( A );
float *buff_alpha = ( float * ) FLA_FLOAT_PTR( alpha );
bli_ssetdiag( 0,
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 );
bli_dsetdiag( 0,
m_A,
n_A,
buff_alpha,
buff_A, rs_A, cs_A );
break;
}
case FLA_COMPLEX:
{
scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
scomplex *buff_alpha = ( scomplex * ) FLA_COMPLEX_PTR( alpha );
bli_csetdiag( 0,
m_A,
n_A,
buff_alpha,
buff_A, rs_A, cs_A );
break;
}
case FLA_DOUBLE_COMPLEX:
{
dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
dcomplex *buff_alpha = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( alpha );
bli_zsetdiag( 0,
m_A,
n_A,
buff_alpha,
buff_A, rs_A, cs_A );
break;
}
}
return FLA_SUCCESS;
}
References FLA_Check_error_level(), FLA_Obj_datatype(), FLA_Obj_is_complex(), FLA_Obj_set_imag_part_check(), dcomplex::imag, and scomplex::imag.
Referenced by FLA_Bidiag_UT_l_realify_unb(), and FLA_Bidiag_UT_u_realify_unb().
{
if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
FLA_Obj_set_imag_part_check( alpha, beta );
if ( FLA_Obj_is_complex( beta ) )
{
if ( FLA_Obj_datatype( beta ) == FLA_COMPLEX )
{
float* buff_alpha = FLA_FLOAT_PTR( alpha );
scomplex* buff_beta = FLA_COMPLEX_PTR( beta );
buff_beta->imag = *buff_alpha;
}
else if ( FLA_Obj_datatype( beta ) == FLA_DOUBLE_COMPLEX )
{
double* buff_alpha = FLA_DOUBLE_PTR( alpha );
dcomplex* buff_beta = FLA_DOUBLE_COMPLEX_PTR( beta );
buff_beta->imag = *buff_alpha;
}
}
}
References FLA_Check_error_level(), FLA_Copy(), FLA_Obj_datatype(), FLA_Obj_is_complex(), FLA_Obj_set_real_part_check(), dcomplex::real, and scomplex::real.
{
if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
FLA_Obj_set_real_part_check( alpha, beta );
if ( FLA_Obj_is_complex( beta ) )
{
if ( FLA_Obj_datatype( beta ) == FLA_COMPLEX )
{
float* buff_alpha = FLA_FLOAT_PTR( alpha );
scomplex* buff_beta = FLA_COMPLEX_PTR( beta );
buff_beta->real = *buff_alpha;
}
else if ( FLA_Obj_datatype( beta ) == FLA_DOUBLE_COMPLEX )
{
double* buff_alpha = FLA_DOUBLE_PTR( alpha );
dcomplex* buff_beta = FLA_DOUBLE_COMPLEX_PTR( beta );
buff_beta->real = *buff_alpha;
}
}
else
{
FLA_Copy( alpha, beta );
}
}
References FLA_Check_error_level(), FLA_Obj_set_diagonal_to_scalar(), FLA_Obj_set_to_identity_check(), FLA_Obj_set_to_scalar(), FLA_ONE, and FLA_ZERO.
Referenced by FLA_Form_perm_matrix(), and FLA_UDdate_UT_unb_var1().
{
if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
FLA_Obj_set_to_identity_check( A );
FLA_Obj_set_to_scalar( FLA_ZERO, A );
FLA_Obj_set_diagonal_to_scalar( FLA_ONE, A );
return FLA_SUCCESS;
}
References FLA_Check_error_level(), FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Obj_set_to_scalar_check(), and FLA_Obj_width().
Referenced by FLA_Asum_external(), FLA_Bidiag_UT_l_realify_unb(), 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_var4(), FLA_Bidiag_UT_u_step_unb_var5(), FLA_Hess_UT_blk_var1(), FLA_Hess_UT_blk_var2(), FLA_Hess_UT_blk_var3(), FLA_Hess_UT_blk_var4(), 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_LQ_UT_solve(), FLA_Nrm2_external(), FLA_Obj_create_buffer_task(), FLA_Obj_extract_imag_part(), FLA_Obj_set_to_identity(), FLA_Scal_external(), FLA_Scalc_external(), FLA_Sylv_unb_external(), FLA_Tridiag_UT_l_blk_var3(), 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(), FLA_Tridiag_UT_u_realify_unb(), FLASH_Norm1(), and FLASH_Obj_set_to_scalar().
{
FLA_Datatype datatype;
dim_t m, n;
dim_t rs, cs;
dim_t i, j;
if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
FLA_Obj_set_to_scalar_check( alpha, A );
datatype = FLA_Obj_datatype( A );
m = FLA_Obj_length( A );
n = FLA_Obj_width( A );
rs = FLA_Obj_row_stride( A );
cs = FLA_Obj_col_stride( A );
switch ( datatype ){
case FLA_INT:
{
int *buff_A = ( int * ) FLA_INT_PTR( A );
int *buff_alpha = ( int * ) FLA_INT_PTR( alpha );
for ( j = 0; j < n; j++ )
for ( i = 0; i < m; i++ )
buff_A[ j*cs + i*rs ] = *buff_alpha;
break;
}
case FLA_FLOAT:
{
float *buff_A = ( float * ) FLA_FLOAT_PTR( A );
float *buff_alpha = ( float * ) FLA_FLOAT_PTR( alpha );
for ( j = 0; j < n; j++ )
for ( i = 0; i < m; i++ )
buff_A[ j*cs + i*rs ] = *buff_alpha;
break;
}
case FLA_DOUBLE:
{
double *buff_A = ( double * ) FLA_DOUBLE_PTR( A );
double *buff_alpha = ( double * ) FLA_DOUBLE_PTR( alpha );
for ( j = 0; j < n; j++ )
for ( i = 0; i < m; i++ )
buff_A[ j*cs + i*rs ] = *buff_alpha;
break;
}
case FLA_COMPLEX:
{
scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
scomplex *buff_alpha = ( scomplex * ) FLA_COMPLEX_PTR( alpha );
for ( j = 0; j < n; j++ )
for ( i = 0; i < m; i++ )
buff_A[ j*cs + i*rs ] = *buff_alpha;
break;
}
case FLA_DOUBLE_COMPLEX:
{
dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
dcomplex *buff_alpha = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( alpha );
for ( j = 0; j < n; j++ )
for ( i = 0; i < m; i++ )
buff_A[ j*cs + i*rs ] = *buff_alpha;
break;
}
}
return FLA_SUCCESS;
}
References bli_cshiftdiag(), bli_csshiftdiag(), bli_dshiftdiag(), bli_sshiftdiag(), bli_zdshiftdiag(), bli_zshiftdiag(), FLA_Check_error_level(), FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Obj_shift_diagonal_check(), FLA_Obj_width(), and FLA_Param_map_flame_to_blis_conj().
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(), FLA_Lyap_n_unb_var4(), and FLASH_Obj_shift_diagonal().
{
FLA_Datatype datatype_A;
FLA_Datatype datatype_sigma;
dim_t m_A, n_A;
dim_t rs_A, cs_A;
char blis_conj;
if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
FLA_Obj_shift_diagonal_check( conj, sigma, A );
datatype_A = FLA_Obj_datatype( A );
datatype_sigma = FLA_Obj_datatype( sigma );
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 );
FLA_Param_map_flame_to_blis_conj( conj, &blis_conj );
switch( datatype_A ){
case FLA_FLOAT:
{
float *buff_A = ( float * ) FLA_FLOAT_PTR( A );
float *buff_sigma = ( float * ) FLA_FLOAT_PTR( sigma );
bli_sshiftdiag( blis_conj,
0,
m_A,
n_A,
buff_sigma,
buff_A, rs_A, cs_A );
break;
}
case FLA_DOUBLE:
{
double *buff_A = ( double * ) FLA_DOUBLE_PTR( A );
double *buff_sigma = ( double * ) FLA_DOUBLE_PTR( sigma );
bli_dshiftdiag( blis_conj,
0,
m_A,
n_A,
buff_sigma,
buff_A, rs_A, cs_A );
break;
}
case FLA_COMPLEX:
{
if ( datatype_sigma == FLA_COMPLEX )
{
scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
scomplex *buff_sigma = ( scomplex * ) FLA_COMPLEX_PTR( sigma );
bli_cshiftdiag( blis_conj,
0,
m_A,
n_A,
buff_sigma,
buff_A, rs_A, cs_A );
}
else
{
scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
float *buff_sigma = ( float * ) FLA_FLOAT_PTR( sigma );
bli_csshiftdiag( blis_conj,
0,
m_A,
n_A,
buff_sigma,
buff_A, rs_A, cs_A );
}
break;
}
case FLA_DOUBLE_COMPLEX:
{
if ( datatype_sigma == FLA_DOUBLE_COMPLEX )
{
dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
dcomplex *buff_sigma = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( sigma );
bli_zshiftdiag( blis_conj,
0,
m_A,
n_A,
buff_sigma,
buff_A, rs_A, cs_A );
}
else
{
dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
double *buff_sigma = ( double * ) FLA_DOUBLE_PTR( sigma );
bli_zdshiftdiag( blis_conj,
0,
m_A,
n_A,
buff_sigma,
buff_A, rs_A, cs_A );
}
break;
}
}
return FLA_SUCCESS;
}
References FLA_Check_error_level(), FLA_Obj_fshow(), and FLA_Obj_show_check().
Referenced by FLASH_Obj_show().
{
if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
FLA_Obj_show_check( s1, A, format, s2 );
return FLA_Obj_fshow( stdout, s1, A, format, s2 );
}
1.7.4