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

📄 apfloat.h

📁 任意精度计算的实现
💻 H
📖 第 1 页 / 共 2 页
字号:
    friend apfloat operator- (int d1, const apfloat &d2) { return apfloat (d1) - d2; }
    friend apfloat operator- (unsigned d1, const apfloat &d2) { return apfloat (d1) - d2; }
    friend apfloat operator- (long d1, const apfloat &d2) { return apfloat (d1) - d2; }
    friend apfloat operator- (unsigned long d1, const apfloat &d2) { return apfloat (d1) - d2; }
    friend apfloat operator- (double d1, const apfloat &d2) { return apfloat (d1) - d2; }
    friend apfloat operator- (char *d1, const apfloat &d2) { return apfloat (d1) - d2; }
    friend apfloat operator* (const apfloat &d1, int d2) { return d1 * apfloat (d2); }
    friend apfloat operator* (const apfloat &d1, unsigned d2) { return d1 * apfloat (d2); }
    friend apfloat operator* (const apfloat &d1, long d2) { return d1 * apfloat (d2); }
    friend apfloat operator* (const apfloat &d1, unsigned long d2) { return d1 * apfloat (d2); }
    friend apfloat operator* (const apfloat &d1, double d2) { return d1 * apfloat (d2); }
    friend apfloat operator* (const apfloat &d1, char *d2) { return d1 * apfloat (d2); }
    friend apfloat operator* (int d1, const apfloat &d2) { return apfloat (d1) * d2; }
    friend apfloat operator* (unsigned d1, const apfloat &d2) { return apfloat (d1) * d2; }
    friend apfloat operator* (long d1, const apfloat &d2) { return apfloat (d1) * d2; }
    friend apfloat operator* (unsigned long d1, const apfloat &d2) { return apfloat (d1) * d2; }
    friend apfloat operator* (double d1, const apfloat &d2) { return apfloat (d1) * d2; }
    friend apfloat operator* (char *d1, const apfloat &d2) { return apfloat (d1) * d2; }
    friend apfloat operator/ (const apfloat &d1, int d2) { return d1 / apfloat (d2); }
    friend apfloat operator/ (const apfloat &d1, unsigned d2) { return d1 / apfloat (d2); }
    friend apfloat operator/ (const apfloat &d1, long d2) { return d1 / apfloat (d2); }
    friend apfloat operator/ (const apfloat &d1, unsigned long d2) { return d1 / apfloat (d2); }
    friend apfloat operator/ (const apfloat &d1, double d2) { return d1 / apfloat (d2); }
    friend apfloat operator/ (const apfloat &d1, char *d2) { return d1 / apfloat (d2); }
    friend apfloat operator/ (int d1, const apfloat &d2) { return apfloat (d1) / d2; }
    friend apfloat operator/ (unsigned d1, const apfloat &d2) { return apfloat (d1) / d2; }
    friend apfloat operator/ (long d1, const apfloat &d2) { return apfloat (d1) / d2; }
    friend apfloat operator/ (unsigned long d1, const apfloat &d2) { return apfloat (d1) / d2; }
    friend apfloat operator/ (double d1, const apfloat &d2) { return apfloat (d1) / d2; }
    friend apfloat operator/ (char *d1, const apfloat &d2) { return apfloat (d1) / d2; }
    friend bool operator== (const apfloat &d1, int d2) { return d1 == apfloat (d2); }
    friend bool operator== (const apfloat &d1, unsigned d2) { return d1 == apfloat (d2); }
    friend bool operator== (const apfloat &d1, long d2) { return d1 == apfloat (d2); }
    friend bool operator== (const apfloat &d1, unsigned long d2) { return d1 == apfloat (d2); }
    friend bool operator== (const apfloat &d1, double d2) { return d1 == apfloat (d2); }
    friend bool operator== (const apfloat &d1, char *d2) { return d1 == apfloat (d2); }
    friend bool operator== (int d1, const apfloat &d2) { return apfloat (d1) == d2; }
    friend bool operator== (unsigned d1, const apfloat &d2) { return apfloat (d1) == d2; }
    friend bool operator== (long d1, const apfloat &d2) { return apfloat (d1) == d2; }
    friend bool operator== (unsigned long d1, const apfloat &d2) { return apfloat (d1) == d2; }
    friend bool operator== (double d1, const apfloat &d2) { return apfloat (d1) == d2; }
    friend bool operator== (char *d1, const apfloat &d2) { return apfloat (d1) == d2; }
    friend bool operator!= (const apfloat &d1, int d2) { return d1 != apfloat (d2); }
    friend bool operator!= (const apfloat &d1, unsigned d2) { return d1 != apfloat (d2); }
    friend bool operator!= (const apfloat &d1, long d2) { return d1 != apfloat (d2); }
    friend bool operator!= (const apfloat &d1, unsigned long d2) { return d1 != apfloat (d2); }
    friend bool operator!= (const apfloat &d1, double d2) { return d1 != apfloat (d2); }
    friend bool operator!= (const apfloat &d1, char *d2) { return d1 != apfloat (d2); }
    friend bool operator!= (int d1, const apfloat &d2) { return apfloat (d1) != d2; }
    friend bool operator!= (unsigned d1, const apfloat &d2) { return apfloat (d1) != d2; }
    friend bool operator!= (long d1, const apfloat &d2) { return apfloat (d1) != d2; }
    friend bool operator!= (unsigned long d1, const apfloat &d2) { return apfloat (d1) != d2; }
    friend bool operator!= (double d1, const apfloat &d2) { return apfloat (d1) != d2; }
    friend bool operator!= (char *d1, const apfloat &d2) { return apfloat (d1) != d2; }
    friend bool operator>= (const apfloat &d1, int d2) { return d1 >= apfloat (d2); }
    friend bool operator>= (const apfloat &d1, unsigned d2) { return d1 >= apfloat (d2); }
    friend bool operator>= (const apfloat &d1, long d2) { return d1 >= apfloat (d2); }
    friend bool operator>= (const apfloat &d1, unsigned long d2) { return d1 >= apfloat (d2); }
    friend bool operator>= (const apfloat &d1, double d2) { return d1 >= apfloat (d2); }
    friend bool operator>= (const apfloat &d1, char *d2) { return d1 >= apfloat (d2); }
    friend bool operator>= (int d1, const apfloat &d2) { return apfloat (d1) >= d2; }
    friend bool operator>= (unsigned d1, const apfloat &d2) { return apfloat (d1) >= d2; }
    friend bool operator>= (long d1, const apfloat &d2) { return apfloat (d1) >= d2; }
    friend bool operator>= (unsigned long d1, const apfloat &d2) { return apfloat (d1) >= d2; }
    friend bool operator>= (double d1, const apfloat &d2) { return apfloat (d1) >= d2; }
    friend bool operator>= (char *d1, const apfloat &d2) { return apfloat (d1) >= d2; }
    friend bool operator<= (const apfloat &d1, int d2) { return d1 <= apfloat (d2); }
    friend bool operator<= (const apfloat &d1, unsigned d2) { return d1 <= apfloat (d2); }
    friend bool operator<= (const apfloat &d1, long d2) { return d1 <= apfloat (d2); }
    friend bool operator<= (const apfloat &d1, unsigned long d2) { return d1 <= apfloat (d2); }
    friend bool operator<= (const apfloat &d1, double d2) { return d1 <= apfloat (d2); }
    friend bool operator<= (const apfloat &d1, char *d2) { return d1 <= apfloat (d2); }
    friend bool operator<= (int d1, const apfloat &d2) { return apfloat (d1) <= d2; }
    friend bool operator<= (unsigned d1, const apfloat &d2) { return apfloat (d1) <= d2; }
    friend bool operator<= (long d1, const apfloat &d2) { return apfloat (d1) <= d2; }
    friend bool operator<= (unsigned long d1, const apfloat &d2) { return apfloat (d1) <= d2; }
    friend bool operator<= (double d1, const apfloat &d2) { return apfloat (d1) <= d2; }
    friend bool operator<= (char *d1, const apfloat &d2) { return apfloat (d1) <= d2; }
    friend bool operator> (const apfloat &d1, int d2) { return d1 > apfloat (d2); }
    friend bool operator> (const apfloat &d1, unsigned d2) { return d1 > apfloat (d2); }
    friend bool operator> (const apfloat &d1, long d2) { return d1 > apfloat (d2); }
    friend bool operator> (const apfloat &d1, unsigned long d2) { return d1 > apfloat (d2); }
    friend bool operator> (const apfloat &d1, double d2) { return d1 > apfloat (d2); }
    friend bool operator> (const apfloat &d1, char *d2) { return d1 > apfloat (d2); }
    friend bool operator> (int d1, const apfloat &d2) { return apfloat (d1) > d2; }
    friend bool operator> (unsigned d1, const apfloat &d2) { return apfloat (d1) > d2; }
    friend bool operator> (long d1, const apfloat &d2) { return apfloat (d1) > d2; }
    friend bool operator> (unsigned long d1, const apfloat &d2) { return apfloat (d1) > d2; }
    friend bool operator> (double d1, const apfloat &d2) { return apfloat (d1) > d2; }
    friend bool operator> (char *d1, const apfloat &d2) { return apfloat (d1) > d2; }
    friend bool operator< (const apfloat &d1, int d2) { return d1 < apfloat (d2); }
    friend bool operator< (const apfloat &d1, unsigned d2) { return d1 < apfloat (d2); }
    friend bool operator< (const apfloat &d1, long d2) { return d1 < apfloat (d2); }
    friend bool operator< (const apfloat &d1, unsigned long d2) { return d1 < apfloat (d2); }
    friend bool operator< (const apfloat &d1, double d2) { return d1 < apfloat (d2); }
    friend bool operator< (const apfloat &d1, char *d2) { return d1 < apfloat (d2); }
    friend bool operator< (int d1, const apfloat &d2) { return apfloat (d1) < d2; }
    friend bool operator< (unsigned d1, const apfloat &d2) { return apfloat (d1) < d2; }
    friend bool operator< (long d1, const apfloat &d2) { return apfloat (d1) < d2; }
    friend bool operator< (unsigned long d1, const apfloat &d2) { return apfloat (d1) < d2; }
    friend bool operator< (double d1, const apfloat &d2) { return apfloat (d1) < d2; }
    friend bool operator< (char *d1, const apfloat &d2) { return apfloat (d1) < d2; }
    apfloat &operator+= (int d) { *this = *this + apfloat (d); return *this; }
    apfloat &operator+= (unsigned d) { *this = *this + apfloat (d); return *this; }
    apfloat &operator+= (long d) { *this = *this + apfloat (d); return *this; }
    apfloat &operator+= (unsigned long d) { *this = *this + apfloat (d); return *this; }
    apfloat &operator+= (double d) { *this = *this + apfloat (d); return *this; }
    apfloat &operator+= (char *d) { *this = *this + apfloat (d); return *this; }
    apfloat &operator-= (int d) { *this = *this - apfloat (d); return *this; }
    apfloat &operator-= (unsigned d) { *this = *this - apfloat (d); return *this; }
    apfloat &operator-= (long d) { *this = *this - apfloat (d); return *this; }
    apfloat &operator-= (unsigned long d) { *this = *this - apfloat (d); return *this; }
    apfloat &operator-= (double d) { *this = *this - apfloat (d); return *this; }
    apfloat &operator-= (char *d) { *this = *this - apfloat (d); return *this; }
    apfloat &operator*= (int d) { *this = *this * apfloat (d); return *this; }
    apfloat &operator*= (unsigned d) { *this = *this * apfloat (d); return *this; }
    apfloat &operator*= (long d) { *this = *this * apfloat (d); return *this; }
    apfloat &operator*= (unsigned long d) { *this = *this * apfloat (d); return *this; }
    apfloat &operator*= (double d) { *this = *this * apfloat (d); return *this; }
    apfloat &operator*= (char *d) { *this = *this * apfloat (d); return *this; }
    apfloat &operator/= (int d) { *this = *this / apfloat (d); return *this; }
    apfloat &operator/= (unsigned d) { *this = *this / apfloat (d); return *this; }
    apfloat &operator/= (long d) { *this = *this / apfloat (d); return *this; }
    apfloat &operator/= (unsigned long d) { *this = *this / apfloat (d); return *this; }
    apfloat &operator/= (double d) { *this = *this / apfloat (d); return *this; }
    apfloat &operator/= (char *d) { *this = *this / apfloat (d); return *this; }
    apfloat &operator= (int d) { *this = apfloat (d); return *this; }
    apfloat &operator= (unsigned d) { *this = apfloat (d); return *this; }
    apfloat &operator= (long d) { *this = apfloat (d); return *this; }
    apfloat &operator= (unsigned long d) { *this = apfloat (d); return *this; }
    apfloat &operator= (double d) { *this = apfloat (d); return *this; }
    apfloat &operator= (char *d) { *this = apfloat (d); return *this; }

    // Other functions
    int sign (void) const;
    void sign (int newsign);
    long exp (void) const;
    void exp (long newexp);
    size_t prec (void) const;
    void prec (size_t newprec);
    int location (void) const;
    void location (int newlocation);
    void unique (void);
    void swapfrom (const char *filename);
    void swapto (const char *filename);

    // Commont to all apfloats
    static bool prettyprint;

    // Implementation
    apstruct *ap;
};


