(57)【要約】【課題】電子反発積分の積和演算を効率良く実行し、電子反発積分の計算の高速化を図る。【解決手段】管理プロセッサ１０はパラメータｍ＝αに対応するグループ内の初期積分の計算に必要なデータを、メモリ２０から読み出す。管理プロセッサ１０は３つの積和演算器３０の中から積和演算器３０［α］を選択する。管理プロセッサ１０は選択した積和演算器３０［α］に、読み出したデータを送る。積和演算器３０［０］ではパラメータｍ＝０に対応するグループ内の初期積分の計算が順次実行される。積和演算器３０［１］ではパラメータｍ＝１に対応するグループ内の初期積分の計算が順次実行される。積和演算器３０［２］ではパラメータｍ＝２に対応するグループ内の初期積分の計算が順次実行される。【選択図】図８
2008242618.tif 000002
【特許請求の範囲】
【請求項１】
電子反発積分を計算する上で必要となる複数種類の初期積分を計算することが可能な電子反発積分演算装置であって、
複数の積和演算器と、
前記複数の積和演算器の動作を管理する管理プロセッサと、
を備え、
前記複数種類の初期積分を、パラメータｍ及びその他複数のパラメータを含む所定の積和演算式を用い、各パラメータに所望の値を代入して、計算によりそれぞれ求める際に、
前記パラメータに代入する値によって、求められる初期積分の値に上位，下位の従属関係が存在し、
前記複数種類の初期積分を、前記パラメータｍとして代入し得る０以上ｉ（ｉは、計算すべき前記電子反発積分に関わる縮約軌道の軌道量子数の総和）以下の整数の値によって、ｉ＋１個のグループに区分したときに、同一のグループ内でのみ、前記従属関係により、下位の初期積分の値を用いて、上位の初期積分の値を計算により求めることが可能である場合に、
前記管理プロセッサは、
前記複数種類の初期積分の計算を、前記複数の積和演算器に、前記グループ単位で振り分け、同一グループに属する初期積分の計算は、同じ積和演算器で実行させることを特徴とする電子反発積分演算装置。
【請求項２】
請求項１に記載の電子反発積分演算装置において、
前記その他複数のパラメータは、パラメータｇa，ｇb，Ｇab，ｇc，ｇd，Ｇcdを含んでおり、
前記所定の積和演算式は、下式で表されることを特徴とする電子反発積分演算装置。
【数１】
2008242618.tif 000021
但し、ζPa，ζPb，ζPc，ζPdは、縮約軌道の軌道因子であり、ｆ（ｍ）は、パラメータｍの関数である。
【請求項３】
電子反発積分を計算する上で必要となる複数種類の初期積分を計算するための初期積分演算方法であって、
前記複数種類の初期積分を、パラメータｍ及びその他複数のパラメータを含む所定の積和演算式を用い、各パラメータに所望の値を代入して、計算によりそれぞれ求める際に、
前記パラメータに代入する値によって、求められる初期積分の値に上位，下位の従属関係が存在し、
前記複数種類の初期積分を、前記パラメータｍとして代入し得る０以上ｉ（ｉは、計算すべき前記電子反発積分に関わる縮約軌道の軌道量子数の総和）以下の整数の値によって、ｉ＋１個のグループに区分したときに、同一のグループ内でのみ、前記従属関係により、下位の初期積分の値を用いて、上位の初期積分の値を計算により求めることが可能である場合に、
前記初期積分演算方法は、
（ａ）複数の積和演算器を用意する工程と、
（ｂ）前記複数種類の初期積分の計算を、前記複数の積和演算器に、前記グループ単位で振り分け、同一グループに属する初期積分の計算は、同じ積和演算器で実行させる工程と、
を備えることを特徴とする初期積分演算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子反発積分演算装置及び初期積分計算方法に関するものである。
【背景技術】
【０００２】
電子反発積分を効率良く高速計算する手法として、例えば、非特許文献１に記載の手法が提案されている。この手法は、縮約ガウス関数を基底関数に用いた分子積分（「縮約積分」とも呼ぶ。）の一般漸化表式に基づく漸化計算法を使用して、電子反発積分を計算するものである。
【０００３】
また、この種の関連する技術としては、例えば、特許文献１，２に記載のものが知られている。
【０００４】
【非特許文献１】本田宏明，小原繁「縮約ガウス関数にもとづく分子積分の計算法」J.Comput.Chem.Jpn., Vol.4, No4, pp.165-174(2005)
【特許文献１】特開平１１−７４３８号公報
【特許文献２】特開２００５−１５７８７６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記手法による電子反発積分の計算では、漸化計算において実行される膨大な数の積和演算が発生し、これらの積和演算を如何にして効率よく実行するかが、電子反発積分の計算を高速に実行するための課題のひとつとなる。
【０００６】
そこで、本発明は、上記した課題を解決するためになされたものであり、電子反発積分の積和演算を効率良く実行し、電子反発積分の計算の高速化を図ることが可能な技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記した目的の少なくとも一部を達成するために、本発明の電子反発積分演算装置は、電子反発積分を計算する上で必要となる複数種類の初期積分を計算することが可能な電子反発積分演算装置であって、複数の積和演算器と、前記複数の積和演算器の動作を管理する管理プロセッサと、を備え、前記複数種類の初期積分を、パラメータｍ及びその他複数のパラメータを含む所定の積和演算式を用い、各パラメータに所望の値を代入して、計算によりそれぞれ求める際に、前記パラメータに代入する値によって、求められる初期積分の値に上位，下位の従属関係が存在し、前記複数種類の初期積分を、前記パラメータｍとして代入し得る０以上ｉ（ｉは、計算すべき前記電子反発積分に関わる縮約軌道の軌道量子数の総和）以下の整数の値によって、ｉ＋１個のグループに区分したときに、同一のグループ内でのみ、前記従属関係により、下位の初期積分の値を用いて、上位の初期積分の値を計算により求めることが可能である場合に、前記管理プロセッサは、前記複数種類の初期積分の計算を、前記複数の積和演算器に、前記グループ単位で振り分け、同一グループに属する初期積分の計算は、同じ積和演算器で実行させることを要旨としています。
【０００８】
このように、本発明の電子反発積分演算装置では、複数種類の初期積分をパラメータｍに基づいてグループに区分したときに、同一のグループ内では、従属関係によって、下位の初期積分の値を用いて、上位の初期積分の値を計算により求めることが可能である場合に、複数種類の初期積分の計算を、複数の積和演算器に、そのグループ単位で振り分けて、それら同一グループに属する初期積分の計算を、同じ積和演算器で実行させるようにしている。
【０００９】
従って、本発明の電子反発積分演算装置によれば、同じグループに属する初期積分の計算を、上記従属関係を利用して、１つの積和演算器で実行させているため、積和演算を含む初期積分の計算を効率よく実行することができる。また、異なるグループに属する初期積分の計算を、複数の積和演算器で並行して行うことができるので、初期積分の計算を全体として高速に行うことができる。よって、電子反発積分の計算の高速化を図ることができる。
【００１０】
本発明の電子反発積分演算装置において、前記その他複数のパラメータは、パラメータｇa，ｇb，Ｇab，ｇc，ｇd，Ｇcdを含んでおり、前記所定の積和演算式は、下式で表されることが好ましい。
【数２】
2008242618.tif 000003
但し、ζPa，ζPb，ζPc，ζPdは、縮約軌道の軌道因子であり、ｆ（ｍ）は、パラメータｍの関数である。
【００１１】
このような積和演算式を用いた場合、複数種類の初期積分をパラメータｍに基づいてグループに区分したときに、同一グループ内において、上述したような、上位，下位の従属関係が存在し、下位の初期積分の値を用いて、上位の初期積分の値を計算により求めることが可能となる。
【００１２】
なお、本発明は、上記した電子反発積分演算装置などの装置発明の態様に限ることなく、初期積分演算方法などの方法発明としての態様で実現することも可能である。
【発明を実施するための最良の形態】
【００１３】
Ａ．電子反発積分計算手順：
Ａ１．概要説明：
まず、本発明の前提として、縮約ガウス関数を基底関数に用いた分子積分の一般漸化表式と、これに基づく漸化計算法を使用して電子反発積分を計算する手順と、を簡単に説明する。なお、一般漸化表式および計算手順の具体的な説明は、上記非特許文献１に記載されている。
【００１４】
電子反発積分は、以下の（１）式で表される。また、（１）式は（２）式および（３）式に展開される。
【００１５】
【数３】
2008242618.tif 000004
【数４】
2008242618.tif 000005
【００１６】
上記（１）式の左辺の＜ａｂｃｄ＞は、縮約ガウス関数としてのハイパーガウス関数Φで表された４つの縮約軌道Φ（ｒ１，ａ），Φ（ｒ１，ｂ），Φ（ｒ２，ｃ），Φ（ｒ２，ｄ）を用いた積分（「縮約積分」と呼ばれる。）による電子反発積分を表す。ａ，ｂ，ｃ，ｄは、各縮約軌道の軌道量子数を表す。また、ｒ１，ｒ２は２つの電子（電子１，２）の座標を表す。
【００１７】
また、上記（２）式は、（１）式の縮約積分を展開した式を示している。Ｐａ，Ｐｂ，Ｐｃ，Ｐｄは各縮約軌道を示すインデックスを表す。ｕPa，ｕPb，ｕPc，ｕPdは各縮約軌道の展開係数を表し、ｎa，ｎb，ｎc，ｎdは各縮約軌道の展開項数を表す。［ａｂｃｄ］は、（３）式に示すように、原始ガウス関数φで表された４つの原始軌道φ（ｒ１，ａ），φ（ｒ１，ｂ），φ（ｒ２，ｃ），φ（ｒ２，ｄ）を用いた電子反発積分（「原始積分」と呼ばれる。）を表す。
【００１８】
なお、軌道量子数は、ハイパーガウス関数Φの角運動量インデックスの３成分（ｘ成分，ｙ成分，ｚ成分）の和であり、軌道量子数が０，１，２，３，・・・の軌道は、それぞれｓ軌道，ｐ軌道，ｄ軌道，ｆ軌道，・・・と呼ばれる。そこで、電子反発積分＜ａｂｃｄ＞は、具体的には、ａ，ｂ，ｃ，ｄの各軌道量子数が表す軌道を用いて、例えば、＜ｓｓｓｓ＞，＜ｐｐｓｓ＞，＜ｐｓｐｓ＞，＜ｐｐｐｐ＞，＜ｄｄｓｓ＞，＜ｄｄｐｐ＞，＜ｄｄｄｄ＞，・・・のように表記される。ただし、ｓ軌道の軌道量子数は０であるので、ｓを「０」として、例えば、＜ｓｓｓｓ＞は＜００００＞、＜ｐｓｐｓ＞は＜ｐ０ｐ０＞あるいは＜１０１０＞のように表記されることもある。
【００１９】
上記した電子反発積分＜ａｂｃｄ＞は、４つの縮約軌道の軌道量子数ａ，ｂ，ｃ，ｄの増減に関する２種類の漸化関係を満足する。一方の漸化関係は通常「垂直関係」と呼ばれており、以下の（４）式で表現される。また、他方の漸化関係は通常「水平関係」と呼ばれており、以下の（５）式で表現される。
【００２０】
【数５】
2008242618.tif 000006
【数６】
2008242618.tif 000007
【００２１】
上記（４）式の垂直関係および（５）式の水平関係は、以下の（６）式〜（９）式を用いて表現された補助電子反発積分＜ａｂｃｄ｜ｍｇaｇbＧabｇcｇdＧcd＞を使用して表記されている。なお、以下では、この補助電子反発積分を単に電子反発積分と呼ぶ場合もある。
【００２２】
【数７】
2008242618.tif 000008
【数８】
2008242618.tif 000009
【数９】
2008242618.tif 000010
【数１０】
2008242618.tif 000011
【００２３】
上記（６）式の７つのパラメータｍ，ｇa，ｇb，ｇc，ｇd，Ｇab，Ｇcdのうち、ｍは値ρの指数であって、０以上ｉ以下の整数の値を取り得る。但し、ｉは、縮約軌道の軌道量子数の総和である。ｇa，ｇb，ｇc，ｇdは各縮約軌道の軌道指数（軌道因子）ζPa，ζPb，ζPc，ζPdの指数である。Ｇabは（１／（ζPa＋ζPb））-1の指数であり、Ｇcdは（１／（ζPc＋ζPd））-1の指数である。（８）式のｕ12は２つの電子１，２の電子間相互作用演算子をラプラス変換で表したときの軌道因子である。
【００２４】
上記（４），（５）式の右辺は、７つのパラメータｍ，ｇa，ｇb，ｇc，ｇd，Ｇab，Ｇcdのうち増減があるパラメータについてのみ記述し、増減のないパラメータについては省略して表記されている。Ａ，Ｂ，Ｃ，Ｄは各縮約軌道を有する原子の座標であり、（Ｂ−Ａ），（Ａ−Ｂ），（Ｄ−Ｃ），（Ｃ−Ａ）は各原子間の座標差である。μは軌道ベクトルの３成分（ｘ成分，ｙ成分，ｚ成分）のいずれかを示す。ａμは軌道量子数ａのμ方向の成分を示す。
【００２５】
また、電子反発積分＜ａｂｃｄ｜ｍｇaｇbＧabｇcｇdＧcd＞の初期積分＜００００｜ｍｇaｇbＧabｇcｇdＧcd＞は、以下の（１０）式〜（１４）式で表される。なお、（１２）式に含まれるＦm（Ｔ）は誤差関数である。
【００２６】
【数１１】
2008242618.tif 000012
【数１２】
2008242618.tif 000013
【数１３】
2008242618.tif 000014
【数１４】
2008242618.tif 000015
【数１５】
2008242618.tif 000016
【００２７】
ここで、電子反発積分＜ａｂｃｄ＞は、上記したように、（５）式で示した水平関係を満足している。この（５）式を用いることにより、電子反発積分＜ａｂｃｄ＞を、軌道量子数ｂおよびｄが「０」になった中間積分＜ａ’０ｃ’０＞の積和演算で表された形に変換することができる。従って、中間積分＜ａ’０ｃ’０＞を用いた積和演算で表された電子反発積分＜ａｂｃｄ＞の式（以下、「水平演算式」とも呼ぶ。）に含まれる中間積分＜ａ’０ｃ’０＞の値がわかれば、電子反発積分＜ａｂｃｄ＞を求めることができる。
【００２８】
また、電子反発積分＜ａｂｃｄ＞は、上記したように、（４）式で示した垂直関係を満足している。この（４）式を用いることにより、水平演算式に含まれている中間積分＜ａ’０ｃ’０＞を、すべての軌道量子数が「０」になった初期積分＜００００＞を用いた積和演算で表された積分に変換することができる。従って、初期積分＜００００＞を用いた積和演算で表された中間積分＜ａ’０ｃ’０＞の式（以下、「垂直演算式」とも呼ぶ。）に含まれる初期積分＜００００＞の値がわかれば、中間積分＜ａ’０ｃ’０＞を求めることができる。
なお、初期積分＜００００＞は、上記（１０）式〜（１４）式により計算することができる。
【００２９】
Ａ２．具体例：
以下では、上記電子反発積分の計算手順について、電子反発積分＜ｐｐｓｓ＞を例に、さらに説明を加える。
【００３０】
電子反発積分＜ｐｐｓｓ＞（＝＜１a１b０c０d＞）では、ｄの軌道量子数は「０」であるが、ｂの軌道量子数は「１」であり「０」ではない。そこで、上記したように、（５）式の水平関係を使用すると、電子反発積分＜ｐｐｓｓ＞は以下の（１５）式で表される。
【００３１】
【数１６】
2008242618.tif 000017
【００３２】
なお、（１５）式においてμ，νは軌道ベクトルの３成分（ｘ成分，ｙ成分，ｚ成分）のいずれかを示しており、電子反発積分＜ｐｐｓｓ＞には、実際には＜ｐxｐxｓｓ＞，＜ｐxｐyｓｓ＞，＜ｐxｐzｓｓ＞，＜ｐyｐxｓｓ＞，・・・，＜ｐzｐyｓｓ＞，＜ｐzｐzｓｓ＞の９種類が存在する。
【００３３】
上記（１５）式において、右辺の中間積分＜ｄμνｓｓｓ＞（＝＜２a０b０c０d＞）および＜ｐμｓｓｓ＞（＝＜１a０b０c０d＞）は、ｂおよびｄの軌道量子数が「０」である。そこで、＜ｄμνｓｓｓ＞および＜ｐμｓｓｓ＞は、上記（４）式の垂直関係を使用して、初期積分＜００００＞を用いた積和演算とすることができる。具体的には、（４）式の垂直関係を使用して右辺に含まれる積分の軌道量子数の値を減らしていき、右辺に現れる積分の軌道量子数のすべてが「０」、すなわち、全ての積分が初期積分＜００００＞（＝＜ｓｓｓｓ＞）になるまで、この操作を繰り返す。
【００３４】
例えば、上記（１５）式の右辺第一項の＜ｄμνｓｓｓ＞は、以下の（１６）式のように表される。
【００３５】
【数１７】
2008242618.tif 000018
【００３６】
ここで、上記（１６）の右辺には、初期積分以外の＜ｐμｓｓｓ｜０  ０１１  ０００＞等が含まれるので、これらの中間積分に、さらに（４）式の垂直関係を適用し、右辺に現れる中間積分がすべて初期積分になるまで繰り返す。例えば、上記（１６）式の右辺第一項の＜ｐμｓｓｓ｜０  ０１１  ０００＞は、以下の（１７）式で表される。
【００３７】
【数１８】
2008242618.tif 000019
【００３８】
上記（１７）式の右辺に含まれる積分は全て＜ｓｓｓｓ＞、すなわち、初期積分である。これにより、上記（１６）式の第一項の中間積分は初期積分を用いた積和演算で表される。
なお、（１６）式の右辺の第二項〜第六項の中間積分も、同様にして初期積分を用いた積和演算で表される。
【００３９】
以上のようにして、上記（１５）式の右辺第一項の＜ｄμνｓｓｓ＞は、初期積分を用いた積和演算で表すことができる。
【００４０】
また、上記（１５）式の右辺第二項の＜ｐμｓｓｓ＞は、以下の（１８）式のように表される。
【００４１】
【数１９】
2008242618.tif 000020
【００４２】
上記（１８）式の右辺に含まれる積分は全て＜ｓｓｓｓ＞、すなわち、初期積分である。これにより、上記（１５）式の右辺第二項の＜ｐμｓｓｓ＞は、初期積分を用いた積和演算で表すことができる。
【００４３】
以上のように、上記（１５）式で表された電子反発積分＜ａｂｃｄ＞の右辺の中間積分は全て初期積分を用いた積和演算で表されることとなる。例えば、＜ｐｐｓｓ＞の場合は、１５種類の初期積分で表すことができる。図２は電子反発積分＜ｐｐｓｓ＞の場合の初期積分の一覧を示す説明図である。
【００４４】
これら初期積分は、上記（１０）式〜（１４）式を用いて計算することができる。このとき、以下の工夫により計算量を減らすことができる。
【００４５】
パラメータｇbの値（（１０）式中の縦線の右側三番目の数値）は図２（Ａ）に示した１５種類の初期積分（ｂ１〜ｂ１５）において、０，１，２の三通りの値となるが、どの値になるかは、（１０）式の最外側の総和（ΣPb）の計算の時にζPbの何乗を乗じるかによって決まるものである。従って、その内側の総和（ΣPa）の計算においては、ｇb＝０と見なすことができ、図２（Ｂ）に示すように１３種類の初期積分（ａ１〜ａ１３）を計算すればよいことになる。
【００４６】
同様に、さらにその内側の総和（ΣPd）においてはｇb＝ｇa＝Ｇab＝０と見なすことができ、図２（Ｃ）に示すように、６種類の初期積分（ｄ１〜ｄ６）を計算すればよい。また、最内側の総和（ΣPc）においてもｇb＝ｇa＝Ｇab＝ｇd＝０と見なすことができ、図２（Ｄ）に示すように、６種類の初期積分（ｃ１〜ｃ６）を計算すればよい。
【００４７】
さて、実際の計算は、上記したのと逆の順序で行われる。すなわち、まず、初期積分の計算に必要な各値（例えば、（１０）式のρ，Ｖ，（ζ＋ζ）-1など）を用いて、図２（Ｄ）の６種類の初期積分（ｃ１〜ｃ６）について計算を行い、次に、それら得られた値から、図２（Ｃ）の６種類の初期積分（ｄ１〜ｄ６）について計算を行い、次に、それら得られた値から、図２（Ｂ）の１３種類の初期積分（ａ１〜ａ１３）について計算を行い、さらに、それら得られた値から、図２（Ａ）の１５種類の初期積分（ｂ１〜ｂ１５）について計算を行う。
【００４８】
続いて、これら１５種類の初期積分（ｂ１〜ｂ１５）の値から、（４）式の垂直関係を適用した（１６）〜（１８）式を用いて、＜ｄμνｓｓｓ＞，＜ｐμｓｓｓ＞の値を求める。最後に、（５）式の水平関係を適用した（１５）式を用いて、目的積分である＜ｐμｐνｓｓ＞を求める。
こうして、電子反発積分＜ｐｐｓｓ＞の値を求めることができる。
【００４９】
なお、上記説明は、電子反発積分＜ｐｐｓｓ＞を例に説明したが、他の軌道を有する電子反発積分においても同様である。
【００５０】
Ａ３．計算手順：
以上説明したことをまとめると、目的の電子反発積分＜ａｂｃｄ＞は、以下の手順で求めることができる。
【００５１】
図３は目的の電子反発積分＜ａｂｃｄ＞を求める手順を示すフローチャートである。
まず、電子反発積分＜ａｂｃｄ＞を、（５）式で示した水平関係を用いて、中間積分＜ａ’０ｃ’０＞の積和演算で表した水平演算式を用意し（ステップＳ１１０）、水平演算式に含まれる中間積分＜ａ’０ｃ’０＞を、（４）式で示した垂直関係を用いて、初期積分＜００００＞の積和演算で表した垂直演算式を用意する（ステップＳ１２０）。
【００５２】
次に、中間積分＜ａ’０ｃ’０＞を計算するために必要な全ての種類の初期積分＜００００＞を計算する（ステップＳ１３０）。
【００５３】
そして、求めた初期積分＜００００＞を用いて、垂直演算式により中間積分＜ａ’０ｃ’０＞を計算し（ステップＳ１４０）、求めた中間積分＜ａ’０ｃ’０＞を用いて、水平演算式により電子反発積分＜ａｂｃｄ＞を計算する（ステップＳ１５０）。
【００５４】
以上説明した電子反発積分の計算は、積和演算で表された初期積分の計算、および、積和演算で表された水平演算式および垂直演算式による漸化計算により、求めたい電子反発積分の計算を実行するものである。ただし、目的の電子反発積分が決まれば、必要な水平演算式および垂直演算式、並びに、初期積分は一義的に決定されるものである。そこで、後述するような電子反発積分演算装置では、実際には、目的の電子反発積分を求めるためのプログラムに従って、まず、初期積分の計算に必要な値を用いて初期積分演算を実行し、これにより得られた演算結果を用いて垂直演算を実行し、これにより得られた演算結果を用いて水平演算を実行することにより、目的の電子反発積分を求めることとなる。
【００５５】
Ｂ．実施例：
Ｂ１．実施例の構成：
【００５６】
図１は本発明の一実施例としての電子反発積分演算装置の概略構成を示す説明図である。この電子反発積分演算装置１００は、管理プロセッサ１０と、メモリ２０と、Ｊ個（Ｊは２以上の整数）の積和演算器３０（３０［１］〜３０［Ｊ］）と、を備えている。これらの各構成要素は、それぞれ、独立した回路を実装基板上に形成して構成される。また、これらの各構成要素のうち、少なくとも、管理プロセッサおよび積和演算器については、１つの半導体基板上に集積化した集積回路により構成されていてもよい。
【００５７】
管理プロセッサ１０は、Ｊ個の積和演算器３０による積和演算動作を管理することにより、電子反発積分の処理全体を管理する。具体的には、管理プロセッサ１０は、メモリ２０から読み出された目的の電子反発積分を求めるためのプログラムに従って、目的の電子反発積分を求めるための初期積分演算処理，垂直演算処理および水平演算処理を実行する。各積和演算器３０は、それぞれ、管理プロセッサ１０から送られるデータを用いて、初期積分演算，垂直演算，水平演算などの積和演算処理を行う。また、各積和演算器３０とも、処理中の演算結果などを一時的に保持するために、複数のレジスタを備えている。
【００５８】
Ｂ２．実施例の動作：
それでは、本発明の特徴部分である初期積分演算処理について、上述した電子反発積分＜ｐｐｓｓ＞を例にして、さらに詳しく説明する。電子反発積分＜ｐｐｓｓ＞の場合、ｐ軌道の軌道量子数は１であり、ｓ軌道の軌道量子数は０であり、４つの縮約軌道の軌道量子数は１，１，０，０となるので、これらの縮約軌道の軌道量子数の総和ｉは２である。
【００５９】
図２に示した電子反発積分＜ｐｐｓｓ＞の場合の初期積分について、パラメータｍの値（（１０）式の縦線の右側一番目の数値）に着目して、これら初期積分をグループに区分すると、パラメータｍの値は、０以上ｉ（＝２）以下の整数の値、すなわち、０，１，２の三通りの値となるため、ｉ＋１、すなわち、３つのグループに区分することができる。
【００６０】
図４は図２の初期積分の一覧をパラメータｍの値によって３つのグループに区分した状態を示す説明図である。図４において、（Ａ）はｍ＝０のグループを、（Ｂ）はｍ＝１のグループを、（Ｃ）はｍ＝２のグループを、それぞれ示している。
また、図５〜図７は、それぞれ、各グループにおける初期積分同士の従属関係を示す説明図である。
【００６１】
上述したとおり、（１０）式の初期積分において、最外側の総和（ΣPb）に対し、その内側の総和（ΣPa）の計算を行う場合においては、ｇb＝０と見なすことができる。さらにその内側の総和（ΣPd）の計算を行う場合においては、ｇb＝ｇa＝Ｇab＝０と見なすことができる。またさらに、最内側の総和（ΣPc）の計算を行う場合においては、ｇb＝ｇa＝Ｇab＝ｇd＝０と見なすことができる。
【００６２】
従って、例えば、パラメータｍ＝２の場合、図７（Ａ）に示す６種類の初期積分＜ｓｓｓｓ｜２  ００２  ０００＞，＜ｓｓｓｓ｜２  ００２  ０１１＞，＜ｓｓｓｓ｜２  ００２  ０２２＞，＜ｓｓｓｓ｜２  ０１３  ０００＞，＜ｓｓｓｓ｜２  ０１３  ０１１＞，＜ｓｓｓｓ｜２  ０２４  ０００＞の各値ｂ１０，ｂ１１，ｂ１２，ｂ１３，ｂ１４，ｂ１５を求めるには、（１０）式において、ｇb＝０と見なし、それぞれ、図７（Ｂ）に示す初期積分＜ｓｓｓｓ｜２  ００２  ０００＞，＜ｓｓｓｓ｜２  ００２  ０１１＞，＜ｓｓｓｓ｜２  ００２  ０２２＞，＜ｓｓｓｓ｜２  ００３  ０００＞，＜ｓｓｓｓ｜２  ００３  ０１１＞，＜ｓｓｓｓ｜２  ００４  ０００＞の各値ａ８，ａ１１，ａ１３，ａ９，ａ１２，ａ１０を求めればよい。
【００６３】
さらに、図７（Ｂ）に示すこれら６種類の初期積分のうち、＜ｓｓｓｓ｜２  ００２  ０００＞，＜ｓｓｓｓ｜２  ００３  ０００＞，＜ｓｓｓｓ｜２  ００４  ０００＞の各値ａ８，ａ９，ａ１０を求めるには、（１０）式において、ｇb＝ｇa＝Ｇab＝０と見なし、図７（Ｃ）に示す初期積分＜ｓｓｓｓ｜２  ０００  ０００＞の値ｄ４を求めればよい。また、＜ｓｓｓｓ｜２  ００２  ０１１＞，＜ｓｓｓｓ｜２  ００３  ０１１＞の各値ａ１１，ａ１２を求めるには、同様に、図７（Ｃ）に示す初期積分＜ｓｓｓｓ｜２  ０００  ０１１＞の値ｄ５を求めればよい。また、＜ｓｓｓｓ｜２  ００２  ０２２＞の値ａ１３を求めるには、同様に、図７（Ｃ）に示す初期積分＜ｓｓｓｓ｜２  ０００  ０２２＞の値ｄ６を求めればよい。
【００６４】
またさらに、図７（Ｃ）に示すこれら３種類の初期積分のうち、＜ｓｓｓｓ｜２  ０００  ０００＞の値ｄを求めるには、（１０）式において、ｇb＝ｇa＝Ｇab＝ｇd＝０と見なし、図７（Ｄ）に示す初期積分＜ｓｓｓｓ｜２  ０００  ０００＞の値ｃ４を求めればよい。また、＜ｓｓｓｓ｜２  ０００  ０１１＞の値ｄ５を求めるには、同様に、図７（Ｄ）に示す初期積分＜ｓｓｓｓ｜２  ０００  ００１＞の値ｃ５を求めればよい。また、＜ｓｓｓｓ｜２  ０００  ０２２＞の値ｄ６を求めるには、同様に、図７（ｄ）に示す初期積分＜ｓｓｓｓ｜２  ０００  ００２＞の値ｃ６を求めればよい。
【００６５】
このように、パラメータｍ＝２に対応するグループ内において、求めるべき初期積分同士の間には、図７（Ａ）〜（Ｄ）に示すような上位，下位の従属関係が存在している。従って、このグループ内の初期積分の値を求める場合、この従属関係により、下位の初期積分の値を求めさえすれば、その値を基にして、上位の初期積分の値を順次求めることが可能である。
【００６６】
このことは、図５に示すとおり、パラメータｍ＝０の場合においても、図６に示すとおり、パラメータｍ＝１の場合においても、同様である。
【００６７】
つまり、（１０）式で示した初期積分においては、パラメータｍの値によって区分した各グループ内において、求められる初期積分の値に上位，下位の従属関係が存在しており、その従属関係を用いることによって、各グループ内において、それぞれ、の初期積分の値を求めることができる。言い換えれば、各グループ内において、初期積分の値を求める場合、他のグループの初期積分の値を利用する必要はなく、グループ内の下位の初期積分の値を用いれば、グループ内の上記の初期積分の値を求めることができる。
【００６８】
そこで、本実施例では、このような特性を利用して、初期積分の計算を、Ｊ個の積和演算器３０に、パラメータｍの値によって区分したグループを単位として振り分け、１つのグループ内の初期積分の計算は、１つの積和演算器３０で実行させるようにしている。
【００６９】
なお、以下の説明では、図１における積和演算器３０の個数Ｊが「３」であるとして説明を行う。また、図１において、メモリ２０には、予め、パラメータｍの値によって区分した各グループにおける初期積分の計算に必要なデータ、例えば、ρ，Ｖ，（ζPa＋ζPb）-1，（ζPc＋ζPd）-1などがそれぞれ格納されている。なお、これらのデータは、予め、管理プロセッサ１０が、自ら演算を行って求めるようにしてしてもよいし、図示せざる他の演算器が、演算を行って求めるようにしてもよい。
【００７０】
それでは、図１に示す電子反発積分演算装置によって、初期積分演算を実行する場合の動作について、図８〜図１１を用いて説明する。図８は図１の管理プロセッサ１０における処理手順を示すフローチャートである。図８に示す処理が開始されると、管理プロセッサ１０は、値αを０として、（１０）式におけるパラメータｍに値αを設定する（ステップＳ２１０，Ｓ２２０）。次に、管理プロセッサ１０は、パラメータｍ＝αに対応するグループ内の初期積分の計算に必要なデータを、メモリ２０から読み出す（ステップＳ２３０）。そして、管理プロセッサ１０は、図１に示す３つの積和演算器３０の中から、実行可能な積和演算器として積和演算器３０［α］を選択する（ステップＳ２４０）。続いて、管理プロセッサ１０は、選択した積和演算器３０［α］に、読み出したデータを送る（ステップＳ２５０）。管理プロセッサ１０は、値αを１ずつインクリメントして、値αが３を超えるまで、同様の処理を繰り返す（ステップＳ２６０，Ｓ２７０）。
【００７１】
この結果、積和演算器３０［０］では、管理プロセッサ１０から送られたデータを用いて、パラメータｍ＝０に対応するグループ内の初期積分（図４（Ａ））の計算が図９に示すような手順にて順次実行される。また、積和演算器３０［１］では、管理プロセッサ１０から送られたデータを用いて、パラメータｍ＝１に対応するグループ内の初期積分（図４（Ｂ））の計算が、図１０に示すような手順にて順次実行される。さらに、積和演算器３０［２］では、管理プロセッサ１０から送られたデータを用いて、パラメータｍ＝２に対応するグループ内の初期積分（図４（Ｃ））の計算が、図１１に示すような手順にて順次実行される。
【００７２】
図９〜図１１は、それぞれ、パラメータｍの値に対応する各グループについて、対応する積和演算器で実行される初期積分の計算手順を示す説明図である。
【００７３】
それでは、図９〜図１１を用いて、各積和演算器３０［０］〜［２］で実行される演算処理について、順次説明する。
（１）積和演算器３０［０］
ｉ）積和演算器３０［０］では、まず、管理プロセッサ１０から送られたデータのうち、値Ｖを用いて、（１０）式において、ｇb＝ｇa＝Ｇab＝ｇd＝ｇc＝Ｇcd＝０として、図９（Ａ）に示す初期積分＜ｓｓｓｓ｜０  ０００  ０００＞の計算（原子ｃに対する総和計算）を実行し、値ｃ１を求める。
【００７４】
ii）次に、積和演算器３０［０］では、先に求めた値ｃ１を用いて、（１０）式において、ｇb＝ｇa＝ｇd＝０として、図９（Ｂ）に示す初期積分＜ｓｓｓｓ｜０  ０００  ０００＞の計算（原子ｄに対する総和計算）を実行し、値ｄ１を求める。
【００７５】
iii）次に、積和演算器３０［０］では、先に求めた値ｄ１を用いて、（１０）式において、ｇb＝ｇa＝０，Ｇab＝１として、図９（Ｃ）に示す初期積分＜ｓｓｓｓ｜０  ００１  ０００＞の計算（原子ａに対する総和計算）を実行し、値ａ１を求めると共に、ｇb＝ｇa＝０，Ｇab＝２として、図９（Ｃ）に示す初期積分＜ｓｓｓｓ｜０  ００２  ０００＞の計算（原子ａに対する総和計算）を実行し、値ａ２を求める。
【００７６】
iv）次に、積和演算器３０［０］では、先に求めた値ａ１を用いて、（１０）式において、ｇb＝０として、図９（Ｄ）に示す初期積分＜ｓｓｓｓ｜０  ００１  ０００＞の計算（原子ｂに対する総和計算）を実行し、値ｂ１を求めると共に、ｇb＝１として、図９（Ｄ）に示す初期積分＜ｓｓｓｓ｜０  ０１１  ０００＞の計算（原子ａに対する総和計算）を実行し、値ｂ２を求める。一方、先に求めた値ａ２を用いて、（１０）式において、ｇb＝２として、図９（Ｄ）に示す初期積分＜ｓｓｓｓ｜０  ０２２  ０００＞の計算（原子ｂに対する総和計算）を実行し、値ｂ３を求める。
【００７７】
v）以上により、積和演算器３０［０］では、パラメータｍ＝０に対応したグループにおける全ての初期積分の計算を終了する。
【００７８】
その結果、積和演算器３０［０］では、最終的な演算結果として、パラメータｍ＝０に対応したグループにおける上位３種類の初期積分＜ｓｓｓｓ｜０  ００１  ０００＞，＜ｓｓｓｓ｜０  ０１１  ０００＞，＜ｓｓｓｓ｜０  ０２２  ０００＞の値ｂ１，ｂ２，ｂ３を得ることができる。
【００７９】
（２）積和演算器３０［１］
ｉ）積和演算器３０［１］では、まず、管理プロセッサ１０から送られたデータのうち、値ρ，Ｖを用いて、（１０）式において、ｇb＝ｇa＝Ｇab＝ｇd＝ｇc＝Ｇcd＝０として、図１０（Ａ）に示す初期積分＜ｓｓｓｓ｜１  ０００  ０００＞の計算（原子ｃに対する総和計算）を実行し、値ｃ２を求める。一方、値ρ，Ｖ，（ζPc＋ζPd）-1を用いて、（１０）式において、ｇb＝ｇa＝Ｇab＝ｇd＝ｇc＝０，Ｇcd＝１として、図１０（Ａ）に示す初期積分＜ｓｓｓｓ｜１  ０００  ００１＞の計算（原子ｃに対する総和計算）を実行し、値ｃ３を求める。
【００８０】
ii）次に、積和演算器３０［１］では、先に求めた値ｃ２を用いて、（１０）式において、ｇb＝ｇa＝ｇd＝０として、図１０（Ｂ）に示す初期積分＜ｓｓｓｓ｜１  ０００  ０００＞の計算（原子ｄに対する総和計算）を実行し、値ｄ２を求める。一方、先に求めた値ｃ３を用いて、（１０）式において、ｇb＝ｇa＝０，ｇd＝１として、図１０（Ｂ）に示す初期積分＜ｓｓｓｓ｜１  ０００  ０１１＞の計算（原子ｄに対する総和計算）を実行し、値ｄ３を求める。
【００８１】
iii）次に、積和演算器３０［１］では、先に求めた値ｄ２を用いて、（１０）式において、ｇb＝ｇa＝０，Ｇab＝１として、図１０（Ｃ）に示す初期積分＜ｓｓｓｓ｜１  ００１  ０００＞の計算（原子ａに対する総和計算）を実行し、値ａ３を求め、ｇb＝ｇa＝０，Ｇab＝２として、図１０（Ｃ）に示す初期積分＜ｓｓｓｓ｜１  ００２  ０００＞の計算（原子ａに対する総和計算）を実行し、値ａ４を求めると共に、ｇb＝ｇa＝０，Ｇab＝３として、図１０（Ｃ）に示す初期積分＜ｓｓｓｓ｜１  ００３  ０００＞の計算（原子ａに対する総和計算）を実行し、値ａ５を求める。一方、先に求めた値ｄ３を用いて、（１０）式において、ｇb＝ｇa＝０，Ｇab＝１として、図１０（Ｃ）に示す初期積分＜ｓｓｓｓ｜１  ００１  ０１１＞の計算（原子ａに対する総和計算）を実行し、値ａ６を求めると共に、ｇb＝ｇa＝０，Ｇab＝２として、図１０（Ｃ）に示す初期積分＜ｓｓｓｓ｜１  ００２  ０１１＞の計算（原子ａに対する総和計算）を実行し、値ａ７を求める。
【００８２】
iv）次に、積和演算器３０［１］では、先に求めた値ａ３を用いて、（１０）式において、ｇb＝０として、図１０（Ｄ）に示す初期積分＜ｓｓｓｓ｜１  ００１  ０００＞の計算（原子ｂに対する総和計算）を実行し、値ｂ４を求める。また、先に求めた値ａ６を用いて、（１０）式において、ｇb＝０として、図１０（Ｄ）に示す初期積分＜ｓｓｓｓ｜１  ００１  ０１１＞の計算（原子ｂに対する総和計算）を実行し、値ｂ５を求める。また、先に求めた値ａ４を用いて、（１０）式において、ｇb＝０として、図１０（Ｄ）に示す初期積分＜ｓｓｓｓ｜１  ００２  ０００＞の計算（原子ｂに対する総和計算）を実行し、値ｂ６を求めると共に、ｇb＝１として、図９（Ｄ）に示す初期積分＜ｓｓｓｓ｜１  ０１２  ０００＞の計算（原子ｂに対する総和計算）を実行し、値ｂ７を求める。また、先に求めた値ａ７を用いて、（１０）式において、ｇb＝１として、図１０（Ｄ）に示す初期積分＜ｓｓｓｓ｜１  ０１２  ０１１＞の計算（原子ｂに対する総和計算）を実行し、値ｂ８を求める。さらに、先に求めた値ａ５を用いて、（１０）式において、ｇb＝２として、図１０（Ｄ）に示す初期積分＜ｓｓｓｓ｜１  ０２３  ０００＞の計算（原子ｂに対する総和計算）を実行し、値ｂ９を求める。
【００８３】
v）以上により、積和演算器３０［１］では、パラメータｍ＝１に対応したグループにおける全ての初期積分の計算を終了する。
【００８４】
その結果、積和演算器３０［１］では、最終的な演算結果として、パラメータｍ＝１に対応したグループにおける上位６種類の初期積分＜ｓｓｓｓ｜１  ００１  ０００＞，＜ｓｓｓｓ｜１  ００１  ０１１＞，＜ｓｓｓｓ｜１  ００２  ０００＞，＜ｓｓｓｓ｜１  ０１２  ０００＞，＜ｓｓｓｓ｜１  ０１２  ０１１＞，＜ｓｓｓｓ｜１  ０２３  ０００＞の値ｂ４，ｂ５，ｂ６，ｂ７，ｂ８，ｂ９を得ることができる。
【００８５】
（３）積和演算器３０［２］
ｉ）積和演算器３０［２］では、まず、管理プロセッサ１０から送られたデータのうち、値ρ，Ｖを用いて、（１０）式において、ｇb＝ｇa＝Ｇab＝ｇd＝ｇc＝Ｇcd＝０として、図１１（Ａ）に示す初期積分＜ｓｓｓｓ｜２  ０００  ０００＞の計算（原子ｃに対する総和計算）を実行し、値ｃ４を求める。また、値ρ，Ｖ，（ζPc＋ζPd）-1を用いて、（１０）式において、ｇb＝ｇa＝Ｇab＝ｇd＝ｇc＝０，Ｇcd＝１として、図１０（Ａ）に示す初期積分＜ｓｓｓｓ｜２  ０００  ００１＞の計算（原子ｃに対する総和計算）を実行し、値ｃ５を求める。さらに、（１０）式において、ｇb＝ｇa＝Ｇab＝ｇd＝ｇc＝０，Ｇcd＝２として、図１０（Ａ）に示す初期積分＜ｓｓｓｓ｜２  ０００  ００２＞の計算（原子ｃに対する総和計算）を実行し、値ｃ６を求める。
【００８６】
ii）次に、積和演算器３０［２］では、先に求めた値ｃ４を用いて、（１０）式において、ｇb＝ｇa＝ｇd＝０として、図１１（Ｂ）に示す初期積分＜ｓｓｓｓ｜２  ０００  ０００＞の計算（原子ｄに対する総和計算）を実行し、値ｄ４を求める。また、先に求めた値ｃ５を用いて、（１０）式において、ｇb＝ｇa＝０，ｇd＝１として、図１１（Ｂ）に示す初期積分＜ｓｓｓｓ｜２  ０００  ０１１＞の計算（原子ｄに対する総和計算）を実行し、値ｄ５を求める。さらに、先に求めた値ｃ６を用いて、（１０）式において、ｇb＝ｇa＝０，ｇd＝２として、図１１（Ｂ）に示す初期積分＜ｓｓｓｓ｜２  ０００  ０２２＞の計算（原子ｄに対する総和計算）を実行し、値ｄ６を求める。
【００８７】
iii）次に、積和演算器３０［２］では、先に求めた値ｄ４を用いて、（１０）式において、ｇb＝ｇa＝０，Ｇab＝２として、図１１（Ｃ）に示す初期積分＜ｓｓｓｓ｜２  ００２  ０００＞の計算（原子ａに対する総和計算）を実行し、値ａ８を求め、ｇb＝ｇa＝０，Ｇab＝３として、図１１（Ｃ）に示す初期積分＜ｓｓｓｓ｜２  ００３  ０００＞の計算（原子ａに対する総和計算）を実行し、値ａ９を求めると共に、ｇb＝ｇa＝０，Ｇab＝４として、図１１（Ｃ）に示す初期積分＜ｓｓｓｓ｜２  ００４  ０００＞の計算（原子ａに対する総和計算）を実行し、値ａ１０を求める。また、先に求めた値ｄ５を用いて、（１０）式において、ｇb＝ｇa＝０，Ｇab＝２として、図１１（Ｃ）に示す初期積分＜ｓｓｓｓ｜２  ００２  ０１１＞の計算（原子ａに対する総和計算）を実行し、値ａ１１を求めると共に、ｇb＝ｇa＝０，Ｇab＝３として、図１１（Ｃ）に示す初期積分＜ｓｓｓｓ｜２  ００３  ０１１＞の計算（原子ａに対する総和計算）を実行し、値ａ１２を求める。さらに、先に求めた値ｄ６を用いて、（１０）式において、ｇb＝ｇa＝０，Ｇab＝２として、図１１（Ｃ）に示す初期積分＜ｓｓｓｓ｜２  ００２  ０２２＞の計算（原子ａに対する総和計算）を実行し、値ａ１３を求める。
【００８８】
iv）次に、積和演算器３０［２］では、先に求めた値ａ８を用いて、（１０）式において、ｇb＝０として、図１１（Ｄ）に示す初期積分＜ｓｓｓｓ｜２  ００２  ０００＞の計算（原子ｂに対する総和計算）を実行し、値ｂ１０を求める。また、先に求めた値ａ１１を用いて、（１０）式において、ｇb＝０として、図１１（Ｄ）に示す初期積分＜ｓｓｓｓ｜２  ００２  ０１１＞の計算（原子ｂに対する総和計算）を実行し、値ｂ１１を求める。また、先に求めた値ａ１３を用いて、（１０）式において、ｇb＝０として、図１１（Ｄ）に示す初期積分＜ｓｓｓｓ｜２  ００２  ０２２＞の計算（原子ｂに対する総和計算）を実行し、値ｂ１２を求める。また、先に求めた値ａ９を用いて、（１０）式において、ｇb＝１として、図１１（Ｄ）に示す初期積分＜ｓｓｓｓ｜２  ０１３  ０００＞の計算（原子ｂに対する総和計算）を実行し、値ｂ１３を求める。また、先に求めた値ａ１２を用いて、（１０）式において、ｇb＝１として、図１１（Ｄ）に示す初期積分＜ｓｓｓｓ｜２  ０１３  ０１１＞の計算（原子ｂに対する総和計算）を実行し、値ｂ１４を求める。さらに、先に求めた値ａ１０を用いて、（１０）式において、ｇb＝２として、図１１（Ｄ）に示す初期積分＜ｓｓｓｓ｜１  ０２４  ０００＞の計算（原子ｂに対する総和計算）を実行し、値ｂ１５を求める。
【００８９】
v）以上により、積和演算器３０［２］では、パラメータｍ＝２に対応したグループにおける全ての初期積分の計算を終了する。
【００９０】
その結果、積和演算器３０［２］では、最終的な演算結果として、パラメータｍ＝２に対応したグループにおける上位６種類の初期積分＜ｓｓｓｓ｜２  ００２  ０００＞，＜ｓｓｓｓ｜２  ００２  ０１１＞，＜ｓｓｓｓ｜２  ００２  ０２２＞，＜ｓｓｓｓ｜２  ０１３  ０００＞，＜ｓｓｓｓ｜２  ０１３  ０１１＞，＜ｓｓｓｓ｜２  ０２４  ０００＞の値ｂ１０，ｂ１１，ｂ１２，ｂ１３，ｂ１４，ｂ１５を得ることができる。
【００９１】
次に、図８に戻り、管理プロセッサ１０は、各積和演算器３０［０］〜［２］を監視して、演算を終了した積和演算器３０がある場合には、その積和演算器３０から演算結果を取得し（ステップＳ２８０）、メモリ２０に格納する。そして、全ての積和演算器３０から、その演算結果を取得して、メモリ２０に格納し終えたら、図８に示す一連の処理を終了する。
【００９２】
この結果、メモリ２０には、図２（Ａ）に示した１５種類の初期積分の値ｂ１〜ｂ１５が格納されることになる。
【００９３】
こうして、初期積分演算処理が完了したら、次に、垂直演算処理に移行し、管理プロセッサ１０は、メモリ２０から垂直演算に必要なデータ読み出して、３つの積和演算器３０のうち、演算を実行させる積和演算器３０に転送して、積和演算（垂直演算）を実行させる。具体的には、図２（Ａ）に示した１５種類の初期積分の値ｂ１〜ｂ１５から、（１６），（１７），（１８）式を用いて、積分＜ｄμνｓｓｓ＞，＜ｐμｓｓｓ＞の値をそれぞれ求める。そして、管理プロセッサ１０は、演算を終了した積和演算器３０から演算結果のデータを取得してメモリ２０に格納する。
【００９４】
その後、水平演算処理に移行し、管理プロセッサ１０は、メモリ２０から水平演算に必要なデータを読み出して、３つの積和演算器３０のうち、演算を実行させる積和演算器３０に転送して、積和演算（水平演算）を実行させる。具体的には、積分＜ｄμνｓｓｓ＞，＜ｐμｓｓｓ＞の値から、（１５）式を用いて、目的積分である＜ｐμｐνｓｓ＞の値を求める。そして、管理プロセッサ１０は、実行された演算結果のデータを取得してメモリ２０に格納する。
【００９５】
こうして、図１に示す電子反発積分演算装置では、初期積分演算処理、垂直演算処理及び水平演算処理を順次実行することにより、目的の電子反発積分＜ｐｐｓｓ＞を求めることができる。
【００９６】
Ｂ３．実施例の効果：
以上説明したとおり、本実施例では、初期積分の計算を、複数の積和演算器３０に、パラメータｍの値によって区分したグループを単位として振り分け、同じグループに属する初期積分の計算を、上記従属関係を利用して、１つの積和演算器３０で実行させるようにしている。このため、積和演算を含む初期積分の計算を効率よく実行することができる。また、異なるグループに属する初期積分の計算を、複数の積和演算器３０で並行して行うようにしているため、全体の初期積分の計算を高速に行うことができる。よって、電子反発積分の計算の高速化を図ることができる。
【００９７】
Ｃ．変形例：
なお、本発明は上記した実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様にて実施することが可能である。
【００９８】
上記した実施例の説明では、積和演算器３０の個数Ｊを「３」として説明したが、「２」であってもよい。この場合、２つの積和演算器が、積和演算器３０［０］，［１］であるとすると、管理プロセッサ１０は、まず、実行可能な積和演算器として積和演算器３０［０］を選択して、必要なデータを送り、この積和演算器３０［０］において、パラメータｍ＝０に対応するグループ内の初期積分の計算を実行させるようにする。次に、管理プロセッサ１０は、実行可能な積和演算器として積和演算器３０［１］を選択して、必要なデータを送り、この積和演算器３０［１］において、パラメータｍ＝１に対応するグループ内の初期積分の計算を実行させるようにする。その後、２つの積和演算器３０［０］，［１］のうち、何れか一方で演算を終了したら、管理プロセッサ１０は、その演算の終了した積和演算器３０を実行可能な積和演算器として選択し、必要なデータを送り、この積和演算器３０において、パラメータｍ＝３に対応するグループ内の初期積分の計算を実行させるようにする。
【００９９】
また、積和演算器３０の個数Ｊは「４」以上であってもよい。この場合は、積和演算器３０の個数Ｊが「３」の場合と同様の処理を行い、積和演算器３０［０］〜［２］以外の積和演算器については、待機状態にさせておけばよい。
【０１００】
上記した実施例の説明では、電子反発積分＜ｐｐｓｓ＞を例として説明したが、本発明は、これに限定されるものではない。
【０１０１】
例えば、電子反発積分＜ｐｐｐｐ＞の場合、ｐ軌道の軌道量子数は１であり、４つの縮約軌道の軌道量子数は１，１，１，１となるので、これらの縮約軌道の軌道量子数の総和ｉは４である。そして、電子反発積分＜ｐｐｐｐ＞の場合、初期積分の種類として、以下のような個数の初期積分を計算により求める必要がある。
（Ａ）Ｐｂに関する総和（ΣPb）に必要な初期積分
ｍ＝０：  ２個
ｍ＝１：  ３個
ｍ＝２：  ４個
ｍ＝３：  ５個
ｍ＝４：  ５個
（Ｂ）Ｐａに関する総和（ΣPa）に必要な初期積分
ｍ＝０：  ２個
ｍ＝１：  ８個
ｍ＝２：１１個
ｍ＝３：  ９個
ｍ＝４：  ５個
（Ｃ）Ｐｄに関する総和（ΣPd）に必要な初期積分
ｍ＝０：  ４個
ｍ＝１：２０個
ｍ＝２：３１個
ｍ＝３：２８個
ｍ＝４：１５個
（Ｄ）Ｐｃに関する総和（ΣPc）に必要な初期積分
ｍ＝０：  ６個
ｍ＝１：３１個
ｍ＝２：４４個
ｍ＝３：３４個
ｍ＝４：１５個
【０１０２】
そこで、電子反発積分＜ｐｐｐｐ＞の場合の初期積分について、パラメータｍの値に着目して、これら複数種類の初期積分をグループに区分すると、パラメータｍの値は、０以上ｉ（＝４）以下の整数の値、すなわち、０，１，２，３，４の５通りの値となるため、ｉ＋１、すなわち、５つのグループに区分することができる。
【０１０３】
従って、この区分したグループを単位として、初期積分の計算を、Ｊ個の積和演算器３０に振り分け、１つのグループ内の初期積分の計算を、１つの積和演算器３０で実行させるようにすればよい。
【０１０４】
上記した実施例では、電子反発積分を演算する電子反発積分演算装置を例に説明したが、種々の分子積分を演算する分子積分演算装置においても同様に適用可能である。
【図面の簡単な説明】
【０１０５】
【図１】本発明の一実施例としての電子反発積分演算装置の概略構成を示す説明図である。
【図２】電子反発積分＜ｐｐｓｓ＞の場合の初期積分の一覧を示す説明図である。
【図３】目的の電子反発積分＜ａｂｃｄ＞を求める手順を示すフローチャートである。
【図４】図２の初期積分の一覧をパラメータｍの値によって３つのグループに区分した状態を示す説明図である。
【図５】パラメータｍ＝０に対応するグループにおける初期積分同士の従属関係を示す説明図である。
【図６】パラメータｍ＝１に対応するグループにおける初期積分同士の従属関係を示す説明図である。
【図７】パラメータｍ＝２に対応するグループにおける初期積分同士の従属関係を示す説明図である。
【図８】図１の管理プロセッサ１０における処理手順を示すフローチャートである。
【図９】パラメータｍ＝０に対応するグループについて積和演算器で実行される初期積分の計算手順を示す説明図である。
【図１０】パラメータｍ＝１に対応するグループについて積和演算器で実行される初期積分の計算手順を示す説明図である。
【図１１】パラメータｍ＝２に対応するグループについて積和演算器で実行される初期積分の計算手順を示す説明図である。
【符号の説明】
【０１０６】
１０…管理プロセッサ
２０…メモリ
３０…積和演算器
１００…電子反発積分演算装置
【図１】
2008242618.tif 000022
【図２】
2008242618.tif 000023
【図３】
2008242618.tif 000024
【図４】
2008242618.tif 000025
【図５】
2008242618.tif 000026
【図６】
2008242618.tif 000027
【図７】
2008242618.tif 000028
【図８】
2008242618.tif 000029
【図９】
2008242618.tif 000030
【図１０】
2008242618.tif 000031
【図１１】
2008242618.tif 000032