LongInterval

精度保証付き多倍長区間クラスです。 int, LongFloat, LongMatrix, LongInterval, LongIntervalMatrix と、相互に四則演算・比較演算・代入演算が行えます。 ただし、数学的に不可能な計算(スカラーに行列を代入するなど)は行えません。

コンストラクタ

LongInterval()値は不定。
LongInterval(int x)
LongInterval(double x)
LongInterval(const LongFloat &x)
LongInterval(const LongInterval &x)
x で初期化する。
LongInterval(std::string s)文字列 s で表される値を含む区間で初期化する。
例 : "123.456e-789"
LongInterval(int mid, int rad)
LongInterval(int mid, const LongFloat &rad)
LongInterval(const LongFloat &mid, int rad)
LongInterval(const LongFloat &mid, const LongFloat &rad)
中心値を mid 、半径を rad で初期化する。

メンバ関数

void setDouble(double x)中心値を x 、半径を 0 にする。
void setString(std::string s)文字列 s で表される値を含む区間にする。
例 : "123.456e-789"
void setMidRad(int mid, int rad)
void setMidRad(int mid, const LongFloat &rad)
void setMidRad(const LongFloat &mid, int rad)
void setMidRad(const LongFloat &mid, const LongFloat &rad)
中心値を mid 、半径を rad にする。
double getDouble()中心値の double での近似値を取得する。
std::string getMidRad()中心値と半径を表す文字列を取得する。
std::string getInfSup()下端と上端を表す文字列を取得する。
std::string getInternalData()内部データを表す文字列を取得する。主にデバッグ用の関数である。
LongFloat mid()中心値を取得する。
LongFloat rad()半径を取得する。
LongFloat diam()直径を取得する。
LongFloat inf()下端を取得する。
LongFloat sup()上端を取得する。
LongFloat mig()最小絶対値を取得する。
LongFloat mag()最大絶対値を取得する。
int contains(int x)
int contains(const LongFloat &x)
int contains(const LongInterval &x)
区間が x を含むか判定する。
含むなら 1 、含まないなら 0 、不明なら -1 を返す。
区間の境界に重なっている場合、含まないとする。
int containsEqual(int x)
int containsEqual(const LongFloat &x)
int containsEqual(const LongInterval &x)
区間が x を含むか判定する。
含むなら 1 、含まないなら 0 、不明なら -1 を返す。
区間の境界に重なっている場合、含むとする。

非メンバ関数

LongInterval pow(const LongInterval &x, int n)x の n 乗を取得する。
LongInterval sqrt(const LongInterval &x)x の平方根を取得する。