| 
    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 ];
}
 1.7.6.1