⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 precisio.h

📁 各种矩阵算法库。支持UpperTriangularMatrix,LowerTriangularMatrix, DiagonalMatrix, SymmetricMatrix, BandMatrix,U
💻 H
字号:
//$$ precisio.h                          floating point constants#ifndef PRECISION_LIB#define PRECISION_LIB 0#ifdef use_namespacenamespace NEWMAT {#endif#ifdef _STANDARD_                 // standard library available#include <limits>using namespace std;	class FloatingPointPrecision{public:   static int Dig()              // number of decimal digits or precision      { return numeric_limits<Real>::digits10 ; }   static Real Epsilon()         // smallest number such that 1+Eps!=Eps      { return numeric_limits<Real>::epsilon(); }   static int Mantissa()         // bits in mantisa      { return numeric_limits<Real>::digits; }   static Real Maximum()         // maximum value      { return numeric_limits<Real>::max(); }   static int MaximumDecimalExponent()  // maximum decimal exponent      { return numeric_limits<Real>::max_exponent10; }   static int MaximumExponent()  // maximum binary exponent      { return numeric_limits<Real>::max_exponent; }   static Real LnMaximum()       // natural log of maximum      { return (Real)log(Maximum()); }   static Real Minimum()         // minimum positive value      { return numeric_limits<Real>::min(); }    static int MinimumDecimalExponent() // minimum decimal exponent      { return numeric_limits<Real>::min_exponent10; }   static int MinimumExponent()  // minimum binary exponent      { return numeric_limits<Real>::min_exponent; }   static Real LnMinimum()       // natural log of minimum      { return (Real)log(Minimum()); }   static int Radix()            // exponent radix      { return numeric_limits<Real>::radix; }   static int Rounds()           // addition rounding (1 = does round)   {	  return numeric_limits<Real>::round_style ==		 round_to_nearest ? 1 : 0;   }};#else                              // _STANDARD_ not defined#ifndef SystemV                    // if there is float.h#ifdef USING_FLOATclass FloatingPointPrecision{public:   static int Dig()      { return FLT_DIG; }        // number of decimal digits or precision   static Real Epsilon()      { return FLT_EPSILON; }    // smallest number such that 1+Eps!=Eps   static int Mantissa()      { return FLT_MANT_DIG; }   // bits in mantisa   static Real Maximum()      { return FLT_MAX; }        // maximum value   static int MaximumDecimalExponent()      { return FLT_MAX_10_EXP; } // maximum decimal exponent   static int MaximumExponent()      { return FLT_MAX_EXP; }    // maximum binary exponent   static Real LnMaximum()      { return (Real)log(Maximum()); } // natural log of maximum   static Real Minimum()      { return FLT_MIN; }        // minimum positive value   static int MinimumDecimalExponent()      { return FLT_MIN_10_EXP; } // minimum decimal exponent   static int MinimumExponent()      { return FLT_MIN_EXP; }    // minimum binary exponent   static Real LnMinimum()      { return (Real)log(Minimum()); } // natural log of minimum   static int Radix()      { return FLT_RADIX; }      // exponent radix   static int Rounds()      { return FLT_ROUNDS; }     // addition rounding (1 = does round)};#endif                           // USING_FLOAT#ifdef USING_DOUBLEclass FloatingPointPrecision{public:   static int Dig()      { return DBL_DIG; }        // number of decimal digits or precision   static Real Epsilon()      { return DBL_EPSILON; }    // smallest number such that 1+Eps!=Eps   static int Mantissa()      { return DBL_MANT_DIG; }   // bits in mantisa   static Real Maximum()      { return DBL_MAX; }        // maximum value   static int MaximumDecimalExponent()      { return DBL_MAX_10_EXP; } // maximum decimal exponent   static int MaximumExponent()      { return DBL_MAX_EXP; }    // maximum binary exponent   static Real LnMaximum()      { return (Real)log(Maximum()); } // natural log of maximum   static Real Minimum()   {//#ifdef __BCPLUSPLUS__//       return 2.225074e-308;     // minimum positive value//#else       return DBL_MIN;//#endif   }   static int MinimumDecimalExponent()      { return DBL_MIN_10_EXP; } // minimum decimal exponent   static int MinimumExponent()      { return DBL_MIN_EXP; }    // minimum binary exponent   static Real LnMinimum()      { return (Real)log(Minimum()); } // natural log of minimum   static int Radix()      { return FLT_RADIX; }      // exponent radix   static int Rounds()      { return FLT_ROUNDS; }     // addition rounding (1 = does round)};#endif                             // USING_DOUBLE#else                              // if there is no float.h#ifdef USING_FLOATclass FloatingPointPrecision{public:   static Real Epsilon()      { return pow(2.0,1-FSIGNIF); }  // smallest number such that 1+Eps!=Eps   static Real Maximum()      { return MAXFLOAT; }            // maximum value   static Real LnMaximum()      { return (Real)log(Maximum()); }  // natural log of maximum   static Real Minimum()      { return MINFLOAT; }            // minimum positive value   static Real LnMinimum()      { return (Real)log(Minimum()); }  // natural log of minimum};#endif                                  // USING_FLOAT#ifdef USING_DOUBLEclass FloatingPointPrecision{public:   static Real Epsilon()      { return pow(2.0,1-DSIGNIF); }  // smallest number such that 1+Eps!=Eps   static Real Maximum()      { return MAXDOUBLE; }           // maximum value   static Real LnMaximum()      { return LN_MAXDOUBLE; }        // natural log of maximum   static Real Minimum()      { return MINDOUBLE; }   static Real LnMinimum()      { return LN_MINDOUBLE; }        // natural log of minimum};#endif                                // USING_DOUBLE#endif                                // SystemV#endif                                // _STANDARD_#ifdef use_namespace}#endif                                // use_namespace#endif                                // PRECISION_LIB

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -