品質管理

Mathematica の品質管理の一環として,いずれのバージョンにおいても,各機能について長期に渡り厳重な検査が行われる.検査作業のほとんどは Mathematica 言語で書かれた自動検査システムを使い実施される.

自動検査システムにより,数百万に及ぶ入力が Mathematica に与えられ,また,返ってくる出力が正確なものかどうか自動的に検査される.ただし,計算させる式や処理する命令によっては微妙な問題を含むため,自動判定が不可能なことがあり,そのようなときは検査結果を見直す必要が出てくる.例えば,擬似乱数発生アルゴリズムは毎回違う結果を当然出してくる.また,機械精度で演算をするとき,コンピュータの機種が変わると結果が微妙にずれることもある.このため,判定作業は,このような違いをどう吸収するかという難しい問題を含んでいる.

自動システムにおいて,検査に使われる入力は次の種類のものがある.

  • Mathematica の各組込み関数を参照する式で,普通の使い方と特殊な使い方を代表する入力.
  • 内部コードの特徴を行使する入力.
  • Mathematica ドキュメントシステムの全例題,および Mathematica の他の参考書にある例題.
  • テストは数学ベンチマークおよび多くのWebサイトからのテストセット.
  • 標準的な数値表から光学スキャナで取り込まれた検査用の入力データ.
  • 標準的な数学の公式集にある式.
  • 教科書の演習問題.
  • 関数を対(IntegrateDFactorExpand等)で検査するためにランダムに生成された式.
  • 検査過程において,計算の答のみならず補助的な情報である出力メッセージや使ったメモリ量や計算スピードも自動システムでチェックされる.

    さらに,特別仕様の Mathematica バージョンが作られ,プログラム内部で処理的に矛盾がないか入念に検査がなされる.この特別バージョンは製品バージョンに比べ数割の処理スピードでしか動かないが,その代り,計算処理のひとつひとつのステップにおいてメモリ状態に矛盾がないかや,割り込みが可能かどうか計算状態の詳細なチェックをしてくれる.

    特別バージョンでは,さらに,コードのどの部分がアクセスされたか逐一記録されるので,内部関数の検査漏れがないかも確認できる仕組みになっている.

    コンピュータシステムへの依存がないように,Mathematica の現行バージョンは,それがサポートされるすべてのコンピュータシステムでルーチン的な検査を受ける.システムのスピードにもよるが,この作業は,通常,数時間から数日のコンピュータ時間がかかる.

    大掛かりな検査を繰り返しても,Mathematica 自体の複雑さも手伝い,完全にエラーを根絶することは至難である.

    Mathematica の正確さは非常に高く,その正確性は,よく知られる数学問題の証明より数段上をいくものである.それでも,一般に,非常に長い証明問題で何年も間違いが見付けられないことがあるように,Mathematica のような非常に複雑なソフトウェアでは,誤りがあったとしても,なかなか発見されない場合もある.

    誤りが残ったとしても,十分な検査をこなしているので,ユーザが Mathematica を使っていて,実際にそれを見付ける確率は非常に小さい.

    計算をしていて予期しないエラーが発生したり,期待していなかった答が返されてきたときは,Mathematica システム自体の内部コードを問題にする前に,入力間違いや Mathematica の機能の解釈間違いがないかどうかを確認してほしい.

    確認後もMathematica の誤動作が続くようなら,今後のバージョンで誤作動が解決されるようにWolfram Researchのテクニカルサポート部まで連絡していただきたい.

    New to Mathematica? Find your learning path »
    Have a question? Ask support »