Location : Home > Languages > Perl > Package Title : Math::BigInt::Constant |
![]() |
Math::BigInt::Constant - 任意の大きさの整数定数
use Math::BigInt::Constant; my $class = 'Math::BigInt::Constant'; # 定数の生成 $x = $class->new($str); # デフォルトは 0 $nan = $class->bnan(); # NotANumber を生成 $zero = $class->bzero(); # "0" を生成 $one = $class->bone(); # "1" を生成 $m_one = $class->bone('-'); # "-1" を生成 # テスト $x->is_zero(); # 引数が 0 か否かを返す。 $x->is_nan(); # 引数が NaN か否かを返す。 $x->is_one(); # 引数が +1 であれば true を返す。 $x->is_one('-'); # 引数が -1 であれば true を返す。 $x->is_odd(); # 奇数であれば true を、偶数であれば false を返す。 $x->is_even(); # 偶数であれば true を、奇数であれば false を返す。 $x->is_inf($sign); # 引数 ('+' または '-') で指定されいる符号の一致まで含めて引数が +inf または -inf であれば true を返す。 $x->is_pos(); # 引数が > 0 であれば true を返す。 $x->is_neg(); # 引数が < 0 であれば true を返す。 $x->bcmp($y); # 数の比較 (undef, <0, =0, >0) $x->bacmp($y); # 絶対値の比較 (undef, <0, =0, >0) $x->sign(); # +, -, +inf, -inf, NaN のいずれかの符号を返す。 # 以下の例は修正時に使う。もし異常があれば落ちる。 # 設定 $x->bzero(); # $x を 0 に設定 $x->bnan(); # $x を NaN に設定 $x->bneg(); # 符号反転 $x->babs(); # 絶対値 $x->bnorm(); # 正規化 (no-op) $x->bnot(); # 2の補数(2進計算で Not) $x->binc(); # x に 1 ずつ値を増やす $x->bdec(); # x から ずつ値を減らす $x->badd($y); # 加算($x に $y を加える) $x->bsub($y); # 減算($x から $y を減じる) $x->bmul($y); # 乗算($x に $y を乗じる) $x->bdiv($y); # 除算: $x に商を設定する。 # (quo,rem)を返すが、スカラであれば quo を返す。 $x->bmod($y); # 法 (x % y) $x->bpow($y); # べき乗 (x ** y) $x->blsft($y); # 左シフト $x->brsft($y); # 右シフト $x->band($y); # 2進計算で and $x->bior($y); # 2進計算で inclusive or $x->bxor($y); # 2進計算で exclusive or $x->bnot(); # 2進計算で not (2の補数) $x->bsqrt(); # 平方根を計算 $x->broot($y); # $y の根を計算 $x->blog($base); # 整数対数 $x->round($A,$P,$round_mode); # モード $r を用いて丸め $x->bround($N); # $N 字を保持して丸め $x->bfround($N); # $N 桁目の値に丸めるが BigInts に対しては何もしない # BigInt では引数を変化させない $x->bfloor(); # $x に等しいか小さい整数を返す。 $x->bceil(); # $x に等しいか大きい整数を返す。 bgcd(@values); # 最大公約数 blcm(@values); # 最小公倍数 $x->bstr(); # 正規化された文字列を返す。 $x->bsstr(); # 科学的記法における文字列を返す。 $x->length(); # 数値の字数を返す。 $x->digit($n); # 数値から N 番目の数を抽出する。 $x->as_int(); # オブジェクトのコピーを BigInt として返す。 $x->as_hex(); # 16進数文字列(hex string)として返す。 $x->as_bin(); # 2進数文字列として返す。
本モジュールを用いて per-object の BigInt 整数を定義できる。通常の use Math::BigInt ':constant' ではプログラム内のあらゆる整数定数を定義することはできるが、こっそりと定義したり文字列のように扱うことも 1e5 のような浮動小数点を定義することもできない。
Math::BigInt::Constant は Math::BigInt の真のサブクラスであり、オブジェクトを変更する以外の全てが実行できる。
use constant を通じてコンパイル時に確認する。
use Math::BigInt; use constant X => Math::BigInt->new("12345678"); print X," ",X+2,"\n"; # OK print "X\n"; # oups X += 2; # 落ちる。
これらは実行時に確認され、文字列に変換される。
use Math::BigInt::Constant; $x = Math::BigInt::Constant->new("3141592"); print "$x\n"; # OK print $x+2,"\n"; # dito $x += 2; # 落ちる。
まだ発見されていない。
(c) by Tels, http://bloodgate.com/ 2001 - 2006.
![]() |
Updated : 2007/02/25 |