|
libflame
revision_anchor
|
Functions | |
| FLA_Error | FLA_Bsvd_find_max (FLA_Obj d, FLA_Obj e, FLA_Obj smax, FLA_Obj smin) |
| FLA_Error | FLA_Bsvd_find_max_min_ops (int m_A, float *buff_d, int inc_d, float *buff_e, int inc_e, float *smax, float *smin) |
| FLA_Error | FLA_Bsvd_find_max_min_opd (int m_A, double *buff_d, int inc_d, double *buff_e, int inc_e, double *smax, double *smin) |
References FLA_Bsvd_find_max_min_opd(), FLA_Bsvd_find_max_min_ops(), FLA_Obj_datatype(), FLA_Obj_vector_dim(), and FLA_Obj_vector_inc().
{
FLA_Datatype datatype;
int m_A;
int inc_d;
int inc_e;
datatype = FLA_Obj_datatype( d );
m_A = FLA_Obj_vector_dim( d );
inc_d = FLA_Obj_vector_inc( d );
inc_e = FLA_Obj_vector_inc( e );
switch ( datatype )
{
case FLA_FLOAT:
{
float* buff_d = FLA_FLOAT_PTR( d );
float* buff_e = FLA_FLOAT_PTR( e );
float* buff_smax = FLA_FLOAT_PTR( smax );
float* buff_smin = FLA_FLOAT_PTR( smin );
FLA_Bsvd_find_max_min_ops( m_A,
buff_d, inc_d,
buff_e, inc_e,
buff_smax,
buff_smin );
break;
}
case FLA_DOUBLE:
{
double* buff_d = FLA_DOUBLE_PTR( d );
double* buff_e = FLA_DOUBLE_PTR( e );
double* buff_smax = FLA_DOUBLE_PTR( smax );
double* buff_smin = FLA_DOUBLE_PTR( smin );
FLA_Bsvd_find_max_min_opd( m_A,
buff_d, inc_d,
buff_e, inc_e,
buff_smax,
buff_smin );
break;
}
}
return FLA_SUCCESS;
}
| FLA_Error FLA_Bsvd_find_max_min_opd | ( | int | m_A, |
| double * | buff_d, | ||
| int | inc_d, | ||
| double * | buff_e, | ||
| int | inc_e, | ||
| double * | smax, | ||
| double * | smin | ||
| ) |
Referenced by FLA_Bsvd_find_max(), and FLA_Bsvd_sinval_v_opd_var1().
{
double smax_cand;
double smin_cand;
int i;
smax_cand = fabs( buff_d[ (m_A-1)*inc_d ] );
smin_cand = smax_cand;
for ( i = 0; i < m_A - 1; ++i )
{
double abs_di = fabs( buff_d[ i*inc_d ] );
double abs_ei = fabs( buff_e[ i*inc_e ] );
// Track the minimum element.
smin_cand = min( smin_cand, abs_di );
// Track the maximum element.
smax_cand = max( smax_cand, abs_di );
smax_cand = max( smax_cand, abs_ei );
}
// Save the results of the search.
*smax = smax_cand;
*smin = smin_cand;
return FLA_SUCCESS;
}
| FLA_Error FLA_Bsvd_find_max_min_ops | ( | int | m_A, |
| float * | buff_d, | ||
| int | inc_d, | ||
| float * | buff_e, | ||
| int | inc_e, | ||
| float * | smax, | ||
| float * | smin | ||
| ) |
Referenced by FLA_Bsvd_find_max().
{
FLA_Check_error_code( FLA_NOT_YET_IMPLEMENTED );
return FLA_SUCCESS;
}
1.7.6.1