SyTen
thresholds.h File Reference

Numerical Thresholds. More...

#include <limits>
#include <cmath>
#include "inc/util/configuration.h"
+ Include dependency graph for thresholds.h:
+ This graph shows which files directly or indirectly include this file:

Macros

#define SYTEN_BROADENING_EPSILON   SYTEN_SRDEF_TYPE(std::pow(std::numeric_limits<SYTEN_SRDEF_TYPE>::epsilon(), 12./16.))
 Broadening threshold epsilon to be used in inexact inversion \( \frac{1}{x} \approx \frac{x}{x^2 + \epsilon} \). More...
 
#define SYTEN_DEBUG_THRESHOLD   SYTEN_SRDEF_TYPE(std::pow(std::numeric_limits<SYTEN_SRDEF_TYPE>::epsilon(), 5./16.))
 If \(x == y\) from theory, abs(x-y) < SYTEN_DEBUG_THRESHOLD More...
 
#define SYTEN_DEBUG_THRESHOLD_SQD   (SYTEN_DEBUG_THRESHOLD * SYTEN_DEBUG_THRESHOLD)
 Squared value of the debug threshold. More...
 
#define SYTEN_EZERO_THRESHOLD   SYTEN_SRDEF_TYPE(std::pow(std::numeric_limits<SYTEN_SRDEF_TYPE>::epsilon(), 11./16.))
 An element is considered zero during EliminateZero::Yes processing if it is smaller than this times the element-specific threshold. More...
 
#define SYTEN_EZERO_THRESHOLD_SQD   (SYTEN_EZERO_THRESHOLD * SYTEN_EZERO_THRESHOLD)
 Squared value of the eliminate zero threshold. More...
 
#define SYTEN_PARALLEL_THRESHOLD   SYTEN_SRDEF_TYPE(std::pow(std::numeric_limits<SYTEN_SRDEF_TYPE>::epsilon(), 10./16.))
 Two tensors are considered parallel if the ratios between individual elements differ at most by this. More...
 
#define SYTEN_PARALLEL_THRESHOLD_SQD   (SYTEN_PARALLEL_THRESHOLD * SYTEN_PARALLEL_THRESHOLD)
 Squared value of the parallel threshold. More...
 
#define SYTEN_SMALL_THRESHOLD   SYTEN_SRDEF_TYPE(std::pow(std::numeric_limits<SYTEN_SRDEF_TYPE>::epsilon(), 15./16.))
 A generic small threshold, suitable for comparison for equality. More...
 
#define SYTEN_SMALL_THRESHOLD_SQD   (SYTEN_SMALL_THRESHOLD * SYTEN_SMALL_THRESHOLD)
 Squared value of small threshold. More...
 
#define SYTEN_ZERO_THRESHOLD   SYTEN_SRDEF_TYPE(std::pow(std::numeric_limits<SYTEN_SRDEF_TYPE>::epsilon(), 18./16.))
 A very small threshold, suitable to discard values lower than it. More...
 
#define SYTEN_ZERO_THRESHOLD_SQD   (SYTEN_SMALL_THRESHOLD * SYTEN_SMALL_THRESHOLD)
 Squared value of very small threshold. More...
 
#define SYTEN_ZNORM_THRESHOLD   SYTEN_SRDEF_TYPE(std::pow(std::numeric_limits<SYTEN_SRDEF_TYPE>::epsilon(), 8./16.))
 An object with norm() below this is considered unnormalisable. More...
 
#define SYTEN_ZNORM_THRESHOLD_SQD   (SYTEN_ZNORM_THRESHOLD * SYTEN_ZNORM_THRESHOLD)
 Squared value of the zero norm threshold. More...
 

Detailed Description

Numerical Thresholds.