Go to the first, previous, next, last section, table of contents.

## 添付のユーザ定義函数ファイル

標準ライブラリディレクトリ (デフォルトでは ``/usr/local/lib/asir'`) には いくつかのユーザ定義函数ファイルがおかれている. これらのうちの主なものについて 説明する.

``fff'`
  大標数素体および標数 2 の有限体上の一変数多項式因数分解 (See section 有限体に関する演算.)
``gr'`
  グレブナ基底計算パッケージ. (See section グレブナ基底の計算.)
``sp'`
  代数的数の演算および因数分解, 最小分解体. (See section 代数的数に関する演算.)
``alpi'`
``bgk'`
``cyclic'`
``katsura'`
``kimura'`
  グレブナ基底計算において, ベンチマークその他で用いられる例. (See section `katsura`, `hkatsura`, `cyclic`, `hcyclic`.)
``defs.h'`
  いくつかのマクロ定義. (See section プリプロセッサ.)
``fctrtest'`
  整数上の多項式の因数分解のテスト. REDUCE の ``factor.tst'` および 重複度の大きいいくつかの例を含む. これは, `load()` すると 直ちに計算が始まる. 入手した Asir が正しく動作しているかの テストにも使うことができる.
``fctrdata'`
  ``fctrtest'` で使われている例を含む, 因数分解テスト用の例. `Alg[]` に収められている例は, `af()` (section `asq`, `af`, `af_noalg`) 用の例である.

      [45] load("sp")$
      [84] load("fctrdata")$
      [175] cputime(1)$
      0msec
      [176] Alg[5];
      x^9-15*x^6-87*x^3-125
      0msec
      [177] af(Alg[5],[newalg(Alg[5])]);
      [[1,1],[75*x^2+(10*#0^7-175*#0^4-470*#0)*x
      +(3*#0^8-45*#0^5-261*#0^2),1],
      [75*x^2+(-10*#0^7+175*#0^4+395*#0)*x
      +(3*#0^8-45*#0^5-261*#0^2),1],
      [25*x^2+(25*#0)*x+(#0^8-15*#0^5-87*#0^2),1],
      [x^2+(#0)*x+(#0^2),1],[x+(-#0),1]]
      3.600sec + gc : 1.040sec

``ifplot'`
  描画 (section `ifplot`, `conplot`, `plot`, `polarplot`, `plotover`) のための例. `IS[]` には有名な 曲線の例, 変数 `H, D, C, S` にはトランプのハート, ダイヤ, クラブ, スペード (らしき) 曲線の例が入っている.
``num'`
  数に関する簡単な演算函数の例.
``mat'`
  行列に関する簡単な演算函数の例.
``ratint'`
  有理函数の不定積分. ``sp'`, ``gr'` が必要. `ratint()` という 函数が定義されているが, その返す結果はやや複雑である. 例で説明する.

      [0] load("gr")$
      [45] load("sp")$
      [84] load("ratint")$
      [102] ratint(x^6/(x^5+x+1),x);
      [1/2*x^2,
      [[(#2)*log(-140*x+(-2737*#2^2+552*#2-131)),
      161*t#2^3-23*t#2^2+15*t#2-1],
      [(#1)*log(-5*x+(-21*#1-4)),21*t#1^2+3*t#1+1]]]

  この例では, `x^6/(x^5+x+1)` の不定積分の計算を行っている. 結果は 2 つの要素からなるリストで, 第 1 要素は不定積分の有理部分, 第 2 要素は対数部分を表す. 対数部分は更にリストとなっていて, 各要素は, `[root*log(poly),defpoly]` という形をしている. これは, 不定積分に おいては, `defpoly` の全ての根 `root` に対して `root*log(poly)` を作りそれらを足し合わせるという意味である. ここで `poly` は `root` を含んでいて, `root` を入れ替える場合には `poly` に対しても同じ操作を行うものとする. この操作を, 結果の第 2 要素の 各成分に対して行って, 全てを足し合わせたものが対数部分となる.
``primdec'`
  有理数体上の多項式イデアルの準素イデアル分解とその根基の素イデアル分解 (see section `primadec`, `primedec`).
``primdec_mod'`
  有限体上の多項式イデアルの根基の素イデアル分解 (see section `primedec_mod`).
``bfct'`
  b 関数の計算. (see section `bfunction`, `bfct`, `generic_bfct`, `ann`, `ann0`).

Go to the first, previous, next, last section, table of contents.