[ << ] | [ < ] | [上] | [ > ] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
0
有理数
有理数は, 任意多倍長整数 (bignum) により実現されている. 有理数は常に
既約分数で表現される.
1
倍精度浮動小数
マシンの提供する倍精度浮動小数である. Asir の起動時には,
通常の形式で入力された浮動小数はこの型に変換される. ただし,
ctrl()
により bigfloat が選択されている場合には
bigfloat に変換される.
[0] 1.2; 1.2 [1] 1.2e-1000; 0 [2] ctrl("bigfloat",1); 1 [3] 1.2e-1000; 1.20000000000000000513 E-1000
倍精度浮動小数と有理数の演算は, 有理数が浮動小数に変換されて, 浮動小数として演算される.
2
代数的数
See section 代数的数に関する演算.
3
bigfloat
bigfloat は, Asir では MPFR ライブラリにより
実現されている. MPFR においては, bigfloat は, 仮数部
のみ任意多倍長で, 指数部は 64bit 整数である.
ctrl()
で bigfloat を選択することにより, 以後の浮動小数
の入力は bigfloat として扱われる. 精度はデフォルトでは
10 進 9 桁程度であるが, setprec()
, setbprec()
により指定可能である.
[0] ctrl("bigfloat",1); 1 [1] eval(2^(1/2)); 1.4142135623731 [2] setprec(100); 15 [3] eval(2^(1/2)); 1.41421356237309504880168872420969807856967187537694...764157 [4] setbprec(100); 332 [5] 1.41421356237309504880168872421
eval()
は, 引数に含まれる函数値を可能な限り数値化する函数である.
setbprec()
で指定された2 進桁数は, 丸めモードに応じた結果の精度を保証する. setprec()
で指定される10進桁数は 2 進桁数に変換されて設定される.
(See section eval
, deval
.)
4
複素数
複素数は, 有理数, 倍精度浮動小数, bigfloat を実部, 虚部として
a+b*@i
(@i は虚数単位) として与えられる数である. 実部, 虚部は
それぞれ real()
, imag()
で取り出せる.
5
小標数の有限素体の元
ここで言う小標数とは, 標数が 2^27 未満のもののことである. このような有限
体は, 現在のところグレブナ基底計算において内部的に用いられ, 有限体係数の
分散表現多項式の係数を取り出すことで得られる. それ自身は属する有限体に関
する情報は持たず, setmod()
で設定されている素数 p を用いて
GF(p) 上での演算が適用される.
6
大標数の有限素体の元
標数として任意の素数がとれる.
この型の数は, 整数に対しsimp_ff
を適用することにより得られる.
7
標数 2 の有限体の元
標数 2 の任意の有限体の元を表現する. 標数 2 の有限体 F は, 拡大次数
[F:GF(2)] を n とすれば, GF(2) 上既約な n 次多項式 f(t) により
F=GF(2)[t]/(f(t)) とあらわされる. さらに, GF(2)[t] の元 g は, f(t)
も含めて自然な仕方でビット列とみなされるため, 形式上は, F の元
g mod f は, g, f をあらわす 2 つのビット列で表現することができる.
F の元を入力するいくつかの方法が用意されている.
@
@
はその後ろに数字, 文字を伴って, ヒストリや特殊な数をあらわすが,
単独で現れた場合には, F=GF(2)[t]/(f(t)) における t mod f をあらわす.
よって, @ の多項式として F の元を入力できる. (@^10+@+1 など)
ptogf2n
ptogf2n
により対応する F の元に変換する.
ntogf2n
その他
simp_ff
により変換できる.
8
位数 p^n の有限体の元
位数が p^n (p は任意の素数, n は正整数) は,
標数 p および GF(p) 上既約な n 次多項式 m(x)
を setmod_ff
により指定することにより設定する.
この体の元は m(x) を法とする GF(p) 上の多項式として
表現される.
9
位数 p^n の有限体の元 (小位数)
位数が p^n の有限体 (p^n が 2^29 以下, p が 2^14 以上
なら n は 1) は,
標数 p および拡大次数 n
を setmod_ff
により指定することにより設定する.
この体の 0 でない元は, p が 2^14 未満の場合,
GF(p^n) の乗法群の生成元を固定すること
により, この元のべきとして表される. これにより, この体の 0 でない元
は, このべき指数として表現される. p が 2^14 以上
の場合は通常の剰余による表現となるが, 共通のプログラムで
双方の場合を扱えるようにこのような仕様となっている.
10
位数 p^n の小位数有限体の代数拡大の元
前項の, 位数が p^n の小位数有限体の m 次拡大の元である.
標数 p および拡大次数 n, m
を setmod_ff
により指定することにより設定する. 基礎体上の m
次既約多項式が自動生成され, その代数拡大の生成元の定義多項式として用いられる.
生成元は @s
である.
11
分散表現の代数的数
See section 代数的数に関する演算.
小標数有限素体以外の有限体は setmod_ff
で設定する.
有限体の元どうしの演算では,
一方が有理数の場合には, その有理数は自動的に現在設定されている
有限体の元に変換され, 演算が行われる.
[ << ] | [ < ] | [上] | [ > ] | [ >> ] |
この文書は12月 21, 2024にtexi2html 5.0を用いて生成されました。