inline apfloat::apfloat ()
{
    ap = 0;
}


inline apfloat::apfloat (apstruct *d)
{
    ap = d;
}


// Overloaded mathematical functions

apfloat pow (apfloat base, unsigned long exp);
apfloat pow (apfloat base, unsigned exp);
apfloat pow (apfloat base, long exp);
apfloat pow (apfloat base, int exp);
apfloat sqrt (apfloat x);
apfloat cbrt (apfloat x);
apfloat root (apfloat x, unsigned n);
apfloat invroot (apfloat u, unsigned n, size_t destprec = (size_t) DEFAULT, apfloat initguess = apfloat (), size_t initprec = (size_t) DEFAULT);
apfloat floor (apfloat x);
apfloat ceil (apfloat x);
apfloat abs (apfloat x);
apfloat modf (apfloat x, apfloat *ipart);
apfloat fmod (apfloat x, apfloat y);
apfloat pi (size_t destprec, apfloat *LT = 0, apfloat *LQ = 0, apfloat *LP = 0, apfloat *iroot = 0, size_t *terms = 0);
apfloat agm (apfloat a, apfloat b);
void checkpi (size_t destprec);
void checklogconst (size_t destprec);
apfloat rawlog (apfloat x);
apfloat log (apfloat x);
apfloat exp (apfloat u);
apfloat pow (apfloat x, apfloat y);
apfloat acosh (apfloat x);
apfloat asinh (apfloat x);
apfloat atanh (apfloat x);
apfloat cosh (apfloat x);
apfloat sinh (apfloat x);
apfloat tanh (apfloat x);

// More trigonometric functions are defined in apcplx.h

// Constants needed for log & exp
extern apfloat Readypi;
extern apfloat Logbase;


// Functions in apfloat.cpp

std::ostream &pretty (std::ostream &str);


#endif  // __APFLOAT_H

⌨️ 快捷键说明

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