![]() |
MaCh3
2.4.2
Reference Guide
|
KS: Core MaCh3 definitions and compile-time configuration utilities. More...
#include <sstream>#include <fstream>#include <iostream>#include <vector>#include <iomanip>#include <cmath>#include <limits>Go to the source code of this file.
Namespaces | |
| M3 | |
| Main namespace for MaCh3 software. | |
Macros | |
| #define | _noexcept_ noexcept |
| KS: noexcept can help with performance but is terrible for debugging, this is meant to help easy way of of turning it on or off. In near future move this to struct or other central class. More... | |
| #define | _restrict_ |
| KS: Using restrict limits the effects of pointer aliasing, aiding optimizations. While reading I found that there might be some compilers which don't have restrict. As always we use restrict to more easily turn off restrict in the code. More... | |
| #define | _TH2PolyOverflowBins_ 9 |
| Number of overflow bins in TH2Poly,. More... | |
| #define | _MaCh3_Safe_Include_Start_ |
| KS: Avoiding warning checking for headers. More... | |
| #define | _MaCh3_Safe_Include_End_ _Pragma("GCC diagnostic pop") |
| KS: Restore warning checking after including external headers. More... | |
Typedefs | |
| using | M3::float_t = double |
| using | M3::int_t = int |
| using | M3::uint_t = unsigned |
Functions | |
| template<typename T > | |
| constexpr T | M3::fmaf_t (T x, T y, T z) |
| Function template for fused multiply-add. More... | |
Variables | |
| constexpr static const char * | M3::float_t_str_repr = "D" |
| constexpr static const double | M3::_BAD_DOUBLE_ = -999.99 |
| Default value used for double initialisation. More... | |
| constexpr static const int | M3::_BAD_INT_ = -999 |
| Default value used for int initialisation. More... | |
| constexpr static const double | M3::_DEFAULT_RETURN_VAL_ = -999999.123456 |
| constexpr static const double | M3::Unity_D = 1. |
| Some commonly used variables to which we set pointers to. More... | |
| constexpr static const float | M3::Unity_F = 1. |
| constexpr static const float_t | M3::Unity = Unity_D |
| constexpr static const double | M3::Zero_D = 0. |
| constexpr static const float | M3::Zero_F = 0. |
| constexpr static const float_t | M3::Zero = Zero_D |
| constexpr static const double | M3::KinematicLowBound = std::numeric_limits<double>::lowest() |
| When parameter has no bound this serves as it. Lowest possible value the system. More... | |
| constexpr static const double | M3::KinematicUpBound = std::numeric_limits<double>::max() |
| When parameter has no bound this serves as it. Highest possible value the system. More... | |
| constexpr static const double | M3::_LARGE_LOGL_ = 1234567890.0 |
| Large Likelihood is used it parameter go out of physical boundary, this indicates in MCMC that such step should be removed. More... | |
| constexpr static const double | M3::_LOW_MC_BOUND_ = .00001 |
| MC prediction lower bound in bin to identify problematic binning definitions and handle LogL calculation. More... | |
| constexpr static const double | M3::DefSplineKnotUpBound = 9999 |
| Default value for spline knot capping, default mean not capping is being applied. More... | |
| constexpr static const double | M3::DefSplineKnotLowBound = -9999 |
| Default value for spline knot capping, default mean not capping is being applied. More... | |
| constexpr static const int | M3::UnderOverFlowBin = -1 |
| Mark bin which is overflow or underflow in MaCh3 binning. More... | |
KS: Core MaCh3 definitions and compile-time configuration utilities.
KS: This header contains the fundamental MaCh3 type definitions, constants, and macros used throughout the framework. It centralizes basic numerical types, default constants, and utility macros for controlling memory layout, precision, and compiler diagnostics.
Definition in file Core.h.
| #define _MaCh3_Safe_Include_End_ _Pragma("GCC diagnostic pop") |
| #define _MaCh3_Safe_Include_Start_ |
KS: Avoiding warning checking for headers.
Many external files don't strictly adhere to rigorous C++ standards. Inline functions in such headers may cause errors when compiled with strict MaCh3 compiler flags.
| #define _noexcept_ noexcept |
| #define _restrict_ |
KS: Using restrict limits the effects of pointer aliasing, aiding optimizations. While reading I found that there might be some compilers which don't have restrict. As always we use restrict to more easily turn off restrict in the code.
KS: For GCC decoration is here: https://gcc.gnu.org/onlinedocs/gcc/Restricted-Pointers.html If we are sure other compiler support it as well please add