| 開発者 | ロバート・H・ルイス |
|---|---|
| 安定リリース | 6.5 / 2021年6月25日 |
| 書かれた | C |
| オペレーティング·システム | macOS、クラシックMac OS、Linux、Unix、Windows |
| タイプ | コンピュータ代数システム |
| ライセンス | フリーウェア、GPL 2018年8月4日より |
| Webサイト | ホーム |
フェルマー(ピエール・ド・フェルマーにちなんで名付けられた)は、フォーダム大学のロバート・H・ルイス教授が開発したプログラムです。フェルマーはコンピュータ代数システムであり、計算対象として整数(任意のサイズ)、有理数、実数、複素数、モジュラー数、有限体元、多変数多項式、有理関数、または他の多項式を法とする多項式を使用できます。主な応用分野は、多変数有理関数演算と、多変数多項式または有理関数の環上の行列代数です。フェルマーは、超越関数の簡約や記号積分は行いません。
Fermat とのセッションは通常、有理数またはモジュラー「モード」を選択して、基底体(または基底環)をまたはとして確立することから始まります。この上に任意の数の記号変数を付加して、多項式環とその商体を作成できます。さらに、の一部を含むいくつかの多項式を選択して、 でモッドアウトし、商環 を作成することもできます。最後に、ローラン多項式、つまり負の指数と正の指数を持つ多項式 を許可することができます。このようにして計算環が確立されると、すべての計算はこの環の要素に対して行われます。計算環は、セッションの後半で変更できます。
高度に再帰的に相互に呼び出す多項式 gcd プロシージャは、約 7000 行のコード です。
Fermat には、部分行列、疎行列、行列式、正規化、列削減、行階段、スミス正規形、逆行列など、配列と行列の操作のための広範な組み込みプリミティブがあります。これは、特に多変数多項式gcdにおいて、いくつかのよく知られたコンピュータ代数システムよりも一貫して高速です。また、スペース効率も優れています。
Fermat の基本的なデータ項目は、多変数有理関数または quolynomial です。分子と分母は、共通因数を持たない多項式です。多項式は、単項式のリストとして多項式を実装する一部のシステムとは異なり、一般的なリンク リストとして再帰的に実装されます。(ほとんどの) 有限体を実装するには、ユーザーは、たとえば記号変数内の既約単項多項式を見つけ、それによって mod するように Fermat に命令します。これは、再帰的に継続される場合があります。この新しく作成された基底体上の算術演算と gcd を容易にするために、低レベルのデータ構造が設定されます。2つの特別なフィールドおよび は、ビット レベルでより効率的に実装されます。
歴史
Windows 10 では、Bogdan Radu のおかげで、Fermat Linux を Windows 上でネイティブに実行できるようになりました (2021 年 5 月)。メインの Web ページ http://home.bway.net/lewis を参照してください。
Fermat は 2020 年 5 月 20 日に最終更新されました (Mac および Linux、最新の Windows バージョン: 2011 年 11 月 1 日)。
FFermat (Float Fermat) と呼ばれる以前のバージョンでは、基本的な数値型は18 桁の浮動小数点数です。このバージョンでは数値計算技術が使用可能で、広範なグラフィックス機能を備えていますが、高度な多項式 gcd アルゴリズムはなく、Mac OS 9 でのみ使用できます。
Fermat は、もともとDEC VAX用にPascalで書かれ、その後1985 年から1996 年にかけてクラシック Mac OS用に書かれました。1998 年にMicrosoft Windowsに移植されました。2003 年にCに翻訳され、 Linux (Intel マシン) とUnix (Sparc/Sun)に移植されました。これは約 98,000 行の C コードです。
FFermat および (古い) Windows Fermat Pascalソース コードは、制限付きライセンスの下で一般に公開されています。
このマニュアルは、2011 年 7 月 25 日に大幅に改訂および更新されました (最新の小規模改訂は 2016 年 6 月、さらに 2020 年 3 月 25 日に改訂されたようです)。
参照
外部リンク
- 公式サイト
- Windows フェルマー パスカル ソースコード
- 浮動小数点フェルマーパスカルソースコード
- academia.edu の Robert H. Lewis
