libMesh
Classes | Functions
std Namespace Reference

Classes

struct  hash< libMesh::FEType >
 
struct  hash< libMesh::Point >
 
struct  multiplies< boost::multiprecision::float128 >
 
struct  plus< boost::multiprecision::float128 >
 

Functions

 LIBMESH_FLOAT128_UNARY (sqrt) LIBMESH_FLOAT128_UNARY(exp) LIBMESH_FLOAT128_UNARY(log) LIBMESH_FLOAT128_UNARY(log10) LIBMESH_FLOAT128_UNARY(sin) LIBMESH_FLOAT128_UNARY(cos) LIBMESH_FLOAT128_UNARY(tan) LIBMESH_FLOAT128_UNARY(asin) LIBMESH_FLOAT128_UNARY(acos) LIBMESH_FLOAT128_UNARY(atan) LIBMESH_FLOAT128_UNARY(sinh) LIBMESH_FLOAT128_UNARY(cosh) LIBMESH_FLOAT128_UNARY(tanh) LIBMESH_FLOAT128_UNARY(abs) LIBMESH_FLOAT128_UNARY(fabs) LIBMESH_FLOAT128_UNARY(ceil) LIBMESH_FLOAT128_UNARY(floor) inline boost
 
boost::multiprecision::float128 real (const boost::multiprecision::float128 in)
 
boost::multiprecision::float128 imag (const boost::multiprecision::float128)
 
 LIBMESH_FLOAT128_MATH_BOOL (isinf) LIBMESH_FLOAT128_MATH_BOOL(isnan) inline boost
 
 LIBMESH_FLOAT128_BINARY (pow) LIBMESH_FLOAT128_BINARY(atan2) LIBMESH_FLOAT128_BINARY(fmod) inline boost
 
 LIBMESH_FLOAT128_UNARY (trunc) LIBMESH_FLOAT128_UNARY(round) LIBMESH_FLOAT128_UNARY(log1p) inline long long llround(const boost
 
 LIBMESH_DEFINE_BOTH_MAX_MIN (long double, double) LIBMESH_DEFINE_BOTH_MAX_MIN(long double
 
float LIBMESH_DEFINE_BOTH_MAX_MIN (double, float) LIBMESH_DEFINE_BOTH_MAX_MIN(libMesh
 
std::ostream & operator<< (std::ostream &os, const PetscScalar in)
 
template<typename T >
auto norm (const libMesh::TypeVector< T > &vector) -> decltype(std::norm(T()))
 

Function Documentation

◆ imag()

boost::multiprecision::float128 std::imag ( const boost::multiprecision::float128  )
inline

◆ LIBMESH_DEFINE_BOTH_MAX_MIN() [1/2]

std::LIBMESH_DEFINE_BOTH_MAX_MIN ( long  double,
double   
)

◆ LIBMESH_DEFINE_BOTH_MAX_MIN() [2/2]

float std::LIBMESH_DEFINE_BOTH_MAX_MIN ( double  ,
float   
)

Definition at line 41 of file libmesh_augment_std_namespace.h.

52 { return ::fabs(a); }

◆ LIBMESH_FLOAT128_BINARY()

std::LIBMESH_FLOAT128_BINARY ( pow  )

Definition at line 132 of file float128_shims.h.

References libMesh::Utility::pow().

141 {
142  return boost::multiprecision::pow(in1, in2);
143 }
T pow(const T &x)
Definition: utility.h:328

◆ LIBMESH_FLOAT128_MATH_BOOL()

std::LIBMESH_FLOAT128_MATH_BOOL ( isinf  )

Definition at line 116 of file float128_shims.h.

124 {
125 #ifdef BOOST_MP_USE_QUAD
126  return __modfq(in.backend().value(), &intpart->backend().value());
127 #elif defined(BOOST_MP_USE_FLOAT128)
128  return modfq(in.backend().value(), &intpart->backend().value());
129 #endif
130 }

◆ LIBMESH_FLOAT128_UNARY() [1/2]

std::LIBMESH_FLOAT128_UNARY ( sqrt  )

Definition at line 56 of file float128_shims.h.

77 {
78  return in * in;
79 }

◆ LIBMESH_FLOAT128_UNARY() [2/2]

std::LIBMESH_FLOAT128_UNARY ( trunc  ) const

Definition at line 150 of file float128_shims.h.

161 {
162  return boost::multiprecision::llround(in);
163 }

◆ norm()

template<typename T >
auto std::norm ( const libMesh::TypeVector< T > &  vector) -> decltype(std::norm(T()))

Definition at line 1206 of file type_vector.h.

Referenced by libMesh::TensorTools::norm_sq(), and libMesh::TypeVector< Real >::unit().

1207 {
1208  // Yea I agree it's dumb that the standard returns the square of the Euclidean norm
1209  return vector.norm_sq();
1210 }
auto norm_sq() const -> decltype(std::norm(T()))
Definition: type_vector.h:926

◆ operator<<()

std::ostream& std::operator<< ( std::ostream &  os,
const PetscScalar  in 
)
inline

Definition at line 124 of file petsc_macro.h.

125 {
126  os << (boost::multiprecision::float128(in));
127  return os;
128 }

◆ real()

boost::multiprecision::float128 std::real ( const boost::multiprecision::float128  in)
inline