libflame  revision_anchor
Functions
FLA_Mach_params.c File Reference

(r)

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)
 

Function Documentation

◆ FLA_Mach_params()

FLA_Error FLA_Mach_params ( FLA_Machval  machval,
FLA_Obj  val 
)
14 {
15  FLA_Datatype datatype;
16 
17  datatype = FLA_Obj_datatype( val );
18 
19  if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
20  FLA_Mach_params_check( machval, val );
21 
22  switch ( datatype )
23  {
24  case FLA_FLOAT:
25  {
26  float* val_p = ( float* ) FLA_FLOAT_PTR( val );
27 
28  *val_p = FLA_Mach_params_ops( machval );
29 
30  break;
31  }
32 
33  case FLA_DOUBLE:
34  {
35  double* val_p = ( double* ) FLA_DOUBLE_PTR( val );
36 
37  *val_p = FLA_Mach_params_opd( machval );
38 
39  break;
40  }
41  }
42 
43  return FLA_SUCCESS;
44 }
double FLA_Mach_params_opd(FLA_Machval machval)
Definition: FLA_Mach_params.c:74
float FLA_Mach_params_ops(FLA_Machval machval)
Definition: FLA_Mach_params.c:47
FLA_Error FLA_Mach_params_check(FLA_Machval machval, FLA_Obj val)
Definition: FLA_Mach_params_check.c:13
unsigned int FLA_Check_error_level(void)
Definition: FLA_Check.c:18
FLA_Datatype FLA_Obj_datatype(FLA_Obj obj)
Definition: FLA_Query.c:13
int FLA_Datatype
Definition: FLA_type_defs.h:49

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_Mach_params_opd()

double FLA_Mach_params_opd ( FLA_Machval  machval)
75 {
76  static int first_time = TRUE;
77  static double vals[FLA_MACH_N_VALS];
78 
79  if ( first_time )
80  {
81  char lapack_machval;
82  int i;
83 
84  for( i = 0; i < FLA_MACH_N_VALS - 1; ++i )
85  {
86  FLA_Param_map_flame_to_netlib_machval( FLA_MACH_START + i, &lapack_machval );
87 //printf( "querying %d %c\n", FLA_MACH_START + i, lapack_machval );
88  vals[i] = fla_dlamch( &lapack_machval, 1 );
89 //printf( "got back %34.29e\n", vals[i] );
90  }
91 
92  // Store epsilon^2 in the last element.
93  vals[i] = vals[0] * vals[0];
94 
95  first_time = FALSE;
96  }
97 
98  return vals[ machval - FLA_MACH_START ];
99 }
void FLA_Param_map_flame_to_netlib_machval(FLA_Machval machval, void *blas_machval)
Definition: FLA_Param.c:195
doublereal fla_dlamch(char *cmach, ftnlen cmach_len)
Definition: fla_dlamch.c:56
int i
Definition: bl1_axmyv2.c:145

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().

◆ FLA_Mach_params_ops()

float FLA_Mach_params_ops ( FLA_Machval  machval)
48 {
49  static int first_time = TRUE;
50  static float vals[FLA_MACH_N_VALS];
51 
52  if ( first_time )
53  {
54  char lapack_machval;
55  int i;
56 
57  for( i = 0; i < FLA_MACH_N_VALS - 1; ++i )
58  {
59  FLA_Param_map_flame_to_netlib_machval( FLA_MACH_START + i, &lapack_machval );
60 //printf( "querying %d %c\n", FLA_MACH_START + i, lapack_machval );
61  vals[i] = fla_slamch( &lapack_machval, 1 );
62 //printf( "got back %34.29e\n", vals[i] );
63  }
64 
65  // Store epsilon^2 in the last element.
66  vals[i] = vals[0] * vals[0];
67 
68  first_time = FALSE;
69  }
70 
71  return vals[ machval - FLA_MACH_START ];
72 }
real fla_slamch(char *cmach, ftnlen cmach_len)
Definition: fla_slamch.c:56

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().