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`).

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