LSLOpt  1.0
ScalarTraits.hpp
1 #pragma once
2 
3 #include <cmath>
4 #include <limits>
5 
6 
7 namespace LSLOpt {
8 
15 template<typename Scalar>
16 struct scalar_traits {
17 
18 };
19 
21 template<>
22 struct scalar_traits<double> {
24  static constexpr double epsilon() {return std::numeric_limits<double>::epsilon();}
26  static constexpr double infinity() {return std::numeric_limits<double>::infinity();}
28  static constexpr double nan() {return std::numeric_limits<double>::quiet_NaN();}
29 
34  static bool is_nan(const double& d) {return std::isnan(d);}
35 };
36 
37 }
static bool is_nan(const double &d)
Check if value is NaN.
Definition: ScalarTraits.hpp:34
Traits for scalar values.
Definition: ScalarTraits.hpp:16
static constexpr double epsilon()
Machine epsilon for double.
Definition: ScalarTraits.hpp:24
static constexpr double nan()
NaN value for double.
Definition: ScalarTraits.hpp:28
static constexpr double infinity()
Infinity value for double.
Definition: ScalarTraits.hpp:26
BFGS optimizations.
Definition: BFGS.hpp:24