libflame
12600
|
Functions | |
FLA_Error | FLA_Mach_params (FLA_Machval machval, FLA_Obj val) |
float | FLA_Mach_params_ops (FLA_Machval machval) |
double | FLA_Mach_params_opd (FLA_Machval machval) |
FLA_Error FLA_Mach_params | ( | FLA_Machval | machval, |
FLA_Obj | val | ||
) |
References FLA_Check_error_level(), FLA_Mach_params_check(), FLA_Mach_params_opd(), FLA_Mach_params_ops(), and FLA_Obj_datatype().
Referenced by FLA_Hevd_compute_scaling(), FLA_Hevdr_external(), and FLA_Svd_compute_scaling().
{ FLA_Datatype datatype; datatype = FLA_Obj_datatype( val ); if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING ) FLA_Mach_params_check( machval, val ); switch ( datatype ) { case FLA_FLOAT: { float* val_p = ( float* ) FLA_FLOAT_PTR( val ); *val_p = FLA_Mach_params_ops( machval ); break; } case FLA_DOUBLE: { double* val_p = ( double* ) FLA_DOUBLE_PTR( val ); *val_p = FLA_Mach_params_opd( machval ); break; } } return FLA_SUCCESS; }
double FLA_Mach_params_opd | ( | FLA_Machval | machval | ) |
References fla_dlamch(), and FLA_Param_map_flame_to_netlib_machval().
Referenced by FLA_Bsvd_compute_shift_opd(), FLA_Bsvd_compute_tol_thresh_opd(), FLA_Bsvd_ext_opd_var1(), FLA_Bsvd_ext_opz_var1(), FLA_Bsvd_v_opd_var1(), FLA_Bsvd_v_opd_var2(), FLA_Bsvd_v_opz_var1(), FLA_Bsvd_v_opz_var2(), FLA_Givens2_opd(), FLA_Mach_params(), FLA_Svv_2x2_opd(), FLA_Tevd_compute_scaling_opd(), FLA_Tevd_eigval_n_opd_var1(), FLA_Tevd_eigval_v_opd_var1(), FLA_Tevd_eigval_v_opd_var3(), FLA_Tevd_find_submatrix_opd(), FLA_Tevd_francis_n_opd_var1(), FLA_Tevd_francis_v_opd_var1(), and FLA_Tevd_n_opz_var1().
{ static int first_time = TRUE; static double vals[FLA_MACH_N_VALS]; if ( first_time ) { char lapack_machval; int i; for( i = 0; i < FLA_MACH_N_VALS - 1; ++i ) { FLA_Param_map_flame_to_netlib_machval( FLA_MACH_START + i, &lapack_machval ); //printf( "querying %d %c\n", FLA_MACH_START + i, lapack_machval ); vals[i] = fla_dlamch( &lapack_machval, 1 ); //printf( "got back %34.29e\n", vals[i] ); } // Store epsilon^2 in the last element. vals[i] = vals[0] * vals[0]; first_time = FALSE; } return vals[ machval - FLA_MACH_START ]; }
float FLA_Mach_params_ops | ( | FLA_Machval | machval | ) |
References FLA_Param_map_flame_to_netlib_machval(), and fla_slamch().
Referenced by FLA_Bsvd_compute_shift_ops(), FLA_Bsvd_compute_tol_thresh_ops(), FLA_Bsvd_ext_opc_var1(), FLA_Bsvd_ext_ops_var1(), FLA_Bsvd_v_opc_var1(), FLA_Bsvd_v_ops_var1(), FLA_Mach_params(), FLA_Svv_2x2_ops(), and FLA_Tevd_compute_scaling_ops().
{ static int first_time = TRUE; static float vals[FLA_MACH_N_VALS]; if ( first_time ) { char lapack_machval; int i; for( i = 0; i < FLA_MACH_N_VALS - 1; ++i ) { FLA_Param_map_flame_to_netlib_machval( FLA_MACH_START + i, &lapack_machval ); //printf( "querying %d %c\n", FLA_MACH_START + i, lapack_machval ); vals[i] = fla_slamch( &lapack_machval, 1 ); //printf( "got back %34.29e\n", vals[i] ); } // Store epsilon^2 in the last element. vals[i] = vals[0] * vals[0]; first_time = FALSE; } return vals[ machval - FLA_MACH_START ]; }