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

📄 extended.h

📁 编译类_Hss VC版_源代码支持表达式的编译执行,速度超快,支持实数和复数,并附带一个复数函数库你还可以同时找到VB和VC版和Delphi版
💻 H
📖 第 1 页 / 共 3 页
字号:
    void    Mod     (const Extended & x); //求余

    void    Round   ();                   //四舍五入取整(正好在中间时向偶数取整)
    void    Floor   ();                   //向负无穷大取整 (不大于this的最大整数)
    void    Trunc   ();                   //截断取整  即  向零取整
    void    Ceil    ();                   //向无穷大取整

    template <class T>   void    Max     (const T & x) { this->Max (Extended(x)); }
    template <class T>   void    Min     (const T & x) { this->Min (Extended(x)); }
    void    Max     (const Extended & x); //最大值
    void    Min     (const Extended & x); //最小值

    template <class T>   
    void    Power   (const T & x) { this->Power (Extended(x)); }
    void    Power   (const Extended & y); //指数 this^y
    void    Exp     ();                   //自然数e的次方
    void    Ln      ();                   //自然数e的对数
    void    Log2    ();                   //2的对数
    void    Log10   ();                   //10的对数

    void    Rev     ();                   //求倒数 1/this
    void    Chs     ();                   //求负 -this
    void    Sqr     ();                   //平方
    void    Sqr3    ();                   //立方
    void    Sqr4    ();                   //平方的平方
    void    Sqrt    ();                   //开方
    void    Abs     ();                   //绝对值
    void    Sgn     ();                   //符号函数
    template <class T>   
    void    Hypot   (const T & x) { this->Hypot (Extended(x)); }
    void    Hypot   (const Extended & x); //Sqrt(this*this+x*x)

    void    Sin     ();					          //正弦
    void    Cos     ();					          //余弦
    void    Tan     ();					          //正切
    template <class Tsin,class Tcos> 
    void    SinCos  (Tsin* xSin,Tcos* xCos)const
                    { Extended rsin,rcos; this->SinCos(&rsin,&rcos); *xSin=Tsin(rsin); *xCos=Tcos(rcos); }
    void    SinCos  (Extended* xSin,Extended* xCos) const;	//同时求出正弦和余弦,并通过参数传出,this值不变,
                                          //该函数的计算时间只相当于求一次Sin(或Cos)的时间!!!

    void    ArcSin  ();					          //反正弦
    void    ArcCos  ();					          //反余弦
    void    ArcTan  ();					          //反正切
    template <class T>
    void    ArcTan2 (const T & y) { this->ArcTan2 (Extended(y)); }
    void    ArcTan2 (const Extended & y);	//反正切2 (-PI~PI) 相当于this=Arctan(y/this),但不全部等价,
                                          //求出的值是真正的全角度,数学运算中很有用!

    void    Csc     ();					          //余割  1/Sin(this)
    void    Sec     ();					          //正割  1/Cos(this)
    void    Cot     ();                   //余切  1/Tan(this)
    void    ArcCsc  ();					          //反余割
    void    ArcSec  ();					          //反正割
    void    ArcCot  ();					          //反余切

    void    SinH    ();					          //双曲正弦
    void    CosH    ();					          //双曲余弦
    void    TanH    ();                   //双曲正切
    template <class Tsinh,class Tcosh>
    void    SinHCosH (Tsinh * xSinH,Tcosh * xCosH) const
                    { Extended rsinh,rcosh; this->SinHCosH(&rsinh,&rcosh); *xSinH=Tsinh(rsinh); *xCosH=Tcosh(rcosh); }
    void    SinHCosH(Extended * xSinH,Extended * xCosH) const;	//同时求出双曲正弦和双曲余弦,并通过参数传出,this值不变,
                                          //该函数的计算时间只相当于求一次SinH(或CosH)的时间!!!

    void    ArcSinH ();				            //双曲反正弦
    void    ArcCosH ();				            //双曲反余弦
    void    ArcTanH ();				            //双曲反正切

    void    CscH    ();				            //双曲余割  1/SinH(this)
    void    SecH    ();				            //双曲正割  1/CosH(this)
    void    CotH    ();				            //双曲余切  1/TanH(this)
    void    ArcCscH ();				            //双曲反余割
    void    ArcSecH ();				            //双曲反正割
    void    ArcCotH ();                   //双曲反余切

    void    Fld_PI  ();                   //得到常量 圆周率 PI = 3.1415926535897932384626
    void    Fld_e   ();                   //得到常量 自然数 e  = 2.7182818284590452353603
    void    Fld_1   ();                   //得到常量  1.0
    void    Fld_0   ();                   //得到常量  0.0

    //下面的函数命名仿照"math.h" ,意义也相同 , 用以支持表达式函数连写

    friend  const Extended   ceil      ( const Extended& x ){ Extended r(x); r.Ceil(); return r; }
    friend  const Extended   floor     ( const Extended& x ){ Extended r(x); r.Floor(); return r; }
    friend  const Extended   _chgsign  ( const Extended& x ){ Extended r(x); r.Chs(); return r; }
    friend  const Extended   fabs      ( const Extended& x ){ Extended r(x); r.Abs(); return r; }
    friend  const Extended   sqrt      ( const Extended& x ){ Extended r(x); r.Sqrt(); return r; }
    friend  const Extended   fmod      ( const Extended& x, const Extended& y )	  { Extended r(x); r.Mod(y); return r; }
      friend  const Extended  fmod      ( const Extended& x, const long double& y ) { Extended r(x); r.Mod(y); return r; }
      friend  const Extended  fmod      ( const long double& x, const Extended& y ) { Extended r(x); r.Mod(y); return r; }
      friend  const Extended  fmod      ( const Extended& x, const double& y )      { Extended r(x); r.Mod(y); return r; }
      friend  const Extended  fmod      ( const double& x, const Extended& y )      { Extended r(x); r.Mod(y); return r; }
      friend  const Extended  fmod      ( const Extended& x, const float& y )		{ Extended r(x); r.Mod(y); return r; }
      friend  const Extended  fmod      ( const float& x, const Extended& y )       { Extended r(x); r.Mod(y); return r; }
      friend  const Extended  fmod      ( const Extended& x, const __int64& y )     { Extended r(x); r.Mod(y); return r; }
      friend  const Extended  fmod      ( const __int64& x, const Extended& y )     { Extended r(x); r.Mod(y); return r; }
      friend  const Extended  fmod      ( const Extended& x, int& y )				{ Extended r(x); r.Mod(y); return r; }
      friend  const Extended  fmod      ( int& x, const Extended& y )				{ Extended r(x); r.Mod(y); return r; }
    friend  const Extended   _hypot    ( const Extended& x, const Extended& y ) { Extended r(x); r.Hypot(y); return r; }
      friend  const Extended  _hypot    ( const Extended& x, const long double& y ) { Extended r(x); r.Hypot(y); return r; }
      friend  const Extended  _hypot    ( const long double& x, const Extended& y ) { Extended r(x); r.Hypot(y); return r; }
      friend  const Extended  _hypot    ( const Extended& x, const double& y )      { Extended r(x); r.Hypot(y); return r; }
      friend  const Extended  _hypot    ( const double& x, const Extended& y )      { Extended r(x); r.Hypot(y); return r; }
      friend  const Extended  _hypot    ( const Extended& x, const float& y )		{ Extended r(x); r.Hypot(y); return r; }
      friend  const Extended  _hypot    ( const float& x, const Extended& y )		{ Extended r(x); r.Hypot(y); return r; }
      friend  const Extended  _hypot    ( const Extended& x, const __int64& y )     { Extended r(x); r.Hypot(y); return r; }
      friend  const Extended  _hypot    ( const __int64& x, const Extended& y )     { Extended r(x); r.Hypot(y); return r; }
      friend  const Extended  _hypot    ( const Extended& x, const int& y )			{ Extended r(x); r.Hypot(y); return r; }
      friend  const Extended  _hypot    ( const int& x, const Extended& y )			{ Extended r(x); r.Hypot(y); return r; }

    friend  BOOL      _isnan    ( const Extended& x ); //是否是无效数值
    friend  BOOL      _finite   ( const Extended& x ); //是否是有限数值

    template <class T>  
	friend  const Extended  modf      ( const Extended& x, T *intptr )
													{ Extended rp,rx; rx=modf(x,&rp); *intptr=T(rp); return rx; }
    friend  const Extended  modf      ( const Extended& x, Extended *intptr );

    friend  const Extended   pow       ( const Extended& x, const Extended& y ) { Extended r(x); r.Power(y); return r; }
      friend  const Extended  pow       ( const Extended& x, const long double& y ) { Extended r(x); r.Power(y); return r; }
      friend  const Extended  pow       ( const long double& x, const Extended& y ) { Extended r(x); r.Power(y); return r; }
      friend  const Extended  pow       ( const Extended& x, const double& y )      { Extended r(x); r.Power(y); return r; }
      friend  const Extended  pow       ( const double& x, const Extended& y )      { Extended r(x); r.Power(y); return r; }
      friend  const Extended  pow       ( const Extended& x, const float& y )		{ Extended r(x); r.Power(y); return r; }
      friend  const Extended  pow       ( const float& x, const Extended& y )		{ Extended r(x); r.Power(y); return r; }
      friend  const Extended  pow       ( const Extended& x, const __int64& y )     { Extended r(x); r.Power(y); return r; }
      friend  const Extended  pow       ( const __int64& x, const Extended& y )     { Extended r(x); r.Power(y); return r; }
      friend  const Extended  pow       ( const Extended& x, const int& y ) 		{ Extended r(x); r.Power(y); return r; }
      friend  const Extended  pow       ( const int& x, const Extended& y )			{ Extended r(x); r.Power(y); return r; }
    friend  const Extended   exp       ( const Extended& x ){ Extended r(x); r.Exp(); return r; }
    friend  const Extended   log       ( const Extended& x ){ Extended r(x); r.Ln(); return r; }
    friend  const Extended   log10     ( const Extended& x ){ Extended r(x); r.Log10(); return r; }

    friend  const Extended   sin       ( const Extended& x ){ Extended r(x); r.Sin(); return r; }
    friend  const Extended   cos       ( const Extended& x ){ Extended r(x); r.Cos(); return r; }
    friend  const Extended   tan       ( const Extended& x ){ Extended r(x); r.Tan(); return r; }
    friend  const Extended   acos      ( const Extended& x ){ Extended r(x); r.ArcCos(); return r; }
    friend  const Extended   asin      ( const Extended& x ){ Extended r(x); r.ArcSin(); return r; }
    friend  const Extended   atan      ( const Extended& x ){ Extended r(x); r.ArcTan(); return r; }
    friend  const Extended   atan2     ( const Extended& y, const Extended& x ) { Extended r(x); r.ArcTan2(y); return r; }
      friend  const Extended  atan2     ( const Extended& y, const long double& x ) { Extended r(x); r.ArcTan2(y); return r; }
      friend  const Extended  atan2     ( const long double& y, const Extended& x ) { Extended r(x); r.ArcTan2(y); return r; }
      friend  const Extended  atan2     ( const Extended& y, const double& x )      { Extended r(x); r.ArcTan2(y); return r; }
      friend  const Extended  atan2     ( const double& y, const Extended& x )      { Extended r(x); r.ArcTan2(y); return r; }
      friend  const Extended  atan2     ( const Extended& y, const float& x )		{ Extended r(x); r.ArcTan2(y); return r; }
      friend  const Extended  atan2     ( const float& y, const Extended& x )		{ Extended r(x); r.ArcTan2(y); return r; }
      friend  const Extended  atan2     ( const Extended& y, const __int64& x )     { Extended r(x); r.ArcTan2(y); return r; }
      friend  const Extended  atan2     ( const __int64& y, const Extended& x )     { Extended r(x); r.ArcTan2(y); return r; }
      friend  const Extended  atan2     ( const Extended& y, const int& x )			{ Extended r(x); r.ArcTan2(y); return r; }
      friend  const Extended  atan2     ( const int& y, const Extended& x )			{ Extended r(x); r.ArcTan2(y); return r; }

    friend  const Extended   sinh      ( const Extended& x ){ Extended r(x); r.SinH(); return r; }
    friend  const Extended   cosh      ( const Extended& x ){ Extended r(x); r.CosH(); return r; }
    friend  const Extended   tanh      ( const Extended& x ){ Extended r(x); r.TanH(); return r; }


    //下面的函数仿照"math.h" ,但"math.h"中又不支持的一些数学函数, 用以支持表达式函数连写

    friend  const Extended   round     ( const Extended& x ){ Extended r(x); r.Round(); return r; } 
    friend  const Extended   trunc     ( const Extended& x ){ Extended r(x); r.Trunc(); return r; }
    friend  const Extended   Sqr3      ( const Extended& x ){ Extended r(x); r.Sqr3(); return r; }
    friend  const Extended   Sqr4      ( const Extended& x ){ Extended r(x); r.Sqr4(); return r; }
    friend  const Extended   sqr       ( const Extended& x ){ Extended r(x); r.Sqr(); return r; }
    friend  const Extended   log2      ( const Extended& x ){ Extended r(x); r.Log2(); return r; }

    friend  const Extended   asinh     ( const Extended& x ){ Extended r(x); r.ArcSinH(); return r; }
    friend  const Extended   acosh     ( const Extended& x ){ Extended r(x); r.ArcCosH(); return r; }
    friend  const Extended   atanh     ( const Extended& x ){ Extended r(x); r.ArcTanH(); return r; }

    friend  const Extended   csc       ( const Extended& x ){ Extended r(x); r.Csc(); return r; }
    friend  const Extended   sec       ( const Extended& x ){ Extended r(x); r.Sec(); return r; }
    friend  const Extended   cot       ( const Extended& x ){ Extended r(x); r.Cot(); return r; }
    friend  const Extended   acsc      ( const Extended& x ){ Extended r(x); r.ArcCsc(); return r; }
    friend  const Extended   asec      ( const Extended& x ){ Extended r(x); r.ArcSec(); return r; }
    friend  const Extended   acot      ( const Extended& x ){ Extended r(x); r.ArcCot(); return r; }

    friend  const Extended   csch      ( const Extended& x ){ Extended r(x); r.CscH(); return r; }
    friend  const Extended   sech      ( const Extended& x ){ Extended r(x); r.SecH(); return r; }
    friend  const Extended   coth      ( const Extended& x ){ Extended r(x); r.CotH(); return r; }
    friend  const Extended   acsch     ( const Extended& x ){ Extended r(x); r.ArcCscH(); return r; }
    friend  const Extended   asech     ( const Extended& x ){ Extended r(x); r.ArcSecH(); return r; }
    friend  const Extended   acoth     ( const Extended& x ){ Extended r(x); r.ArcCotH(); return r; }
};


#endif // !defined(HSS_EXTENDED_H__1ECD8DAE_80C2_4D79_9E0D_F80C031B8CA1__INCLUDED_)

⌨️ 快捷键说明

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