(57)【要約】【課題】  バタフライ演算を効率的に行う【解決手段】  実数部Ｑ（Ｒｅ）＝（Ｘ（Ｒｅ）−Ｙ（Ｒｅ））・Ｚ（Ｒｅ）−（Ｘ（Ｉｍ）−Ｙ（Ｉｍ））・Ｚ（Ｉｍ）、虚数部Ｑ（Ｉｍ）＝（Ｘ（Ｒｅ）−Ｙ（Ｒｅ））・Ｚ（Ｉｍ）＋（Ｘ（Ｉｍ）−Ｙ（Ｉｍ））・Ｚ（Ｒｅ）なるバタフライ演算を行う。Ｘ（Ｒｅ）をビットａ列、Ｘ（Ｉｍ）をビットｂ列、Ｙ（Ｒｅ）をビットｃ列、Ｙ（Ｉｍ）をビットｄ列、Ｚ（Ｒｅ）をビットｅ列、Ｚ（Ｉｍ）をビットｆ列で与え、図示の式に基づく演算を行う。「（Ｋ・Ｍ）＋（Ｌ・Ｍbar）」なる形式からなるγ１〜γ８の積和演算を、ビットＭの論理値に基づいて、ビットＫもしくはＬのいずれかを選択して出力するセレクタを用いて実行する。虚数部Ｑ（Ｉｍ）についても同様の式を用い、セレクタを用いた演算を行う。【選択図】図２４
2010072981.tif 000002
【特許請求の範囲】
【請求項１】
複素数Ｘ，Ｙ，Ｚに基づく積和演算を行い、複素数ＰおよびＱを求める演算装置であって、
複素数Ｘの実数部Ｘ（Ｒｅ）および虚数部Ｘ（Ｉｍ）を入力する第１の入力部と、
複素数Ｙの実数部Ｙ（Ｒｅ）および虚数部Ｙ（Ｉｍ）を入力する第２の入力部と、
複素数Ｚの実数部Ｚ（Ｒｅ）および虚数部Ｚ（Ｉｍ）を入力する第３の入力部と、
複素数Ｐの実数部Ｐ（Ｒｅ）を、Ｐ（Ｒｅ）＝Ｘ（Ｒｅ）＋Ｙ（Ｒｅ）なる演算式に基づいて演算するとともに、複素数Ｐの虚数部Ｐ（Ｉｍ）を、Ｐ（Ｉｍ）＝Ｘ（Ｉｍ）＋Ｙ（Ｉｍ）なる演算式に基づいて演算する第１の演算部と、
複素数Ｑの実数部Ｑ（Ｒｅ）を、Ｑ（Ｒｅ）＝（Ｘ（Ｒｅ）−Ｙ（Ｒｅ））・Ｚ（Ｒｅ）−（Ｘ（Ｉｍ）−Ｙ（Ｉｍ））・Ｚ（Ｉｍ）なる演算式に基づいて演算するとともに、複素数Ｑの虚数部Ｑ（Ｉｍ）を、Ｑ（Ｉｍ）＝（Ｘ（Ｒｅ）−Ｙ（Ｒｅ））・Ｚ（Ｉｍ）＋（Ｘ（Ｉｍ）−Ｙ（Ｉｍ））・Ｚ（Ｒｅ）なる演算式に基づいて演算する第２の演算部と、
前記第１の演算部によって求められた複素数Ｐの実数部Ｐ（Ｒｅ）および虚数部Ｐ（Ｉｍ）のうちの必要な有効桁数に相当する部分を出力する第１の出力部と、
前記第２の演算部によって求められた複素数Ｑの実数部Ｑ（Ｒｅ）および虚数部Ｑ（Ｉｍ）のうちの必要な有効桁数に相当する部分を出力する第２の出力部と、
を備え、
前記第１の入力部は、「符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ａｎ−１，ａｎ−２，...，ａ１，ａ０なるビットを有する実数部Ｘ（Ｒｅ）」と、「符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｂｎ−１，ｂｎ−２，...，ｂ１，ｂ０なるビットを有する虚数部Ｘ（Ｉｍ）」とを入力し、
前記第２の入力部は、「符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｃｎ−１，ｃｎ−２，...，ｃ１，ｃ０なるビットを有する実数部Ｙ（Ｒｅ）」と、「符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｄｎ−１，ｄｎ−２，...，ｄ１，ｄ０なるビットを有する虚数部Ｙ（Ｉｍ）」とを入力し、
前記第３の入力部は、「符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｅｎ−１，ｅｎ−２，...，ｅ１，ｅ０なるビットを有する実数部Ｚ（Ｒｅ）」と、「符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｆｎ−１，ｆｎ−２，...，ｆ１，ｆ０なるビットを有する虚数部Ｚ（Ｉｍ）」とを入力し、
前記第２の演算部は、
Ｑ（Ｒｅ）＝
｛（ａbarｎ−１・ｅbarｎ−１）＋（ｃbarｎ−１・ｅｎ−１）
＋（ｄbarｎ−１・ｆbarｎ−１）＋（ｂbarｎ−１・ｆｎ−１）｝・２２ｎ−２−２２ｎ
＋（ａｎ−１＋ｄｎ−１）・２ｎ−１＋２ｎ
＋Σi=0 〜n-2［
｛（ｃｎ−１・ｅｉ）＋（ａｎ−１・ｅbarｉ）
＋（ｂｎ−１・ｆｉ）＋（ｄｎ−１・ｆbarｉ）
＋（ｅｎ−１・ａbarｉ）＋（ｅbarｎ−１・ｃbarｉ）
＋（ｆｎ−１・ｄbarｉ）＋（ｆbarｎ−１・ｂbarｉ）｝・２ｎ＋ｉ−１］
＋Σi=0 〜n-2［（ｂｉ＋ｃｉ）２ｉ］
＋Σi=0 〜n-2Σj=0 〜n-2［
｛（ａｉ・ｅｊ）＋（ｃｉ・ｅbarｊ）＋（ｄｉ・ｆｊ）＋（ｂｉ・ｆbarｊ）｝・２ｉ＋ｊ］
なる演算式（但し、記号barが介挿されたビットは、介挿前のビットに対する論理反転ビットを示す）に基づくビットごとの演算により、実数部Ｑ（Ｒｅ）を求めることを特徴とする複素数の積和演算装置。
【請求項２】
複素数Ｘ，Ｙ，Ｚに基づく積和演算を行い、複素数ＰおよびＱを求める演算装置であって、
複素数Ｘの実数部Ｘ（Ｒｅ）および虚数部Ｘ（Ｉｍ）を入力する第１の入力部と、
複素数Ｙの実数部Ｙ（Ｒｅ）および虚数部Ｙ（Ｉｍ）を入力する第２の入力部と、
複素数Ｚの実数部Ｚ（Ｒｅ）および虚数部Ｚ（Ｉｍ）を入力する第３の入力部と、
複素数Ｐの実数部Ｐ（Ｒｅ）を、Ｐ（Ｒｅ）＝Ｘ（Ｒｅ）＋Ｙ（Ｒｅ）なる演算式に基づいて演算するとともに、複素数Ｐの虚数部Ｐ（Ｉｍ）を、Ｐ（Ｉｍ）＝Ｘ（Ｉｍ）＋Ｙ（Ｉｍ）なる演算式に基づいて演算する第１の演算部と、
複素数Ｑの実数部Ｑ（Ｒｅ）を、Ｑ（Ｒｅ）＝（Ｘ（Ｒｅ）−Ｙ（Ｒｅ））・Ｚ（Ｒｅ）−（Ｘ（Ｉｍ）−Ｙ（Ｉｍ））・Ｚ（Ｉｍ）なる演算式に基づいて演算するとともに、複素数Ｑの虚数部Ｑ（Ｉｍ）を、Ｑ（Ｉｍ）＝（Ｘ（Ｒｅ）−Ｙ（Ｒｅ））・Ｚ（Ｉｍ）＋（Ｘ（Ｉｍ）−Ｙ（Ｉｍ））・Ｚ（Ｒｅ）なる演算式に基づいて演算する第２の演算部と、
前記第１の演算部によって求められた複素数Ｐの実数部Ｐ（Ｒｅ）および虚数部Ｐ（Ｉｍ）のうちの必要な有効桁数に相当する部分を出力する第１の出力部と、
前記第２の演算部によって求められた複素数Ｑの実数部Ｑ（Ｒｅ）および虚数部Ｑ（Ｉｍ）のうちの必要な有効桁数に相当する部分を出力する第２の出力部と、
を備え、
前記第１の入力部は、「符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ａｎ−１，ａｎ−２，...，ａ１，ａ０なるビットを有する実数部Ｘ（Ｒｅ）」と、「符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｂｎ−１，ｂｎ−２，...，ｂ１，ｂ０なるビットを有する虚数部Ｘ（Ｉｍ）」とを入力し、
前記第２の入力部は、「符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｃｎ−１，ｃｎ−２，...，ｃ１，ｃ０なるビットを有する実数部Ｙ（Ｒｅ）」と、「符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｄｎ−１，ｄｎ−２，...，ｄ１，ｄ０なるビットを有する虚数部Ｙ（Ｉｍ）」とを入力し、
前記第３の入力部は、「符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｅｎ−１，ｅｎ−２，...，ｅ１，ｅ０なるビットを有する実数部Ｚ（Ｒｅ）」と、「符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｆｎ−１，ｆｎ−２，...，ｆ１，ｆ０なるビットを有する虚数部Ｚ（Ｉｍ）」とを入力し、
前記第２の演算部は、
Ｑ（Ｉｍ）＝
｛（ａbarｎ−１・ｆbarｎ−１）＋（ｃbarｎ−１・ｆｎ−１）
＋（ｂbarｎ−１・ｅbarｎ−１）＋（ｄbarｎ−１・ｅｎ−１）｝・２２ｎ−２−２２ｎ
＋（ａｎ−１＋ｂｎ−１）・２ｎ−１＋２ｎ
＋Σi=0 〜n-2［
｛（ｃｎ−１・ｆｉ）＋（ａｎ−１・ｆbarｉ）
＋（ｄｎ−１・ｅｉ）＋（ｂｎ−１・ｅbarｉ）
＋（ｆｎ−１・ａbarｉ）＋（ｆbarｎ−１・ｃbarｉ）
＋（ｅｎ−１・ｂbarｉ）＋（ｅbarｎ−１・ｄbarｉ）｝・２ｎ＋ｉ−１］
＋Σi=0 〜n-2［（ｃｉ＋ｄｉ）２ｉ］
＋Σi=0 〜n-2Σj=0 〜n-2［
｛（ａｉ・ｆｊ）＋（ｃｉ・ｆbarｊ）＋（ｂｉ・ｅｊ）＋（ｄｉ・ｅbarｊ）｝・２ｉ＋ｊ］
なる演算式（但し、記号barが介挿されたビットは、介挿前のビットに対する論理反転ビットを示す）に基づくビットごとの演算により、虚数部Ｑ（Ｉｍ）を求めることを特徴とする複素数の積和演算装置。
【請求項３】
複素数Ｘ，Ｙ，Ｚに基づく積和演算を行い、複素数ＰおよびＱを求める演算装置であって、
複素数Ｘの実数部Ｘ（Ｒｅ）および虚数部Ｘ（Ｉｍ）を入力する第１の入力部と、
複素数Ｙの実数部Ｙ（Ｒｅ）および虚数部Ｙ（Ｉｍ）を入力する第２の入力部と、
複素数Ｚの実数部Ｚ（Ｒｅ）および虚数部Ｚ（Ｉｍ）を入力する第３の入力部と、
複素数Ｐの実数部Ｐ（Ｒｅ）を、Ｐ（Ｒｅ）＝Ｘ（Ｒｅ）＋Ｙ（Ｒｅ）なる演算式に基づいて演算するとともに、複素数Ｐの虚数部Ｐ（Ｉｍ）を、Ｐ（Ｉｍ）＝Ｘ（Ｉｍ）＋Ｙ（Ｉｍ）なる演算式に基づいて演算する第１の演算部と、
複素数Ｑの実数部Ｑ（Ｒｅ）を、Ｑ（Ｒｅ）＝（Ｘ（Ｒｅ）−Ｙ（Ｒｅ））・Ｚ（Ｒｅ）−（Ｘ（Ｉｍ）−Ｙ（Ｉｍ））・Ｚ（Ｉｍ）なる演算式に基づいて演算するとともに、複素数Ｑの虚数部Ｑ（Ｉｍ）を、Ｑ（Ｉｍ）＝（Ｘ（Ｒｅ）−Ｙ（Ｒｅ））・Ｚ（Ｉｍ）＋（Ｘ（Ｉｍ）−Ｙ（Ｉｍ））・Ｚ（Ｒｅ）なる演算式に基づいて演算する第２の演算部と、
前記第１の演算部によって求められた複素数Ｐの実数部Ｐ（Ｒｅ）および虚数部Ｐ（Ｉｍ）のうちの必要な有効桁数に相当する部分を出力する第１の出力部と、
前記第２の演算部によって求められた複素数Ｑの実数部Ｑ（Ｒｅ）および虚数部Ｑ（Ｉｍ）のうちの必要な有効桁数に相当する部分を出力する第２の出力部と、
を備え、
前記第１の入力部は、「符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ａｎ−１，ａｎ−２，...，ａ１，ａ０なるビットを有する実数部Ｘ（Ｒｅ）」と、「符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｂｎ−１，ｂｎ−２，...，ｂ１，ｂ０なるビットを有する虚数部Ｘ（Ｉｍ）」とを入力し、
前記第２の入力部は、「符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｃｎ−１，ｃｎ−２，...，ｃ１，ｃ０なるビットを有する実数部Ｙ（Ｒｅ）」と、「符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｄｎ−１，ｄｎ−２，...，ｄ１，ｄ０なるビットを有する虚数部Ｙ（Ｉｍ）」とを入力し、
前記第３の入力部は、「符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｅｎ−１，ｅｎ−２，...，ｅ１，ｅ０なるビットを有する実数部Ｚ（Ｒｅ）」と、「符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｆｎ−１，ｆｎ−２，...，ｆ１，ｆ０なるビットを有する虚数部Ｚ（Ｉｍ）」とを入力し、
前記第２の演算部は、
Ｑ（Ｒｅ）＝
｛（ａbarｎ−１・ｅbarｎ−１）＋（ｃbarｎ−１・ｅｎ−１）
＋（ｄbarｎ−１・ｆbarｎ−１）＋（ｂbarｎ−１・ｆｎ−１）｝・２２ｎ−２−２２ｎ
＋（ａｎ−１＋ｄｎ−１）・２ｎ−１＋２ｎ
＋Σi=0 〜n-2［
｛（ｃｎ−１・ｅｉ）＋（ａｎ−１・ｅbarｉ）
＋（ｂｎ−１・ｆｉ）＋（ｄｎ−１・ｆbarｉ）
＋（ｅｎ−１・ａbarｉ）＋（ｅbarｎ−１・ｃbarｉ）
＋（ｆｎ−１・ｄbarｉ）＋（ｆbarｎ−１・ｂbarｉ）｝・２ｎ＋ｉ−１］
＋Σi=0 〜n-2［（ｂｉ＋ｃｉ）２ｉ］
＋Σi=0 〜n-2Σj=0 〜n-2［
｛（ａｉ・ｅｊ）＋（ｃｉ・ｅbarｊ）＋（ｄｉ・ｆｊ）＋（ｂｉ・ｆbarｊ）｝・２ｉ＋ｊ］
なる演算式（但し、記号barが介挿されたビットは、介挿前のビットに対する論理反転ビットを示す）に基づくビットごとの演算により、実数部Ｑ（Ｒｅ）を求めるとともに、
Ｑ（Ｉｍ）＝
｛（ａbarｎ−１・ｆbarｎ−１）＋（ｃbarｎ−１・ｆｎ−１）
＋（ｂbarｎ−１・ｅbarｎ−１）＋（ｄbarｎ−１・ｅｎ−１）｝・２２ｎ−２−２２ｎ
＋（ａｎ−１＋ｂｎ−１）・２ｎ−１＋２ｎ
＋Σi=0 〜n-2［
｛（ｃｎ−１・ｆｉ）＋（ａｎ−１・ｆbarｉ）
＋（ｄｎ−１・ｅｉ）＋（ｂｎ−１・ｅbarｉ）
＋（ｆｎ−１・ａbarｉ）＋（ｆbarｎ−１・ｃbarｉ）
＋（ｅｎ−１・ｂbarｉ）＋（ｅbarｎ−１・ｄbarｉ）｝・２ｎ＋ｉ−１］
＋Σi=0 〜n-2［（ｃｉ＋ｄｉ）２ｉ］
＋Σi=0 〜n-2Σj=0 〜n-2［
｛（ａｉ・ｆｊ）＋（ｃｉ・ｆbarｊ）＋（ｂｉ・ｅｊ）＋（ｄｉ・ｅbarｊ）｝・２ｉ＋ｊ］
なる演算式（但し、記号barが介挿されたビットは、介挿前のビットに対する論理反転ビットを示す）に基づくビットごとの演算により、虚数部Ｑ（Ｉｍ）を求めることを特徴とする複素数の積和演算装置。
【請求項４】
請求項１〜３のいずれかに記載の複素数の積和演算装置において、
第２の演算部が、ビットＫ，Ｌ，Ｍ，Ｍbar（但し、ＭbarはＭの論理反転ビット）について「（Ｋ・Ｍ）＋（Ｌ・Ｍbar）」なる式で表される演算を行うために、ビットＫ，Ｌを入力とし、ビットＭの論理値に基づいて、ビットＫもしくはＬのいずれかを選択して出力するセレクタを有することを特徴とする複素数の積和演算装置。
【請求項５】
請求項１に記載の複素数の積和演算装置において、
第２の演算部が、
「（ａbarｎ−１・ｅbarｎ−１）＋（ｃbarｎ−１・ｅｎ−１）」なる論理演算を行うために、ビットａbarｎ−１およびｃbarｎ−１を入力とし、ビットｅｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｄbarｎ−１・ｆbarｎ−１）＋（ｂbarｎ−１・ｆｎ−１）」なる論理演算を行うために、ビットｄbarｎ−１およびｂbarｎ−１を入力とし、ビットｆｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｃｎ−１・ｅｉ）＋（ａｎ−１・ｅbarｉ）」なる論理演算を行うために、ビットｃｎ−１およびａｎ−１を入力とし、ビットｅｉの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｂｎ−１・ｆｉ）＋（ｄｎ−１・ｆbarｉ）」なる論理演算を行うために、ビットｂｎ−１およびｄｎ−１を入力とし、ビットｆｉの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｅｎ−１・ａbarｉ）＋（ｅbarｎ−１・ｃbarｉ）」なる論理演算を行うために、ビットａbarｉおよびｃbarｉを入力とし、ビットｅｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｆｎ−１・ｄbarｉ）＋（ｆbarｎ−１・ｂbarｉ）」なる論理演算を行うために、ビットｄbarｉおよびｂbarｉを入力とし、ビットｆｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ａｉ・ｅｊ）＋（ｃｉ・ｅbarｊ）」なる論理演算を行うために、ビットａｉおよびｃｉを入力とし、ビットｅｊの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｄｉ・ｆｊ）＋（ｂｉ・ｆbarｊ）」なる論理演算を行うために、ビットｄｉおよびｂｉを入力とし、ビットｆｊの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
を有することを特徴とする複素数の積和演算装置。
【請求項６】
請求項２に記載の複素数の積和演算装置において、
第２の演算部が、
「（ａbarｎ−１・ｆbarｎ−１）＋（ｃbarｎ−１・ｆｎ−１）」なる論理演算を行うために、ビットａbarｎ−１およびｃbarｎ−１を入力とし、ビットｆｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｂbarｎ−１・ｅbarｎ−１）＋（ｄbarｎ−１・ｅｎ−１）」なる論理演算を行うために、ビットｂbarｎ−１およびｄbarｎ−１を入力とし、ビットｅｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｃｎ−１・ｆｉ）＋（ａｎ−１・ｆbarｉ）」なる論理演算を行うために、ビットｃｎ−１およびａｎ−１を入力とし、ビットｆｉの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｄｎ−１・ｅｉ）＋（ｂｎ−１・ｅbarｉ）」なる論理演算を行うために、ビットｄｎ−１およびｂｎ−１を入力とし、ビットｅｉの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｆｎ−１・ａbarｉ）＋（ｆbarｎ−１・ｃbarｉ）」なる論理演算を行うために、ビットａbarｉおよびｃbarｉを入力とし、ビットｆｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｅｎ−１・ｂbarｉ）＋（ｅbarｎ−１・ｄbarｉ）」なる論理演算を行うために、ビットｂbarｉおよびｄbarｉを入力とし、ビットｅｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ａｉ・ｆｊ）＋（ｃｉ・ｆbarｊ）」なる論理演算を行うために、ビットａｉおよびｃｉを入力とし、ビットｆｊの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｂｉ・ｅｊ）＋（ｄｉ・ｅbarｊ）」なる論理演算を行うために、ビットｂｉおよびｄｉを入力とし、ビットｅｊの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
を有することを特徴とする複素数の積和演算装置。
【請求項７】
請求項３に記載の複素数の積和演算装置において、
第２の演算部が、
「（ａbarｎ−１・ｅbarｎ−１）＋（ｃbarｎ−１・ｅｎ−１）」なる論理演算を行うために、ビットａbarｎ−１およびｃbarｎ−１を入力とし、ビットｅｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｄbarｎ−１・ｆbarｎ−１）＋（ｂbarｎ−１・ｆｎ−１）」なる論理演算を行うために、ビットｄbarｎ−１およびｂbarｎ−１を入力とし、ビットｆｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｃｎ−１・ｅｉ）＋（ａｎ−１・ｅbarｉ）」なる論理演算を行うために、ビットｃｎ−１およびａｎ−１を入力とし、ビットｅｉの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｂｎ−１・ｆｉ）＋（ｄｎ−１・ｆbarｉ）」なる論理演算を行うために、ビットｂｎ−１およびｄｎ−１を入力とし、ビットｆｉの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｅｎ−１・ａbarｉ）＋（ｅbarｎ−１・ｃbarｉ）」なる論理演算を行うために、ビットａbarｉおよびｃbarｉを入力とし、ビットｅｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｆｎ−１・ｄbarｉ）＋（ｆbarｎ−１・ｂbarｉ）」なる論理演算を行うために、ビットｄbarｉおよびｂbarｉを入力とし、ビットｆｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ａｉ・ｅｊ）＋（ｃｉ・ｅbarｊ）」なる論理演算を行うために、ビットａｉおよびｃｉを入力とし、ビットｅｊの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｄｉ・ｆｊ）＋（ｂｉ・ｆbarｊ）」なる論理演算を行うために、ビットｄｉおよびｂｉを入力とし、ビットｆｊの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ａbarｎ−１・ｆbarｎ−１）＋（ｃbarｎ−１・ｆｎ−１）」なる論理演算を行うために、ビットａbarｎ−１およびｃbarｎ−１を入力とし、ビットｆｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｂbarｎ−１・ｅbarｎ−１）＋（ｄbarｎ−１・ｅｎ−１）」なる論理演算を行うために、ビットｂbarｎ−１およびｄbarｎ−１を入力とし、ビットｅｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｃｎ−１・ｆｉ）＋（ａｎ−１・ｆbarｉ）」なる論理演算を行うために、ビットｃｎ−１およびａｎ−１を入力とし、ビットｆｉの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｄｎ−１・ｅｉ）＋（ｂｎ−１・ｅbarｉ）」なる論理演算を行うために、ビットｄｎ−１およびｂｎ−１を入力とし、ビットｅｉの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｆｎ−１・ａbarｉ）＋（ｆbarｎ−１・ｃbarｉ）」なる論理演算を行うために、ビットａbarｉおよびｃbarｉを入力とし、ビットｆｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｅｎ−１・ｂbarｉ）＋（ｅbarｎ−１・ｄbarｉ）」なる論理演算を行うために、ビットｂbarｉおよびｄbarｉを入力とし、ビットｅｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ａｉ・ｆｊ）＋（ｃｉ・ｆbarｊ）」なる論理演算を行うために、ビットａｉおよびｃｉを入力とし、ビットｆｊの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｂｉ・ｅｊ）＋（ｄｉ・ｅbarｊ）」なる論理演算を行うために、ビットｂｉおよびｄｉを入力とし、ビットｅｊの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
を有することを特徴とする複素数の積和演算装置。
【請求項８】
請求項１〜７のいずれかに記載の複素数の積和演算装置を備え、第ｍ番目の入力信号Ａｍを複素数Ｘ、第（ｍ＋１）番目の入力信号Ａｍ＋１を複素数Ｙ、回転因子Ｗｋを複素数Ｚとして前記積和演算装置に与えることにより、バタフライ演算を実行するＦＦＴ演算装置。
【請求項９】
実数部Ｘ（Ｒｅ）および虚数部Ｘ（Ｉｍ）からなる複素数Ｘと、実数部Ｙ（Ｒｅ）および虚数部Ｙ（Ｉｍ）からなる複素数Ｙと、実数部Ｚ（Ｒｅ）および虚数部Ｚ（Ｉｍ）からなる複素数Ｚと、に基づいて、Ｑ（Ｒｅ）＝（Ｘ（Ｒｅ）−Ｙ（Ｒｅ））・Ｚ（Ｒｅ）−（Ｘ（Ｉｍ）−Ｙ（Ｉｍ））・Ｚ（Ｉｍ）なる演算式で示される実数部Ｑ（Ｒｅ）をもった複素数Ｑを求める演算を行う方法であって、
符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ａｎ−１，ａｎ−２，...，ａ１，ａ０なるビットを有する実数部Ｘ（Ｒｅ）をレジスタ上に用意する段階と、
符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｂｎ−１，ｂｎ−２，...，ｂ１，ｂ０なるビットを有する虚数部Ｘ（Ｉｍ）をレジスタ上に用意する段階と、
符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｃｎ−１，ｃｎ−２，...，ｃ１，ｃ０なるビットを有する実数部Ｙ（Ｒｅ）をレジスタ上に用意する段階と、
符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｄｎ−１，ｄｎ−２，...，ｄ１，ｄ０なるビットを有する虚数部Ｙ（Ｉｍ）をレジスタ上に用意する段階と、
符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｅｎ−１，ｅｎ−２，...，ｅ１，ｅ０なるビットを有する実数部Ｚ（Ｒｅ）をレジスタ上に用意する段階と、
符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｆｎ−１，ｆｎ−２，...，ｆ１，ｆ０なるビットを有する虚数部Ｚ（Ｉｍ）をレジスタ上に用意する段階と、
各レジスタに格納されている個々のビットに対して、
Ｑ（Ｒｅ）＝
｛（ａbarｎ−１・ｅbarｎ−１）＋（ｃbarｎ−１・ｅｎ−１）
＋（ｄbarｎ−１・ｆbarｎ−１）＋（ｂbarｎ−１・ｆｎ−１）｝・２２ｎ−２−２２ｎ
＋（ａｎ−１＋ｄｎ−１）・２ｎ−１＋２ｎ
＋Σi=0 〜n-2［
｛（ｃｎ−１・ｅｉ）＋（ａｎ−１・ｅbarｉ）
＋（ｂｎ−１・ｆｉ）＋（ｄｎ−１・ｆbarｉ）
＋（ｅｎ−１・ａbarｉ）＋（ｅbarｎ−１・ｃbarｉ）
＋（ｆｎ−１・ｄbarｉ）＋（ｆbarｎ−１・ｂbarｉ）｝・２ｎ＋ｉ−１］
＋Σi=0 〜n-2［（ｂｉ＋ｃｉ）２ｉ］
＋Σi=0 〜n-2Σj=0 〜n-2［
｛（ａｉ・ｅｊ）＋（ｃｉ・ｅbarｊ）＋（ｄｉ・ｆｊ）＋（ｂｉ・ｆbarｊ）｝・２ｉ＋ｊ］
なる演算式（但し、記号barが介挿されたビットは、介挿前のビットに対する論理反転ビットを示す）に基づく演算を演算器に実行させ、各桁の部分積項を求める段階と、
加算器を用いて、求められた部分積項を各桁について加算して実数部Ｑ（Ｒｅ）を求める段階と、
を有し、
前記各桁の部分積項を求める段階において、ビットＫ，Ｌ，Ｍ，Ｍbar（但し、ＭbarはＭの論理反転ビット）について「（Ｋ・Ｍ）＋（Ｌ・Ｍbar）」なる式で表される演算を行う場合に、ビットＫ，Ｌを入力とし、ビットＭの論理値に基づいて、ビットＫもしくはＬのいずれかを選択して出力するセレクタを用いることを特徴とする複素数の積和演算方法。
【請求項１０】
請求項９に記載の複素数の積和演算方法において、
「（ａbarｎ−１・ｅbarｎ−１）＋（ｃbarｎ−１・ｅｎ−１）」なる論理演算を行うために、ビットａbarｎ−１およびｃbarｎ−１を入力とし、ビットｅｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｄbarｎ−１・ｆbarｎ−１）＋（ｂbarｎ−１・ｆｎ−１）」なる論理演算を行うために、ビットｄbarｎ−１およびｂbarｎ−１を入力とし、ビットｆｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｃｎ−１・ｅｉ）＋（ａｎ−１・ｅbarｉ）」なる論理演算を行うために、ビットｃｎ−１およびａｎ−１を入力とし、ビットｅｉの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｂｎ−１・ｆｉ）＋（ｄｎ−１・ｆbarｉ）」なる論理演算を行うために、ビットｂｎ−１およびｄｎ−１を入力とし、ビットｆｉの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｅｎ−１・ａbarｉ）＋（ｅbarｎ−１・ｃbarｉ）」なる論理演算を行うために、ビットａbarｉおよびｃbarｉを入力とし、ビットｅｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｆｎ−１・ｄbarｉ）＋（ｆbarｎ−１・ｂbarｉ）」なる論理演算を行うために、ビットｄbarｉおよびｂbarｉを入力とし、ビットｆｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ａｉ・ｅｊ）＋（ｃｉ・ｅbarｊ）」なる論理演算を行うために、ビットａｉおよびｃｉを入力とし、ビットｅｊの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｄｉ・ｆｊ）＋（ｂｉ・ｆbarｊ）」なる論理演算を行うために、ビットｄｉおよびｂｉを入力とし、ビットｆｊの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用いることを特徴とする複素数の積和演算方法。
【請求項１１】
実数部Ｘ（Ｒｅ）および虚数部Ｘ（Ｉｍ）からなる複素数Ｘと、実数部Ｙ（Ｒｅ）および虚数部Ｙ（Ｉｍ）からなる複素数Ｙと、実数部Ｚ（Ｒｅ）および虚数部Ｚ（Ｉｍ）からなる複素数Ｚと、に基づいて、Ｑ（Ｉｍ）＝（Ｘ（Ｒｅ）−Ｙ（Ｒｅ））・Ｚ（Ｉｍ）＋（Ｘ（Ｉｍ）−Ｙ（Ｉｍ））・Ｚ（Ｒｅ）なる演算式で示される虚数部Ｑ（Ｉｍ）をもった複素数Ｑを求める演算を行う方法であって、
符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ａｎ−１，ａｎ−２，...，ａ１，ａ０なるビットを有する実数部Ｘ（Ｒｅ）をレジスタ上に用意する段階と、
符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｂｎ−１，ｂｎ−２，...，ｂ１，ｂ０なるビットを有する虚数部Ｘ（Ｉｍ）をレジスタ上に用意する段階と、
符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｃｎ−１，ｃｎ−２，...，ｃ１，ｃ０なるビットを有する実数部Ｙ（Ｒｅ）をレジスタ上に用意する段階と、
符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｄｎ−１，ｄｎ−２，...，ｄ１，ｄ０なるビットを有する虚数部Ｙ（Ｉｍ）をレジスタ上に用意する段階と、
符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｅｎ−１，ｅｎ−２，...，ｅ１，ｅ０なるビットを有する実数部Ｚ（Ｒｅ）をレジスタ上に用意する段階と、
符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｆｎ−１，ｆｎ−２，...，ｆ１，ｆ０なるビットを有する虚数部Ｚ（Ｉｍ）をレジスタ上に用意する段階と、
各レジスタに格納されている個々のビットに対して、
Ｑ（Ｉｍ）＝
｛（ａbarｎ−１・ｆbarｎ−１）＋（ｃbarｎ−１・ｆｎ−１）
＋（ｂbarｎ−１・ｅbarｎ−１）＋（ｄbarｎ−１・ｅｎ−１）｝・２２ｎ−２−２２ｎ
＋（ａｎ−１＋ｂｎ−１）・２ｎ−１＋２ｎ
＋Σi=0 〜n-2［
｛（ｃｎ−１・ｆｉ）＋（ａｎ−１・ｆbarｉ）
＋（ｄｎ−１・ｅｉ）＋（ｂｎ−１・ｅbarｉ）
＋（ｆｎ−１・ａbarｉ）＋（ｆbarｎ−１・ｃbarｉ）
＋（ｅｎ−１・ｂbarｉ）＋（ｅbarｎ−１・ｄbarｉ）｝・２ｎ＋ｉ−１］
＋Σi=0 〜n-2［（ｃｉ＋ｄｉ）２ｉ］
＋Σi=0 〜n-2Σj=0 〜n-2［
｛（ａｉ・ｆｊ）＋（ｃｉ・ｆbarｊ）＋（ｂｉ・ｅｊ）＋（ｄｉ・ｅbarｊ）｝・２ｉ＋ｊ］
なる演算式（但し、記号barが介挿されたビットは、介挿前のビットに対する論理反転ビットを示す）に基づく演算を演算器に実行させ、各桁の部分積項を求める段階と、
加算器を用いて、求められた部分積項を各桁について加算して虚数部Ｑ（Ｉｍ）を求める段階と、
を有し、
前記各桁の部分積項を求める段階において、ビットＫ，Ｌ，Ｍ，Ｍbar（但し、ＭbarはＭの論理反転ビット）について「（Ｋ・Ｍ）＋（Ｌ・Ｍbar）」なる式で表される演算を行う場合に、ビットＫ，Ｌを入力とし、ビットＭの論理値に基づいて、ビットＫもしくはＬのいずれかを選択して出力するセレクタを用いることを特徴とする複素数の積和演算方法。
【請求項１２】
請求項１１に記載の複素数の積和演算方法において、
「（ａbarｎ−１・ｆbarｎ−１）＋（ｃbarｎ−１・ｆｎ−１）」なる論理演算を行うために、ビットａbarｎ−１およびｃbarｎ−１を入力とし、ビットｆｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｂbarｎ−１・ｅbarｎ−１）＋（ｄbarｎ−１・ｅｎ−１）」なる論理演算を行うために、ビットｂbarｎ−１およびｄbarｎ−１を入力とし、ビットｅｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｃｎ−１・ｆｉ）＋（ａｎ−１・ｆbarｉ）」なる論理演算を行うために、ビットｃｎ−１およびａｎ−１を入力とし、ビットｆｉの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｄｎ−１・ｅｉ）＋（ｂｎ−１・ｅbarｉ）」なる論理演算を行うために、ビットｄｎ−１およびｂｎ−１を入力とし、ビットｅｉの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｆｎ−１・ａbarｉ）＋（ｆbarｎ−１・ｃbarｉ）」なる論理演算を行うために、ビットａbarｉおよびｃbarｉを入力とし、ビットｆｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｅｎ−１・ｂbarｉ）＋（ｅbarｎ−１・ｄbarｉ）」なる論理演算を行うために、ビットｂbarｉおよびｄbarｉを入力とし、ビットｅｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ａｉ・ｆｊ）＋（ｃｉ・ｆbarｊ）」なる論理演算を行うために、ビットａｉおよびｃｉを入力とし、ビットｆｊの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｂｉ・ｅｊ）＋（ｄｉ・ｅbarｊ）」なる論理演算を行うために、ビットｂｉおよびｄｉを入力とし、ビットｅｊの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用いることを特徴とする複素数の積和演算方法。
【請求項１３】
実数部Ｘ（Ｒｅ）および虚数部Ｘ（Ｉｍ）からなる複素数Ｘと、実数部Ｙ（Ｒｅ）および虚数部Ｙ（Ｉｍ）からなる複素数Ｙと、実数部Ｚ（Ｒｅ）および虚数部Ｚ（Ｉｍ）からなる複素数Ｚと、に基づいて、Ｑ（Ｒｅ）＝（Ｘ（Ｒｅ）−Ｙ（Ｒｅ））・Ｚ（Ｒｅ）−（Ｘ（Ｉｍ）−Ｙ（Ｉｍ））・Ｚ（Ｉｍ）なる演算式で示される実数部Ｑ（Ｒｅ）およびＱ（Ｉｍ）＝（Ｘ（Ｒｅ）−Ｙ（Ｒｅ））・Ｚ（Ｉｍ）＋（Ｘ（Ｉｍ）−Ｙ（Ｉｍ））・Ｚ（Ｒｅ）なる演算式で示される虚数部Ｑ（Ｉｍ）をもった複素数Ｑを求める演算を行う方法であって、
符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ａｎ−１，ａｎ−２，...，ａ１，ａ０なるビットを有する実数部Ｘ（Ｒｅ）をレジスタ上に用意する段階と、
符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｂｎ−１，ｂｎ−２，...，ｂ１，ｂ０なるビットを有する虚数部Ｘ（Ｉｍ）をレジスタ上に用意する段階と、
符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｃｎ−１，ｃｎ−２，...，ｃ１，ｃ０なるビットを有する実数部Ｙ（Ｒｅ）をレジスタ上に用意する段階と、
符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｄｎ−１，ｄｎ−２，...，ｄ１，ｄ０なるビットを有する虚数部Ｙ（Ｉｍ）をレジスタ上に用意する段階と、
符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｅｎ−１，ｅｎ−２，...，ｅ１，ｅ０なるビットを有する実数部Ｚ（Ｒｅ）をレジスタ上に用意する段階と、
符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｆｎ−１，ｆｎ−２，...，ｆ１，ｆ０なるビットを有する虚数部Ｚ（Ｉｍ）をレジスタ上に用意する段階と、
各レジスタに格納されている個々のビットに対して、
Ｑ（Ｒｅ）＝
｛（ａbarｎ−１・ｅbarｎ−１）＋（ｃbarｎ−１・ｅｎ−１）
＋（ｄbarｎ−１・ｆbarｎ−１）＋（ｂbarｎ−１・ｆｎ−１）｝・２２ｎ−２−２２ｎ
＋（ａｎ−１＋ｄｎ−１）・２ｎ−１＋２ｎ
＋Σi=0 〜n-2［
｛（ｃｎ−１・ｅｉ）＋（ａｎ−１・ｅbarｉ）
＋（ｂｎ−１・ｆｉ）＋（ｄｎ−１・ｆbarｉ）
＋（ｅｎ−１・ａbarｉ）＋（ｅbarｎ−１・ｃbarｉ）
＋（ｆｎ−１・ｄbarｉ）＋（ｆbarｎ−１・ｂbarｉ）｝・２ｎ＋ｉ−１］
＋Σi=0 〜n-2［（ｂｉ＋ｃｉ）２ｉ］
＋Σi=0 〜n-2Σj=0 〜n-2［
｛（ａｉ・ｅｊ）＋（ｃｉ・ｅbarｊ）＋（ｄｉ・ｆｊ）＋（ｂｉ・ｆbarｊ）｝・２ｉ＋ｊ］
なる演算式（但し、記号barが介挿されたビットは、介挿前のビットに対する論理反転ビットを示す）に基づく演算を演算器に実行させ、各桁の部分積項を求める段階と、
各レジスタに格納されている個々のビットに対して、
Ｑ（Ｉｍ）＝
｛（ａbarｎ−１・ｆbarｎ−１）＋（ｃbarｎ−１・ｆｎ−１）
＋（ｂbarｎ−１・ｅbarｎ−１）＋（ｄbarｎ−１・ｅｎ−１）｝・２２ｎ−２−２２ｎ
＋（ａｎ−１＋ｂｎ−１）・２ｎ−１＋２ｎ
＋Σi=0 〜n-2［
｛（ｃｎ−１・ｆｉ）＋（ａｎ−１・ｆbarｉ）
＋（ｄｎ−１・ｅｉ）＋（ｂｎ−１・ｅbarｉ）
＋（ｆｎ−１・ａbarｉ）＋（ｆbarｎ−１・ｃbarｉ）
＋（ｅｎ−１・ｂbarｉ）＋（ｅbarｎ−１・ｄbarｉ）｝・２ｎ＋ｉ−１］
＋Σi=0 〜n-2［（ｃｉ＋ｄｉ）２ｉ］
＋Σi=0 〜n-2Σj=0 〜n-2［
｛（ａｉ・ｆｊ）＋（ｃｉ・ｆbarｊ）＋（ｂｉ・ｅｊ）＋（ｄｉ・ｅbarｊ）｝・２ｉ＋ｊ］
なる演算式（但し、記号barが介挿されたビットは、介挿前のビットに対する論理反転ビットを示す）に基づく演算を演算器に実行させ、各桁の部分積項を求める段階と、
加算器を用いて、求められた部分積項を各桁について加算して実数部Ｑ（Ｒｅ）および虚数部Ｑ（Ｉｍ）を求める段階と、
を有し、
前記各桁の部分積項を求める段階において、ビットＫ，Ｌ，Ｍ，Ｍbar（但し、ＭbarはＭの論理反転ビット）について「（Ｋ・Ｍ）＋（Ｌ・Ｍbar）」なる式で表される演算を行う場合に、ビットＫ，Ｌを入力とし、ビットＭの論理値に基づいて、ビットＫもしくはＬのいずれかを選択して出力するセレクタを用いることを特徴とする複素数の積和演算方法。
【請求項１４】
請求項１３に記載の複素数の積和演算方法において、
「（ａbarｎ−１・ｅbarｎ−１）＋（ｃbarｎ−１・ｅｎ−１）」なる論理演算を行うために、ビットａbarｎ−１およびｃbarｎ−１を入力とし、ビットｅｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｄbarｎ−１・ｆbarｎ−１）＋（ｂbarｎ−１・ｆｎ−１）」なる論理演算を行うために、ビットｄbarｎ−１およびｂbarｎ−１を入力とし、ビットｆｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｃｎ−１・ｅｉ）＋（ａｎ−１・ｅbarｉ）」なる論理演算を行うために、ビットｃｎ−１およびａｎ−１を入力とし、ビットｅｉの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｂｎ−１・ｆｉ）＋（ｄｎ−１・ｆbarｉ）」なる論理演算を行うために、ビットｂｎ−１およびｄｎ−１を入力とし、ビットｆｉの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｅｎ−１・ａbarｉ）＋（ｅbarｎ−１・ｃbarｉ）」なる論理演算を行うために、ビットａbarｉおよびｃbarｉを入力とし、ビットｅｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｆｎ−１・ｄbarｉ）＋（ｆbarｎ−１・ｂbarｉ）」なる論理演算を行うために、ビットｄbarｉおよびｂbarｉを入力とし、ビットｆｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ａｉ・ｅｊ）＋（ｃｉ・ｅbarｊ）」なる論理演算を行うために、ビットａｉおよびｃｉを入力とし、ビットｅｊの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｄｉ・ｆｊ）＋（ｂｉ・ｆbarｊ）」なる論理演算を行うために、ビットｄｉおよびｂｉを入力とし、ビットｆｊの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ａbarｎ−１・ｆbarｎ−１）＋（ｃbarｎ−１・ｆｎ−１）」なる論理演算を行うために、ビットａbarｎ−１およびｃbarｎ−１を入力とし、ビットｆｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｂbarｎ−１・ｅbarｎ−１）＋（ｄbarｎ−１・ｅｎ−１）」なる論理演算を行うために、ビットｂbarｎ−１およびｄbarｎ−１を入力とし、ビットｅｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｃｎ−１・ｆｉ）＋（ａｎ−１・ｆbarｉ）」なる論理演算を行うために、ビットｃｎ−１およびａｎ−１を入力とし、ビットｆｉの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｄｎ−１・ｅｉ）＋（ｂｎ−１・ｅbarｉ）」なる論理演算を行うために、ビットｄｎ−１およびｂｎ−１を入力とし、ビットｅｉの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｆｎ−１・ａbarｉ）＋（ｆbarｎ−１・ｃbarｉ）」なる論理演算を行うために、ビットａbarｉおよびｃbarｉを入力とし、ビットｆｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｅｎ−１・ｂbarｉ）＋（ｅbarｎ−１・ｄbarｉ）」なる論理演算を行うために、ビットｂbarｉおよびｄbarｉを入力とし、ビットｅｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ａｉ・ｆｊ）＋（ｃｉ・ｆbarｊ）」なる論理演算を行うために、ビットａｉおよびｃｉを入力とし、ビットｆｊの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｂｉ・ｅｊ）＋（ｄｉ・ｅbarｊ）」なる論理演算を行うために、ビットｂｉおよびｄｉを入力とし、ビットｅｊの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用いることを特徴とする複素数の積和演算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複素数の積和演算装置および積和演算方法に関し、特に、可変点数ＦＦＴ演算装置におけるCooley-Tukey型Radix-2バタフライ演算の実行に適した複素数の積和演算を行う技術に関する。
【背景技術】
【０００２】
離散フーリエ変換における計算を三角関数の周期性を利用して高速に実行する手法として、ＦＦＴの手法が様々な分野において利用されている。特に、最近では、画像処理、音声処理、映像処理、電波処理の分野など、いわゆるマルチメディアを取り扱う分野において、ＦＦＴの手法が頻繁に利用されるようになってきており、携帯電話機、デジタルカメラ、ＤＶＤレコーダといった民生機器においても広く利用される技術になっている。
【０００３】
ＦＦＴは、三角関数を用いた演算を必要とする手法であるため、複素数に対する複雑な演算が必要になる。具体的には、一般に「バタフライ演算」と呼ばれている積和演算を実行する必要がある。たとえば、下記の特許文献１には、バタフライ演算回路を用いたＦＦＴ演算装置の一例が開示されている。特に、可変点数ＦＦＴ演算装置では、下記の非特許文献１に詳述されているとおり、Cooley-Tukey型Radix-2バタフライ演算が広く用いられるようになってきており、同文献には、このようなバタフライ演算を行うための具体的な回路構成が示されている。また、下記の非特許文献２には、このようなバタフライ演算において、複素乗算回数を削減する手法が開示され、下記の非特許文献３には、パイプライン構成を用いてバタフライ演算を高速化する手法が開示されている。
【特許文献１】特開平８−１３７８３２号公報
【非特許文献１】荒木健悟，佐々木徹，溝口大介，長島雲兵，三好市郎，棚橋隆彦，”ＦＰＧＡを用いた３次元FFT専用演算回路の開発”，第１８回数値流体力学，２００４．
【非特許文献２】Jae H. Baek, Byung S. Son, Byung G. Jo, Myung H.  Sunwoo, and Seung K. Oh, "A Continuous Flow Mixed-Radix FFT Architecture With An In-Place Algorithm." Proceedings of the 2003 International Symposium on Circuits and Systems. vol. 2, pp. 133-136, May, 2003.
【非特許文献３】Chang-Yeh Wang, "Hybrid Word-Length Optimization Methods of Piplined FFT Processors," IEEE Transaction on Computers, vol. 56, No. 8, pp. 1105-1118, August, 2007.
【発明の開示】
【発明が解決しようとする課題】
【０００４】
近年、ＦＦＴ演算装置は、様々な民生機器に広く利用されるようになってきており、ＦＦＴの演算処理を専門に行うシステムＬＳＩとして、これらの機器に組み込まれている。このシステムＬＳＩは、前述した「バタフライ演算」を実行するために、多数の加算器（減算器）と乗算器とを含む複素数の積和演算装置を構成している。このため、回路構成が複雑になり、演算時間も長くかかるという問題が生じている。特に、乗算器を用いた論理回路は、ＬＳＩ上での回路占有面積を広く必要とする上、桁上げ処理が必要になるため、下位ビットの演算が完了するまで、上位ビットの演算を待つ必要があり、演算時間が長くかかることになる。このように、従来の積和演算装置には、小型化および高速化を図ることが困難であるという問題がある。
【０００５】
そこで本発明は、「バタフライ演算」をより効率的に行うことが可能な複素数の積和演算装置および積和演算方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
(1)   本発明の第１の態様は、複素数Ｘ，Ｙ，Ｚに基づく積和演算を行い、複素数ＰおよびＱを求める演算装置において、
複素数Ｘの実数部Ｘ（Ｒｅ）および虚数部Ｘ（Ｉｍ）を入力する第１の入力部と、
複素数Ｙの実数部Ｙ（Ｒｅ）および虚数部Ｙ（Ｉｍ）を入力する第２の入力部と、
複素数Ｚの実数部Ｚ（Ｒｅ）および虚数部Ｚ（Ｉｍ）を入力する第３の入力部と、
複素数Ｐの実数部Ｐ（Ｒｅ）を、Ｐ（Ｒｅ）＝Ｘ（Ｒｅ）＋Ｙ（Ｒｅ）なる演算式に基づいて演算するとともに、複素数Ｐの虚数部Ｐ（Ｉｍ）を、Ｐ（Ｉｍ）＝Ｘ（Ｉｍ）＋Ｙ（Ｉｍ）なる演算式に基づいて演算する第１の演算部と、
複素数Ｑの実数部Ｑ（Ｒｅ）を、Ｑ（Ｒｅ）＝（Ｘ（Ｒｅ）−Ｙ（Ｒｅ））・Ｚ（Ｒｅ）−（Ｘ（Ｉｍ）−Ｙ（Ｉｍ））・Ｚ（Ｉｍ）なる演算式に基づいて演算するとともに、複素数Ｑの虚数部Ｑ（Ｉｍ）を、Ｑ（Ｉｍ）＝（Ｘ（Ｒｅ）−Ｙ（Ｒｅ））・Ｚ（Ｉｍ）＋（Ｘ（Ｉｍ）−Ｙ（Ｉｍ））・Ｚ（Ｒｅ）なる演算式に基づいて演算する第２の演算部と、
第１の演算部によって求められた複素数Ｐの実数部Ｐ（Ｒｅ）および虚数部Ｐ（Ｉｍ）のうちの必要な有効桁数に相当する部分を出力する第１の出力部と、
第２の演算部によって求められた複素数Ｑの実数部Ｑ（Ｒｅ）および虚数部Ｑ（Ｉｍ）のうちの必要な有効桁数に相当する部分を出力する第２の出力部と、
を設け、
第１の入力部は、「符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ａｎ−１，ａｎ−２，...，ａ１，ａ０なるビットを有する実数部Ｘ（Ｒｅ）」と、「符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｂｎ−１，ｂｎ−２，...，ｂ１，ｂ０なるビットを有する虚数部Ｘ（Ｉｍ）」とを入力し、
第２の入力部は、「符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｃｎ−１，ｃｎ−２，...，ｃ１，ｃ０なるビットを有する実数部Ｙ（Ｒｅ）」と、「符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｄｎ−１，ｄｎ−２，...，ｄ１，ｄ０なるビットを有する虚数部Ｙ（Ｉｍ）」とを入力し、
第３の入力部は、「符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｅｎ−１，ｅｎ−２，...，ｅ１，ｅ０なるビットを有する実数部Ｚ（Ｒｅ）」と、「符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｆｎ−１，ｆｎ−２，...，ｆ１，ｆ０なるビットを有する虚数部Ｚ（Ｉｍ）」とを入力し、
第２の演算部は、
Ｑ（Ｒｅ）＝
｛（ａbarｎ−１・ｅbarｎ−１）＋（ｃbarｎ−１・ｅｎ−１）
＋（ｄbarｎ−１・ｆbarｎ−１）＋（ｂbarｎ−１・ｆｎ−１）｝・２２ｎ−２−２２ｎ
＋（ａｎ−１＋ｄｎ−１）・２ｎ−１＋２ｎ
＋Σi=0 〜n-2［
｛（ｃｎ−１・ｅｉ）＋（ａｎ−１・ｅbarｉ）
＋（ｂｎ−１・ｆｉ）＋（ｄｎ−１・ｆbarｉ）
＋（ｅｎ−１・ａbarｉ）＋（ｅbarｎ−１・ｃbarｉ）
＋（ｆｎ−１・ｄbarｉ）＋（ｆbarｎ−１・ｂbarｉ）｝・２ｎ＋ｉ−１］
＋Σi=0 〜n-2［（ｂｉ＋ｃｉ）２ｉ］
＋Σi=0 〜n-2Σj=0 〜n-2［
｛（ａｉ・ｅｊ）＋（ｃｉ・ｅbarｊ）＋（ｄｉ・ｆｊ）＋（ｂｉ・ｆbarｊ）｝・２ｉ＋ｊ］
なる演算式（但し、記号barが介挿されたビットは、介挿前のビットに対する論理反転ビットを示す）に基づくビットごとの演算により、実数部Ｑ（Ｒｅ）を求めるようにしたものである。
【０００７】
(2)   本発明の第２の態様は、複素数Ｘ，Ｙ，Ｚに基づく積和演算を行い、複素数ＰおよびＱを求める演算装置において、
複素数Ｘの実数部Ｘ（Ｒｅ）および虚数部Ｘ（Ｉｍ）を入力する第１の入力部と、
複素数Ｙの実数部Ｙ（Ｒｅ）および虚数部Ｙ（Ｉｍ）を入力する第２の入力部と、
複素数Ｚの実数部Ｚ（Ｒｅ）および虚数部Ｚ（Ｉｍ）を入力する第３の入力部と、
複素数Ｐの実数部Ｐ（Ｒｅ）を、Ｐ（Ｒｅ）＝Ｘ（Ｒｅ）＋Ｙ（Ｒｅ）なる演算式に基づいて演算するとともに、複素数Ｐの虚数部Ｐ（Ｉｍ）を、Ｐ（Ｉｍ）＝Ｘ（Ｉｍ）＋Ｙ（Ｉｍ）なる演算式に基づいて演算する第１の演算部と、
複素数Ｑの実数部Ｑ（Ｒｅ）を、Ｑ（Ｒｅ）＝（Ｘ（Ｒｅ）−Ｙ（Ｒｅ））・Ｚ（Ｒｅ）−（Ｘ（Ｉｍ）−Ｙ（Ｉｍ））・Ｚ（Ｉｍ）なる演算式に基づいて演算するとともに、複素数Ｑの虚数部Ｑ（Ｉｍ）を、Ｑ（Ｉｍ）＝（Ｘ（Ｒｅ）−Ｙ（Ｒｅ））・Ｚ（Ｉｍ）＋（Ｘ（Ｉｍ）−Ｙ（Ｉｍ））・Ｚ（Ｒｅ）なる演算式に基づいて演算する第２の演算部と、
第１の演算部によって求められた複素数Ｐの実数部Ｐ（Ｒｅ）および虚数部Ｐ（Ｉｍ）のうちの必要な有効桁数に相当する部分を出力する第１の出力部と、
第２の演算部によって求められた複素数Ｑの実数部Ｑ（Ｒｅ）および虚数部Ｑ（Ｉｍ）のうちの必要な有効桁数に相当する部分を出力する第２の出力部と、
を設け、
第１の入力部は、「符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ａｎ−１，ａｎ−２，...，ａ１，ａ０なるビットを有する実数部Ｘ（Ｒｅ）」と、「符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｂｎ−１，ｂｎ−２，...，ｂ１，ｂ０なるビットを有する虚数部Ｘ（Ｉｍ）」とを入力し、
第２の入力部は、「符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｃｎ−１，ｃｎ−２，...，ｃ１，ｃ０なるビットを有する実数部Ｙ（Ｒｅ）」と、「符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｄｎ−１，ｄｎ−２，...，ｄ１，ｄ０なるビットを有する虚数部Ｙ（Ｉｍ）」とを入力し、
第３の入力部は、「符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｅｎ−１，ｅｎ−２，...，ｅ１，ｅ０なるビットを有する実数部Ｚ（Ｒｅ）」と、「符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｆｎ−１，ｆｎ−２，...，ｆ１，ｆ０なるビットを有する虚数部Ｚ（Ｉｍ）」とを入力し、
第２の演算部は、
Ｑ（Ｉｍ）＝
｛（ａbarｎ−１・ｆbarｎ−１）＋（ｃbarｎ−１・ｆｎ−１）
＋（ｂbarｎ−１・ｅbarｎ−１）＋（ｄbarｎ−１・ｅｎ−１）｝・２２ｎ−２−２２ｎ
＋（ａｎ−１＋ｂｎ−１）・２ｎ−１＋２ｎ
＋Σi=0 〜n-2［
｛（ｃｎ−１・ｆｉ）＋（ａｎ−１・ｆbarｉ）
＋（ｄｎ−１・ｅｉ）＋（ｂｎ−１・ｅbarｉ）
＋（ｆｎ−１・ａbarｉ）＋（ｆbarｎ−１・ｃbarｉ）
＋（ｅｎ−１・ｂbarｉ）＋（ｅbarｎ−１・ｄbarｉ）｝・２ｎ＋ｉ−１］
＋Σi=0 〜n-2［（ｃｉ＋ｄｉ）２ｉ］
＋Σi=0 〜n-2Σj=0 〜n-2［
｛（ａｉ・ｆｊ）＋（ｃｉ・ｆbarｊ）＋（ｂｉ・ｅｊ）＋（ｄｉ・ｅbarｊ）｝・２ｉ＋ｊ］
なる演算式（但し、記号barが介挿されたビットは、介挿前のビットに対する論理反転ビットを示す）に基づくビットごとの演算により、虚数部Ｑ（Ｉｍ）を求めるようにしたものである。
【０００８】
(3)   本発明の第３の態様は、複素数Ｘ，Ｙ，Ｚに基づく積和演算を行い、複素数ＰおよびＱを求める演算装置において、
複素数Ｘの実数部Ｘ（Ｒｅ）および虚数部Ｘ（Ｉｍ）を入力する第１の入力部と、
複素数Ｙの実数部Ｙ（Ｒｅ）および虚数部Ｙ（Ｉｍ）を入力する第２の入力部と、
複素数Ｚの実数部Ｚ（Ｒｅ）および虚数部Ｚ（Ｉｍ）を入力する第３の入力部と、
複素数Ｐの実数部Ｐ（Ｒｅ）を、Ｐ（Ｒｅ）＝Ｘ（Ｒｅ）＋Ｙ（Ｒｅ）なる演算式に基づいて演算するとともに、複素数Ｐの虚数部Ｐ（Ｉｍ）を、Ｐ（Ｉｍ）＝Ｘ（Ｉｍ）＋Ｙ（Ｉｍ）なる演算式に基づいて演算する第１の演算部と、
複素数Ｑの実数部Ｑ（Ｒｅ）を、Ｑ（Ｒｅ）＝（Ｘ（Ｒｅ）−Ｙ（Ｒｅ））・Ｚ（Ｒｅ）−（Ｘ（Ｉｍ）−Ｙ（Ｉｍ））・Ｚ（Ｉｍ）なる演算式に基づいて演算するとともに、複素数Ｑの虚数部Ｑ（Ｉｍ）を、Ｑ（Ｉｍ）＝（Ｘ（Ｒｅ）−Ｙ（Ｒｅ））・Ｚ（Ｉｍ）＋（Ｘ（Ｉｍ）−Ｙ（Ｉｍ））・Ｚ（Ｒｅ）なる演算式に基づいて演算する第２の演算部と、
第１の演算部によって求められた複素数Ｐの実数部Ｐ（Ｒｅ）および虚数部Ｐ（Ｉｍ）のうちの必要な有効桁数に相当する部分を出力する第１の出力部と、
第２の演算部によって求められた複素数Ｑの実数部Ｑ（Ｒｅ）および虚数部Ｑ（Ｉｍ）のうちの必要な有効桁数に相当する部分を出力する第２の出力部と、
を設け、
第１の入力部は、「符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ａｎ−１，ａｎ−２，...，ａ１，ａ０なるビットを有する実数部Ｘ（Ｒｅ）」と、「符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｂｎ−１，ｂｎ−２，...，ｂ１，ｂ０なるビットを有する虚数部Ｘ（Ｉｍ）」とを入力し、
第２の入力部は、「符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｃｎ−１，ｃｎ−２，...，ｃ１，ｃ０なるビットを有する実数部Ｙ（Ｒｅ）」と、「符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｄｎ−１，ｄｎ−２，...，ｄ１，ｄ０なるビットを有する虚数部Ｙ（Ｉｍ）」とを入力し、
第３の入力部は、「符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｅｎ−１，ｅｎ−２，...，ｅ１，ｅ０なるビットを有する実数部Ｚ（Ｒｅ）」と、「符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｆｎ−１，ｆｎ−２，...，ｆ１，ｆ０なるビットを有する虚数部Ｚ（Ｉｍ）」とを入力し、
第２の演算部は、
Ｑ（Ｒｅ）＝
｛（ａbarｎ−１・ｅbarｎ−１）＋（ｃbarｎ−１・ｅｎ−１）
＋（ｄbarｎ−１・ｆbarｎ−１）＋（ｂbarｎ−１・ｆｎ−１）｝・２２ｎ−２−２２ｎ
＋（ａｎ−１＋ｄｎ−１）・２ｎ−１＋２ｎ
＋Σi=0 〜n-2［
｛（ｃｎ−１・ｅｉ）＋（ａｎ−１・ｅbarｉ）
＋（ｂｎ−１・ｆｉ）＋（ｄｎ−１・ｆbarｉ）
＋（ｅｎ−１・ａbarｉ）＋（ｅbarｎ−１・ｃbarｉ）
＋（ｆｎ−１・ｄbarｉ）＋（ｆbarｎ−１・ｂbarｉ）｝・２ｎ＋ｉ−１］
＋Σi=0 〜n-2［（ｂｉ＋ｃｉ）２ｉ］
＋Σi=0 〜n-2Σj=0 〜n-2［
｛（ａｉ・ｅｊ）＋（ｃｉ・ｅbarｊ）＋（ｄｉ・ｆｊ）＋（ｂｉ・ｆbarｊ）｝・２ｉ＋ｊ］
なる演算式（但し、記号barが介挿されたビットは、介挿前のビットに対する論理反転ビットを示す）に基づくビットごとの演算により、実数部Ｑ（Ｒｅ）を求めるとともに、
Ｑ（Ｉｍ）＝
｛（ａbarｎ−１・ｆbarｎ−１）＋（ｃbarｎ−１・ｆｎ−１）
＋（ｂbarｎ−１・ｅbarｎ−１）＋（ｄbarｎ−１・ｅｎ−１）｝・２２ｎ−２−２２ｎ
＋（ａｎ−１＋ｂｎ−１）・２ｎ−１＋２ｎ
＋Σi=0 〜n-2［
｛（ｃｎ−１・ｆｉ）＋（ａｎ−１・ｆbarｉ）
＋（ｄｎ−１・ｅｉ）＋（ｂｎ−１・ｅbarｉ）
＋（ｆｎ−１・ａbarｉ）＋（ｆbarｎ−１・ｃbarｉ）
＋（ｅｎ−１・ｂbarｉ）＋（ｅbarｎ−１・ｄbarｉ）｝・２ｎ＋ｉ−１］
＋Σi=0 〜n-2［（ｃｉ＋ｄｉ）２ｉ］
＋Σi=0 〜n-2Σj=0 〜n-2［
｛（ａｉ・ｆｊ）＋（ｃｉ・ｆbarｊ）＋（ｂｉ・ｅｊ）＋（ｄｉ・ｅbarｊ）｝・２ｉ＋ｊ］
なる演算式（但し、記号barが介挿されたビットは、介挿前のビットに対する論理反転ビットを示す）に基づくビットごとの演算により、虚数部Ｑ（Ｉｍ）を求めるようにしたものである。
【０００９】
(4)   本発明の第４の態様は、上述の第１〜第３の態様に係る複素数の積和演算装置において、
第２の演算部が、ビットＫ，Ｌ，Ｍ，Ｍbar（但し、ＭbarはＭの論理反転ビット）について「（Ｋ・Ｍ）＋（Ｌ・Ｍbar）」なる式で表される演算を行うために、ビットＫ，Ｌを入力とし、ビットＭの論理値に基づいて、ビットＫもしくはＬのいずれかを選択して出力するセレクタを有するようにしたものである。
【００１０】
(5)   本発明の第５の態様は、上述の第１の態様に係る複素数の積和演算装置において、
第２の演算部が、
「（ａbarｎ−１・ｅbarｎ−１）＋（ｃbarｎ−１・ｅｎ−１）」なる論理演算を行うために、ビットａbarｎ−１およびｃbarｎ−１を入力とし、ビットｅｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｄbarｎ−１・ｆbarｎ−１）＋（ｂbarｎ−１・ｆｎ−１）」なる論理演算を行うために、ビットｄbarｎ−１およびｂbarｎ−１を入力とし、ビットｆｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｃｎ−１・ｅｉ）＋（ａｎ−１・ｅbarｉ）」なる論理演算を行うために、ビットｃｎ−１およびａｎ−１を入力とし、ビットｅｉの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｂｎ−１・ｆｉ）＋（ｄｎ−１・ｆbarｉ）」なる論理演算を行うために、ビットｂｎ−１およびｄｎ−１を入力とし、ビットｆｉの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｅｎ−１・ａbarｉ）＋（ｅbarｎ−１・ｃbarｉ）」なる論理演算を行うために、ビットａbarｉおよびｃbarｉを入力とし、ビットｅｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｆｎ−１・ｄbarｉ）＋（ｆbarｎ−１・ｂbarｉ）」なる論理演算を行うために、ビットｄbarｉおよびｂbarｉを入力とし、ビットｆｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ａｉ・ｅｊ）＋（ｃｉ・ｅbarｊ）」なる論理演算を行うために、ビットａｉおよびｃｉを入力とし、ビットｅｊの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｄｉ・ｆｊ）＋（ｂｉ・ｆbarｊ）」なる論理演算を行うために、ビットｄｉおよびｂｉを入力とし、ビットｆｊの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
を有するようにしたものである。
【００１１】
(6)   本発明の第６の態様は、上述の第２の態様に係る複素数の積和演算装置において、
第２の演算部が、
「（ａbarｎ−１・ｆbarｎ−１）＋（ｃbarｎ−１・ｆｎ−１）」なる論理演算を行うために、ビットａbarｎ−１およびｃbarｎ−１を入力とし、ビットｆｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｂbarｎ−１・ｅbarｎ−１）＋（ｄbarｎ−１・ｅｎ−１）」なる論理演算を行うために、ビットｂbarｎ−１およびｄbarｎ−１を入力とし、ビットｅｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｃｎ−１・ｆｉ）＋（ａｎ−１・ｆbarｉ）」なる論理演算を行うために、ビットｃｎ−１およびａｎ−１を入力とし、ビットｆｉの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｄｎ−１・ｅｉ）＋（ｂｎ−１・ｅbarｉ）」なる論理演算を行うために、ビットｄｎ−１およびｂｎ−１を入力とし、ビットｅｉの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｆｎ−１・ａbarｉ）＋（ｆbarｎ−１・ｃbarｉ）」なる論理演算を行うために、ビットａbarｉおよびｃbarｉを入力とし、ビットｆｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｅｎ−１・ｂbarｉ）＋（ｅbarｎ−１・ｄbarｉ）」なる論理演算を行うために、ビットｂbarｉおよびｄbarｉを入力とし、ビットｅｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ａｉ・ｆｊ）＋（ｃｉ・ｆbarｊ）」なる論理演算を行うために、ビットａｉおよびｃｉを入力とし、ビットｆｊの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｂｉ・ｅｊ）＋（ｄｉ・ｅbarｊ）」なる論理演算を行うために、ビットｂｉおよびｄｉを入力とし、ビットｅｊの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
を有するようにしたものである。
【００１２】
(7)   本発明の第７の態様は、上述の第３の態様に係る複素数の積和演算装置において、
第２の演算部が、
「（ａbarｎ−１・ｅbarｎ−１）＋（ｃbarｎ−１・ｅｎ−１）」なる論理演算を行うために、ビットａbarｎ−１およびｃbarｎ−１を入力とし、ビットｅｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｄbarｎ−１・ｆbarｎ−１）＋（ｂbarｎ−１・ｆｎ−１）」なる論理演算を行うために、ビットｄbarｎ−１およびｂbarｎ−１を入力とし、ビットｆｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｃｎ−１・ｅｉ）＋（ａｎ−１・ｅbarｉ）」なる論理演算を行うために、ビットｃｎ−１およびａｎ−１を入力とし、ビットｅｉの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｂｎ−１・ｆｉ）＋（ｄｎ−１・ｆbarｉ）」なる論理演算を行うために、ビットｂｎ−１およびｄｎ−１を入力とし、ビットｆｉの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｅｎ−１・ａbarｉ）＋（ｅbarｎ−１・ｃbarｉ）」なる論理演算を行うために、ビットａbarｉおよびｃbarｉを入力とし、ビットｅｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｆｎ−１・ｄbarｉ）＋（ｆbarｎ−１・ｂbarｉ）」なる論理演算を行うために、ビットｄbarｉおよびｂbarｉを入力とし、ビットｆｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ａｉ・ｅｊ）＋（ｃｉ・ｅbarｊ）」なる論理演算を行うために、ビットａｉおよびｃｉを入力とし、ビットｅｊの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｄｉ・ｆｊ）＋（ｂｉ・ｆbarｊ）」なる論理演算を行うために、ビットｄｉおよびｂｉを入力とし、ビットｆｊの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ａbarｎ−１・ｆbarｎ−１）＋（ｃbarｎ−１・ｆｎ−１）」なる論理演算を行うために、ビットａbarｎ−１およびｃbarｎ−１を入力とし、ビットｆｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｂbarｎ−１・ｅbarｎ−１）＋（ｄbarｎ−１・ｅｎ−１）」なる論理演算を行うために、ビットｂbarｎ−１およびｄbarｎ−１を入力とし、ビットｅｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｃｎ−１・ｆｉ）＋（ａｎ−１・ｆbarｉ）」なる論理演算を行うために、ビットｃｎ−１およびａｎ−１を入力とし、ビットｆｉの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｄｎ−１・ｅｉ）＋（ｂｎ−１・ｅbarｉ）」なる論理演算を行うために、ビットｄｎ−１およびｂｎ−１を入力とし、ビットｅｉの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｆｎ−１・ａbarｉ）＋（ｆbarｎ−１・ｃbarｉ）」なる論理演算を行うために、ビットａbarｉおよびｃbarｉを入力とし、ビットｆｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｅｎ−１・ｂbarｉ）＋（ｅbarｎ−１・ｄbarｉ）」なる論理演算を行うために、ビットｂbarｉおよびｄbarｉを入力とし、ビットｅｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ａｉ・ｆｊ）＋（ｃｉ・ｆbarｊ）」なる論理演算を行うために、ビットａｉおよびｃｉを入力とし、ビットｆｊの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｂｉ・ｅｊ）＋（ｄｉ・ｅbarｊ）」なる論理演算を行うために、ビットｂｉおよびｄｉを入力とし、ビットｅｊの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
を有するようにしたものである。
【００１３】
(8)   本発明の第８の態様は、上述の第１〜第７の態様に係る複素数の積和演算装置をＦＦＴ演算装置に組み込み、第ｍ番目の入力信号Ａｍを複素数Ｘ、第（ｍ＋１）番目の入力信号Ａｍ＋１を複素数Ｙ、回転因子Ｗｋを複素数Ｚとして当該積和演算装置に与えることにより、バタフライ演算を実行するようにしたものである。
【００１４】
(9)   本発明の第９の態様は、実数部Ｘ（Ｒｅ）および虚数部Ｘ（Ｉｍ）からなる複素数Ｘと、実数部Ｙ（Ｒｅ）および虚数部Ｙ（Ｉｍ）からなる複素数Ｙと、実数部Ｚ（Ｒｅ）および虚数部Ｚ（Ｉｍ）からなる複素数Ｚと、に基づいて、Ｑ（Ｒｅ）＝（Ｘ（Ｒｅ）−Ｙ（Ｒｅ））・Ｚ（Ｒｅ）−（Ｘ（Ｉｍ）−Ｙ（Ｉｍ））・Ｚ（Ｉｍ）なる演算式で示される実数部Ｑ（Ｒｅ）をもった複素数Ｑを求める演算を行う方法において、
符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ａｎ−１，ａｎ−２，...，ａ１，ａ０なるビットを有する実数部Ｘ（Ｒｅ）をレジスタ上に用意する段階と、
符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｂｎ−１，ｂｎ−２，...，ｂ１，ｂ０なるビットを有する虚数部Ｘ（Ｉｍ）をレジスタ上に用意する段階と、
符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｃｎ−１，ｃｎ−２，...，ｃ１，ｃ０なるビットを有する実数部Ｙ（Ｒｅ）をレジスタ上に用意する段階と、
符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｄｎ−１，ｄｎ−２，...，ｄ１，ｄ０なるビットを有する虚数部Ｙ（Ｉｍ）をレジスタ上に用意する段階と、
符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｅｎ−１，ｅｎ−２，...，ｅ１，ｅ０なるビットを有する実数部Ｚ（Ｒｅ）をレジスタ上に用意する段階と、
符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｆｎ−１，ｆｎ−２，...，ｆ１，ｆ０なるビットを有する虚数部Ｚ（Ｉｍ）をレジスタ上に用意する段階と、
各レジスタに格納されている個々のビットに対して、
Ｑ（Ｒｅ）＝
｛（ａbarｎ−１・ｅbarｎ−１）＋（ｃbarｎ−１・ｅｎ−１）
＋（ｄbarｎ−１・ｆbarｎ−１）＋（ｂbarｎ−１・ｆｎ−１）｝・２２ｎ−２−２２ｎ
＋（ａｎ−１＋ｄｎ−１）・２ｎ−１＋２ｎ
＋Σi=0 〜n-2［
｛（ｃｎ−１・ｅｉ）＋（ａｎ−１・ｅbarｉ）
＋（ｂｎ−１・ｆｉ）＋（ｄｎ−１・ｆbarｉ）
＋（ｅｎ−１・ａbarｉ）＋（ｅbarｎ−１・ｃbarｉ）
＋（ｆｎ−１・ｄbarｉ）＋（ｆbarｎ−１・ｂbarｉ）｝・２ｎ＋ｉ−１］
＋Σi=0 〜n-2［（ｂｉ＋ｃｉ）２ｉ］
＋Σi=0 〜n-2Σj=0 〜n-2［
｛（ａｉ・ｅｊ）＋（ｃｉ・ｅbarｊ）＋（ｄｉ・ｆｊ）＋（ｂｉ・ｆbarｊ）｝・２ｉ＋ｊ］
なる演算式（但し、記号barが介挿されたビットは、介挿前のビットに対する論理反転ビットを示す）に基づく演算を演算器に実行させ、各桁の部分積項を求める段階と、
加算器を用いて、求められた部分積項を各桁について加算して実数部Ｑ（Ｒｅ）を求める段階と、
を行い、
各桁の部分積項を求める段階において、ビットＫ，Ｌ，Ｍ，Ｍbar（但し、ＭbarはＭの論理反転ビット）について「（Ｋ・Ｍ）＋（Ｌ・Ｍbar）」なる式で表される演算を行う場合に、ビットＫ，Ｌを入力とし、ビットＭの論理値に基づいて、ビットＫもしくはＬのいずれかを選択して出力するセレクタを用いるようにしたものである。
【００１５】
(10)  本発明の第１０の態様は、上述の第９の態様に係る複素数の積和演算方法において、
「（ａbarｎ−１・ｅbarｎ−１）＋（ｃbarｎ−１・ｅｎ−１）」なる論理演算を行うために、ビットａbarｎ−１およびｃbarｎ−１を入力とし、ビットｅｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｄbarｎ−１・ｆbarｎ−１）＋（ｂbarｎ−１・ｆｎ−１）」なる論理演算を行うために、ビットｄbarｎ−１およびｂbarｎ−１を入力とし、ビットｆｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｃｎ−１・ｅｉ）＋（ａｎ−１・ｅbarｉ）」なる論理演算を行うために、ビットｃｎ−１およびａｎ−１を入力とし、ビットｅｉの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｂｎ−１・ｆｉ）＋（ｄｎ−１・ｆbarｉ）」なる論理演算を行うために、ビットｂｎ−１およびｄｎ−１を入力とし、ビットｆｉの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｅｎ−１・ａbarｉ）＋（ｅbarｎ−１・ｃbarｉ）」なる論理演算を行うために、ビットａbarｉおよびｃbarｉを入力とし、ビットｅｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｆｎ−１・ｄbarｉ）＋（ｆbarｎ−１・ｂbarｉ）」なる論理演算を行うために、ビットｄbarｉおよびｂbarｉを入力とし、ビットｆｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ａｉ・ｅｊ）＋（ｃｉ・ｅbarｊ）」なる論理演算を行うために、ビットａｉおよびｃｉを入力とし、ビットｅｊの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｄｉ・ｆｊ）＋（ｂｉ・ｆbarｊ）」なる論理演算を行うために、ビットｄｉおよびｂｉを入力とし、ビットｆｊの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用いるようにしたものである。
【００１６】
(11)  本発明の第１１の態様は、実数部Ｘ（Ｒｅ）および虚数部Ｘ（Ｉｍ）からなる複素数Ｘと、実数部Ｙ（Ｒｅ）および虚数部Ｙ（Ｉｍ）からなる複素数Ｙと、実数部Ｚ（Ｒｅ）および虚数部Ｚ（Ｉｍ）からなる複素数Ｚと、に基づいて、Ｑ（Ｉｍ）＝（Ｘ（Ｒｅ）−Ｙ（Ｒｅ））・Ｚ（Ｉｍ）＋（Ｘ（Ｉｍ）−Ｙ（Ｉｍ））・Ｚ（Ｒｅ）なる演算式で示される虚数部Ｑ（Ｉｍ）をもった複素数Ｑを求める演算を行う方法において、
符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ａｎ−１，ａｎ−２，...，ａ１，ａ０なるビットを有する実数部Ｘ（Ｒｅ）をレジスタ上に用意する段階と、
符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｂｎ−１，ｂｎ−２，...，ｂ１，ｂ０なるビットを有する虚数部Ｘ（Ｉｍ）をレジスタ上に用意する段階と、
符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｃｎ−１，ｃｎ−２，...，ｃ１，ｃ０なるビットを有する実数部Ｙ（Ｒｅ）をレジスタ上に用意する段階と、
符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｄｎ−１，ｄｎ−２，...，ｄ１，ｄ０なるビットを有する虚数部Ｙ（Ｉｍ）をレジスタ上に用意する段階と、
符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｅｎ−１，ｅｎ−２，...，ｅ１，ｅ０なるビットを有する実数部Ｚ（Ｒｅ）をレジスタ上に用意する段階と、
符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｆｎ−１，ｆｎ−２，...，ｆ１，ｆ０なるビットを有する虚数部Ｚ（Ｉｍ）をレジスタ上に用意する段階と、
各レジスタに格納されている個々のビットに対して、
Ｑ（Ｉｍ）＝
｛（ａbarｎ−１・ｆbarｎ−１）＋（ｃbarｎ−１・ｆｎ−１）
＋（ｂbarｎ−１・ｅbarｎ−１）＋（ｄbarｎ−１・ｅｎ−１）｝・２２ｎ−２−２２ｎ
＋（ａｎ−１＋ｂｎ−１）・２ｎ−１＋２ｎ
＋Σi=0 〜n-2［
｛（ｃｎ−１・ｆｉ）＋（ａｎ−１・ｆbarｉ）
＋（ｄｎ−１・ｅｉ）＋（ｂｎ−１・ｅbarｉ）
＋（ｆｎ−１・ａbarｉ）＋（ｆbarｎ−１・ｃbarｉ）
＋（ｅｎ−１・ｂbarｉ）＋（ｅbarｎ−１・ｄbarｉ）｝・２ｎ＋ｉ−１］
＋Σi=0 〜n-2［（ｃｉ＋ｄｉ）２ｉ］
＋Σi=0 〜n-2Σj=0 〜n-2［
｛（ａｉ・ｆｊ）＋（ｃｉ・ｆbarｊ）＋（ｂｉ・ｅｊ）＋（ｄｉ・ｅbarｊ）｝・２ｉ＋ｊ］
なる演算式（但し、記号barが介挿されたビットは、介挿前のビットに対する論理反転ビットを示す）に基づく演算を演算器に実行させ、各桁の部分積項を求める段階と、
加算器を用いて、求められた部分積項を各桁について加算して虚数部Ｑ（Ｉｍ）を求める段階と、
を行い、
各桁の部分積項を求める段階において、ビットＫ，Ｌ，Ｍ，Ｍbar（但し、ＭbarはＭの論理反転ビット）について「（Ｋ・Ｍ）＋（Ｌ・Ｍbar）」なる式で表される演算を行う場合に、ビットＫ，Ｌを入力とし、ビットＭの論理値に基づいて、ビットＫもしくはＬのいずれかを選択して出力するセレクタを用いるようにしたものである。
【００１７】
(12)  本発明の第１２の態様は、上述の第１１の態様に係る複素数の積和演算方法において、
「（ａbarｎ−１・ｆbarｎ−１）＋（ｃbarｎ−１・ｆｎ−１）」なる論理演算を行うために、ビットａbarｎ−１およびｃbarｎ−１を入力とし、ビットｆｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｂbarｎ−１・ｅbarｎ−１）＋（ｄbarｎ−１・ｅｎ−１）」なる論理演算を行うために、ビットｂbarｎ−１およびｄbarｎ−１を入力とし、ビットｅｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｃｎ−１・ｆｉ）＋（ａｎ−１・ｆbarｉ）」なる論理演算を行うために、ビットｃｎ−１およびａｎ−１を入力とし、ビットｆｉの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｄｎ−１・ｅｉ）＋（ｂｎ−１・ｅbarｉ）」なる論理演算を行うために、ビットｄｎ−１およびｂｎ−１を入力とし、ビットｅｉの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｆｎ−１・ａbarｉ）＋（ｆbarｎ−１・ｃbarｉ）」なる論理演算を行うために、ビットａbarｉおよびｃbarｉを入力とし、ビットｆｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｅｎ−１・ｂbarｉ）＋（ｅbarｎ−１・ｄbarｉ）」なる論理演算を行うために、ビットｂbarｉおよびｄbarｉを入力とし、ビットｅｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ａｉ・ｆｊ）＋（ｃｉ・ｆbarｊ）」なる論理演算を行うために、ビットａｉおよびｃｉを入力とし、ビットｆｊの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｂｉ・ｅｊ）＋（ｄｉ・ｅbarｊ）」なる論理演算を行うために、ビットｂｉおよびｄｉを入力とし、ビットｅｊの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用いるようにしたものである。
【００１８】
(13)  本発明の第１３の態様は、実数部Ｘ（Ｒｅ）および虚数部Ｘ（Ｉｍ）からなる複素数Ｘと、実数部Ｙ（Ｒｅ）および虚数部Ｙ（Ｉｍ）からなる複素数Ｙと、実数部Ｚ（Ｒｅ）および虚数部Ｚ（Ｉｍ）からなる複素数Ｚと、に基づいて、Ｑ（Ｒｅ）＝（Ｘ（Ｒｅ）−Ｙ（Ｒｅ））・Ｚ（Ｒｅ）−（Ｘ（Ｉｍ）−Ｙ（Ｉｍ））・Ｚ（Ｉｍ）なる演算式で示される実数部Ｑ（Ｒｅ）およびＱ（Ｉｍ）＝（Ｘ（Ｒｅ）−Ｙ（Ｒｅ））・Ｚ（Ｉｍ）＋（Ｘ（Ｉｍ）−Ｙ（Ｉｍ））・Ｚ（Ｒｅ）なる演算式で示される虚数部Ｑ（Ｉｍ）をもった複素数Ｑを求める演算を行う方法において、
符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ａｎ−１，ａｎ−２，...，ａ１，ａ０なるビットを有する実数部Ｘ（Ｒｅ）をレジスタ上に用意する段階と、
符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｂｎ−１，ｂｎ−２，...，ｂ１，ｂ０なるビットを有する虚数部Ｘ（Ｉｍ）をレジスタ上に用意する段階と、
符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｃｎ−１，ｃｎ−２，...，ｃ１，ｃ０なるビットを有する実数部Ｙ（Ｒｅ）をレジスタ上に用意する段階と、
符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｄｎ−１，ｄｎ−２，...，ｄ１，ｄ０なるビットを有する虚数部Ｙ（Ｉｍ）をレジスタ上に用意する段階と、
符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｅｎ−１，ｅｎ−２，...，ｅ１，ｅ０なるビットを有する実数部Ｚ（Ｒｅ）をレジスタ上に用意する段階と、
符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして、最上位ビット側から順に、ｆｎ−１，ｆｎ−２，...，ｆ１，ｆ０なるビットを有する虚数部Ｚ（Ｉｍ）をレジスタ上に用意する段階と、
各レジスタに格納されている個々のビットに対して、
Ｑ（Ｒｅ）＝
｛（ａbarｎ−１・ｅbarｎ−１）＋（ｃbarｎ−１・ｅｎ−１）
＋（ｄbarｎ−１・ｆbarｎ−１）＋（ｂbarｎ−１・ｆｎ−１）｝・２２ｎ−２−２２ｎ
＋（ａｎ−１＋ｄｎ−１）・２ｎ−１＋２ｎ
＋Σi=0 〜n-2［
｛（ｃｎ−１・ｅｉ）＋（ａｎ−１・ｅbarｉ）
＋（ｂｎ−１・ｆｉ）＋（ｄｎ−１・ｆbarｉ）
＋（ｅｎ−１・ａbarｉ）＋（ｅbarｎ−１・ｃbarｉ）
＋（ｆｎ−１・ｄbarｉ）＋（ｆbarｎ−１・ｂbarｉ）｝・２ｎ＋ｉ−１］
＋Σi=0 〜n-2［（ｂｉ＋ｃｉ）２ｉ］
＋Σi=0 〜n-2Σj=0 〜n-2［
｛（ａｉ・ｅｊ）＋（ｃｉ・ｅbarｊ）＋（ｄｉ・ｆｊ）＋（ｂｉ・ｆbarｊ）｝・２ｉ＋ｊ］
なる演算式（但し、記号barが介挿されたビットは、介挿前のビットに対する論理反転ビットを示す）に基づく演算を演算器に実行させ、各桁の部分積項を求める段階と、
各レジスタに格納されている個々のビットに対して、
Ｑ（Ｉｍ）＝
｛（ａbarｎ−１・ｆbarｎ−１）＋（ｃbarｎ−１・ｆｎ−１）
＋（ｂbarｎ−１・ｅbarｎ−１）＋（ｄbarｎ−１・ｅｎ−１）｝・２２ｎ−２−２２ｎ
＋（ａｎ−１＋ｂｎ−１）・２ｎ−１＋２ｎ
＋Σi=0 〜n-2［
｛（ｃｎ−１・ｆｉ）＋（ａｎ−１・ｆbarｉ）
＋（ｄｎ−１・ｅｉ）＋（ｂｎ−１・ｅbarｉ）
＋（ｆｎ−１・ａbarｉ）＋（ｆbarｎ−１・ｃbarｉ）
＋（ｅｎ−１・ｂbarｉ）＋（ｅbarｎ−１・ｄbarｉ）｝・２ｎ＋ｉ−１］
＋Σi=0 〜n-2［（ｃｉ＋ｄｉ）２ｉ］
＋Σi=0 〜n-2Σj=0 〜n-2［
｛（ａｉ・ｆｊ）＋（ｃｉ・ｆbarｊ）＋（ｂｉ・ｅｊ）＋（ｄｉ・ｅbarｊ）｝・２ｉ＋ｊ］
なる演算式（但し、記号barが介挿されたビットは、介挿前のビットに対する論理反転ビットを示す）に基づく演算を演算器に実行させ、各桁の部分積項を求める段階と、
加算器を用いて、求められた部分積項を各桁について加算して実数部Ｑ（Ｒｅ）および虚数部Ｑ（Ｉｍ）を求める段階と、
を行い、
各桁の部分積項を求める段階において、ビットＫ，Ｌ，Ｍ，Ｍbar（但し、ＭbarはＭの論理反転ビット）について「（Ｋ・Ｍ）＋（Ｌ・Ｍbar）」なる式で表される演算を行う場合に、ビットＫ，Ｌを入力とし、ビットＭの論理値に基づいて、ビットＫもしくはＬのいずれかを選択して出力するセレクタを用いるようにしたものである。
【００１９】
(14)  本発明の第１４の態様は、上述の第１３の態様に係る複素数の積和演算方法において、
「（ａbarｎ−１・ｅbarｎ−１）＋（ｃbarｎ−１・ｅｎ−１）」なる論理演算を行うために、ビットａbarｎ−１およびｃbarｎ−１を入力とし、ビットｅｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｄbarｎ−１・ｆbarｎ−１）＋（ｂbarｎ−１・ｆｎ−１）」なる論理演算を行うために、ビットｄbarｎ−１およびｂbarｎ−１を入力とし、ビットｆｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｃｎ−１・ｅｉ）＋（ａｎ−１・ｅbarｉ）」なる論理演算を行うために、ビットｃｎ−１およびａｎ−１を入力とし、ビットｅｉの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｂｎ−１・ｆｉ）＋（ｄｎ−１・ｆbarｉ）」なる論理演算を行うために、ビットｂｎ−１およびｄｎ−１を入力とし、ビットｆｉの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｅｎ−１・ａbarｉ）＋（ｅbarｎ−１・ｃbarｉ）」なる論理演算を行うために、ビットａbarｉおよびｃbarｉを入力とし、ビットｅｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｆｎ−１・ｄbarｉ）＋（ｆbarｎ−１・ｂbarｉ）」なる論理演算を行うために、ビットｄbarｉおよびｂbarｉを入力とし、ビットｆｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ａｉ・ｅｊ）＋（ｃｉ・ｅbarｊ）」なる論理演算を行うために、ビットａｉおよびｃｉを入力とし、ビットｅｊの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｄｉ・ｆｊ）＋（ｂｉ・ｆbarｊ）」なる論理演算を行うために、ビットｄｉおよびｂｉを入力とし、ビットｆｊの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ａbarｎ−１・ｆbarｎ−１）＋（ｃbarｎ−１・ｆｎ−１）」なる論理演算を行うために、ビットａbarｎ−１およびｃbarｎ−１を入力とし、ビットｆｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｂbarｎ−１・ｅbarｎ−１）＋（ｄbarｎ−１・ｅｎ−１）」なる論理演算を行うために、ビットｂbarｎ−１およびｄbarｎ−１を入力とし、ビットｅｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｃｎ−１・ｆｉ）＋（ａｎ−１・ｆbarｉ）」なる論理演算を行うために、ビットｃｎ−１およびａｎ−１を入力とし、ビットｆｉの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｄｎ−１・ｅｉ）＋（ｂｎ−１・ｅbarｉ）」なる論理演算を行うために、ビットｄｎ−１およびｂｎ−１を入力とし、ビットｅｉの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｆｎ−１・ａbarｉ）＋（ｆbarｎ−１・ｃbarｉ）」なる論理演算を行うために、ビットａbarｉおよびｃbarｉを入力とし、ビットｆｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｅｎ−１・ｂbarｉ）＋（ｅbarｎ−１・ｄbarｉ）」なる論理演算を行うために、ビットｂbarｉおよびｄbarｉを入力とし、ビットｅｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ａｉ・ｆｊ）＋（ｃｉ・ｆbarｊ）」なる論理演算を行うために、ビットａｉおよびｃｉを入力とし、ビットｆｊの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用い、
「（ｂｉ・ｅｊ）＋（ｄｉ・ｅbarｊ）」なる論理演算を行うために、ビットｂｉおよびｄｉを入力とし、ビットｅｊの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタを用いるようにしたものである。
【発明の効果】
【００２０】
本発明に係る複素数の積和演算装置および積和演算方法によれば、「バタフライ演算」を構成する積和演算の一部をセレクタを利用して行うことができるようにしたため、回路構成を単純化することができ、ＬＳＩ上での回路占有面積を低減することができる。また、セレクタを利用したため、桁上げ伝播処理を削減することができ、並列処理による高速化が可能になる。かくして、本発明によれば、「バタフライ演算」をより効率的に行うことが可能になる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明を図示する実施形態に基づいて説明する。
【００２２】
＜＜＜  §１．Cooley-Tukey型Radix-2バタフライ演算  ＞＞＞
図１は、一般に、「Cooley-Tukey型Radix-2バタフライ演算」と呼ばれている演算を行うための積和演算装置の構成を示すブロック図である。この積和演算装置は、複素数Ｘ，Ｙ，Ｚに基づく積和演算を行い、複素数ＰおよびＱを求める機能をもった装置である。なお、本願にいう「積和演算」とは、文字どおり積と和を求める演算を意味するものであるが、ここでいう「和」には、「正の数と負の数との和」すなわち「差」も含まれる。要するに、本願にいう「積和演算」とは、乗算、加算、減算からなる演算を意味する。
【００２３】
演算対象となる数Ｘ，Ｙ，Ｚおよび演算結果として得られる数Ｐ，Ｑは、いずれも複素数であるので、実質的な演算を行う上では、それぞれを実数部（Ｒｅ）と虚数部（Ｉｍ）とに分けた取り扱いがなされる。ここでは、説明の便宜上、複素数Ｘの実数部をＸ（Ｒｅ）、虚数部をＸ（Ｉｍ）とし、複素数Ｙの実数部をＹ（Ｒｅ）、虚数部をＹ（Ｉｍ）とし、複素数Ｚの実数部をＺ（Ｒｅ）、虚数部をＺ（Ｉｍ）とし、複素数Ｐの実数部をＰ（Ｒｅ）、虚数部をＰ（Ｉｍ）とし、複素数Ｑの実数部をＱ（Ｒｅ）、虚数部をＱ（Ｉｍ）とする。
【００２４】
図示のとおり、第１の入力部１０は、複素数Ｘの実数部Ｘ（Ｒｅ）および虚数部Ｘ（Ｉｍ）を入力する構成要素であり、第２の入力部２０は、複素数Ｙの実数部Ｙ（Ｒｅ）および虚数部Ｙ（Ｉｍ）を入力する構成要素であり、第３の入力部３０は、複素数Ｚの実数部Ｚ（Ｒｅ）および虚数部Ｚ（Ｉｍ）を入力する構成要素である。一方、図に一点鎖線で囲って示す第１の演算部４０および第２の演算部５０は、入力された複素数Ｘ，Ｙ，Ｚに基づく演算を行い、新たな複素数Ｐ，Ｑを求める構成要素である。また、第１の出力部６０は、第１の演算部４０によって求められた複素数Ｐの実数部Ｐ（Ｒｅ）および虚数部Ｐ（Ｉｍ）のうちの必要な有効桁数に相当する部分を出力する構成要素であり、第２の出力部７０は、第２の演算部５０によって求められた複素数Ｑの実数部Ｑ（Ｒｅ）および虚数部Ｑ（Ｉｍ）のうちの必要な有効桁数に相当する部分を出力する構成要素である。各入力部１０，２０，３０および各出力部６０，７０は、レジスタによって構成することができる。
【００２５】
第１の演算部４０は、図示のとおり、２つの加算処理回路４１，４２によって構成されている。加算処理回路４１は、Ｘ（Ｒｅ）＋Ｙ（Ｒｅ）＝Ｐ（Ｒｅ）なる演算によって、複素数Ｐの実数部Ｐ（Ｒｅ）を求め、第１の出力部６０に与える機能を果たす。また、加算処理回路４２は、Ｘ（Ｉｍ）＋Ｙ（Ｉｍ）＝Ｐ（Ｉｍ）なる演算によって、複素数Ｐの虚数部Ｐ（Ｉｍ）を求め、第１の出力部６０に与える機能を果たす。このように、第１の演算部４０は、単なる加算処理を行う要素であり、その構成は比較的単純である。
【００２６】
これに対して、第２の演算部５０が行う演算処理は、加算、減算、乗算の組み合わせとなり、やや複雑である。まず、減算処理回路５１により、Ｘ（Ｒｅ）−Ｙ（Ｒｅ）なる減算が行われ、減算処理回路５２により、Ｘ（Ｉｍ）−Ｙ（Ｉｍ）なる減算が行われる。そして、乗算処理回路５３では、（Ｘ（Ｒｅ）−Ｙ（Ｒｅ））・Ｚ（Ｒｅ）なる乗算結果が求められ、乗算処理回路５４では、（Ｘ（Ｉｍ）−Ｙ（Ｉｍ））・Ｚ（Ｉｍ）なる乗算結果が求められ、最後に、減算処理回路５５によって、両者の差、すなわち、（Ｘ（Ｒｅ）−Ｙ（Ｒｅ））・Ｚ（Ｒｅ）−（Ｘ（Ｉｍ）−Ｙ（Ｉｍ））・Ｚ（Ｉｍ）が求められ、この差が、複素数Ｑの実数部Ｑ（Ｒｅ）として、第２の出力部７０に与えられる。
【００２７】
一方、乗算処理回路５６では、（Ｘ（Ｒｅ）−Ｙ（Ｒｅ））・Ｚ（Ｉｍ）なる乗算結果が求められ、乗算処理回路５７では、（Ｘ（Ｉｍ）−Ｙ（Ｉｍ））・Ｚ（Ｒｅ）なる乗算結果が求められ、最後に、加算処理回路５８によって、両者の和、すなわち、（Ｘ（Ｒｅ）−Ｙ（Ｒｅ））・Ｚ（Ｉｍ）＋（Ｘ（Ｉｍ）−Ｙ（Ｉｍ））・Ｚ（Ｒｅ）が求められ、この和が、複素数Ｑの虚数部Ｑ（Ｉｍ）として、第２の出力部７０に与えられる。
【００２８】
結局、第１の演算部４０は、図２上段の（式１）に示すとおり、複素数Ｐの実数部Ｐ（Ｒｅ）を、Ｐ（Ｒｅ）＝Ｘ（Ｒｅ）＋Ｙ（Ｒｅ）なる演算式に基づいて演算するとともに、複素数Ｐの虚数部Ｐ（Ｉｍ）を、Ｐ（Ｉｍ）＝Ｘ（Ｉｍ）＋Ｙ（Ｉｍ）なる演算式に基づいて演算する機能を果たす。同様に、第２の演算部５０は、図２下段の（式２）に示すとおり、複素数Ｑの実数部Ｑ（Ｒｅ）を、Ｑ（Ｒｅ）＝（Ｘ（Ｒｅ）−Ｙ（Ｒｅ））・Ｚ（Ｒｅ）−（Ｘ（Ｉｍ）−Ｙ（Ｉｍ））・Ｚ（Ｉｍ）なる演算式に基づいて演算するとともに、複素数Ｑの虚数部Ｑ（Ｉｍ）を、Ｑ（Ｉｍ）＝（Ｘ（Ｒｅ）−Ｙ（Ｒｅ））・Ｚ（Ｉｍ）＋（Ｘ（Ｉｍ）−Ｙ（Ｉｍ））・Ｚ（Ｒｅ）なる演算式に基づいて演算する機能を果たす。
【００２９】
このような演算が、一般に、「バタフライ演算」と呼ばれているのは、図１の第２の演算部５０内に示されている矢印の交差形状が、「羽を広げた蝶」に似ているためである。このような「バタフライ演算」を含む積和演算は、ＦＦＴ演算などで頻繁に利用される演算であり、特に、図１に示す積和演算は、CooleyとTukeyによって提案された基数２のバタフライ演算であるため、一般に、「Cooley-Tukey型Radix-2バタフライ演算」と呼ばれている。
【００３０】
前掲の非特許文献１などに記載があるとおり、この「Cooley-Tukey型Radix-2バタフライ演算」は、可変点数ＦＦＴ演算に広く利用されている。具体的には、ＦＦＴの処理対象となる第ｍ番目の入力信号Ａｍを複素数Ｘ、第（ｍ＋１）番目の入力信号Ａｍ＋１を複素数Ｙ、回転因子Ｗｋを複素数Ｚとして、図１に示す積和演算装置に与え、バタフライ演算を実行させることにより、ＦＦＴに必要な変換処理を行うことができる。したがって、この図１に示す積和演算装置を利用してＦＦＴ演算装置を構成することが可能になる。前述したとおり、このようなＦＦＴ演算装置は、画像処理、音声処理、映像処理、電波処理の分野などに広く利用することができ、当該ＦＦＴ演算装置を組み込んだシステムＬＳＩは、携帯電話機、デジタルカメラ、ＤＶＤレコーダといった民生機器においても広く利用されている。
【００３１】
＜＜＜  §２．符号を考慮した一般的なビット演算  ＞＞＞
さて、図１に示す積和演算装置は、実際には、デジタル回路によって構成され、その具体的な演算処理は、二進数で表現されたデジタルデータに対して行われることになる。たとえば、各複素数の実数部（Ｒｅ）および虚数部（Ｉｍ）をそれぞれ１６ビットの精度で表現した場合、複素数Ｘ，Ｙ，Ｚは、いずれも３２ビットのデジタルデータとして与えられることになる。一方、演算結果として得られる複素数Ｐ，Ｑの論理的な精度は、複素数Ｘ，Ｙ，Ｚの精度よりも高くなる。これは、乗算処理により、有効桁数が増加するためである。
【００３２】
ただ、実用上は、得られた演算結果のうち、必要な有効桁数に相当する部分のみを複素数Ｐ，Ｑとして出力するようにすればよい。たとえば、図１に示す積和演算装置において、複素数Ｘ，Ｙ，Ｚの実数部（Ｒｅ）および虚数部（Ｉｍ）をそれぞれ１６ビットのデータとして与え、演算結果として得られる複素数Ｐ，Ｑも同じ精度で十分である場合には、第１の出力部６０は、得られた複素数Ｐの実数部Ｐ（Ｒｅ）および虚数部Ｐ（Ｉｍ）のうち、それぞれ上位１６ビットの部分を出力すれば足り、第２の出力部７０は、得られた複素数Ｑの実数部Ｑ（Ｒｅ）および虚数部Ｑ（Ｉｍ）のうち、それぞれ上位１６ビットの部分を出力すれば足りる。
【００３３】
一般的なＦＦＴ演算の場合、演算対象となる入力信号は符号をもった数値で示される。したがって、このＦＦＴ演算をデジタルデータを用いて実行する場合、符号付きのデジタルデータを用い、符号を考慮したビット演算を行う必要がある。そこで、ここでは、符号を考慮した一般的なビット演算を簡単に説明しておく。
【００３４】
まず、デジタルデータにおける一般的な負数表現について述べる。図３は、２の補数表現により負数を表現する方法を説明する図である。図３の左側の表は、十進表現による数値と二進表現による数値との対応を示している。図示のとおり、４ビットの二進数を用いることにより、０を含めて＋７〜−８までの１６通りの数値を表現することができる。正の数の二進表現は、「００００」に順に１を加えてゆくことにより行うことができ、負の数の二進表現は、「００００」から順に１を減じてゆくことにより行うことができる。このような負数の表現方法は、「２の補数表現」と呼ばれており、デジタルデータでの一般的な負数の表現方法となっている。
【００３５】
図３の右側には、正の数の各ビットと負の数の各ビットとの対応関係が示されている。すなわち、正の数「Ａ」を４ビットの羅列「ａ３ａ２ａ１ａ０」で表わした場合、負の数「−Ａ」は、この４ビット「ａ３ａ２ａ１ａ０」をすべて論理反転させた後に１を加えた二進数として表現されることになる。たとえば、「＋７」の二進表現は、「０１１１」であるので、「−７」の二進表現は、「０１１１」の各ビットをすべて反転させて得られる「１０００」に、１を加えた「１００１」ということになる。絶対値が同じ正の数と負の数は、二進表現した場合、常に上述した関係が成り立つ。
【００３６】
図３の左側の表を見れば明らかなように、負の数を二進表現すると、その最上位ビットは必ず「１」になる。別言すれば、符号をもった二進数の場合、最上位ビットは符号を示す「符号部」、それ以外のビットは絶対値を示す「非符号部」として認識することができる。図示のように、全４ビットから構成される符号をもった二進数の場合、一番左の１ビットが「符号部」、残りの３ビットが「非符号部」ということになる。「符号部」が「０」であれば、その二進数は０または正の数であり、「符号部」が「１」であれば、その二進数は負の数である。
【００３７】
図４は、符号をもった任意の数値Ａを、ｎビットからなる二進数のビット値を用いて定義した式を示す図である。この図４の上段には、まず、（式３）として、
Ａ＝−ａｎ−１２ｎ−１＋ａｎ−２２ｎ−２＋...＋ａ１２１＋ａ０２０
＝−ａｎ−１２ｎ−１＋Σi=0〜n-2ａｉ２ｉ
なる式が示されている（なお、本願特許請求の範囲および明細書本文では、電子出願の制約上、総和を示す算術演算子Σの下に記載すべきパラメータαおよびΣの上に記載すべきパラメータβを、Σα〜βのような下付き添字として記載することにする）。この（式３）におけるａｎ−１，ａｎ−２，...，ａ１，ａ０は、数値Ａをｎビットからなる二進数として表現した場合の各ビット（０または１）に相当するものであり、ａｎ−１が最上位ビット（１番左側のビット）、ａ０が最下位ビット（１番右側のビット）である。上述したとおり、最上位ビットは符号部を構成することになるため、（式３）の右辺第１項である「−ａｎ−１２ｎ−１」は符号部となり、残りの項である「Σi=0〜n-2ａｉ２ｉ」は非符号部となる。
【００３８】
（式３）の下方には、ｎ＝４の場合、すなわち、数値Ａを４ビットからなる二進数として表現した場合のビット構成図が示されている。この場合、最上位ビットの「ａ３」が符号部となり、残りの３ビットの部分「ａ２ａ１ａ０」が非符号部となる。この（式３）の意味合いは、具体的な数値を当てはめてみれば容易に理解できよう。たとえば、Ａ＝＋７を二進表現にすると、図３の表から「０１１１」である。すなわち、ａ３＝０，ａ２＝１，ａ１＝１，ａ０＝１となるが、これを（式３）において、ｎ＝４とした式に当てはめてみれば、
Ａ＝−０・２３＋１・２２＋１・２１＋１・２０＝＋７
となる（・は積を示す演算子）。一方、負の数の場合、Ａ＝−７を二進表現にすると、図３の表から「１００１」であるから、ａ３＝１，ａ２＝０，ａ１＝０，ａ０＝１となるが、これを（式３）において、ｎ＝４とした式に当てはめてみれば、
Ａ＝−１・２３＋０・２２＋０・２１＋１・２０＝−７
となる。符号部の項にマイナスがついているのは、このように負の数の場合に、正しい値が得られるようにするためである。
【００３９】
結局、図１に示す積和演算装置において、３つの複素数Ｘ，Ｙ，Ｚの実数部（Ｒｅ）および虚数部（Ｉｍ）を、それぞれｎビットの符号付きデジタルデータで表現すると、図５の（式４）に示すように、
複素数Ｘの実数部：  Ｘ（Ｒｅ）＝−ａｎ−１２ｎ−１＋Σi=0〜n-2ａｉ２ｉ
複素数Ｘの虚数部：  Ｘ（Ｉｍ）＝−ｂｎ−１２ｎ−１＋Σi=0〜n-2ｂｉ２ｉ
複素数Ｙの実数部：  Ｙ（Ｒｅ）＝−ｃｎ−１２ｎ−１＋Σi=0〜n-2ｃｉ２ｉ
複素数Ｙの虚数部：  Ｙ（Ｉｍ）＝−ｄｎ−１２ｎ−１＋Σi=0〜n-2ｄｉ２ｉ
複素数Ｚの実数部：  Ｚ（Ｒｅ）＝−ｅｎ−１２ｎ−１＋Σi=0〜n-2ｅｉ２ｉ
複素数Ｚの虚数部：  Ｚ（Ｉｍ）＝−ｆｎ−１２ｎ−１＋Σi=0〜n-2ｆｉ２ｉ
となる。
【００４０】
ここで、第１の演算部４０が行う演算処理は、図２の（式１）に示すように、
Ｐ（Ｒｅ）＝Ｘ（Ｒｅ）＋Ｙ（Ｒｅ）
Ｐ（Ｉｍ）＝Ｘ（Ｉｍ）＋Ｙ（Ｉｍ）
という単なる加算であり、デジタルデータを用いた実際の演算は、
Ｐ（Ｒｅ）＝−ａｎ−１２ｎ−１−ｃｎ−１２ｎ−１＋Σi=0〜n-2ａｉ２ｉ＋Σi=0〜n-2ｃｉ２ｉ
Ｐ（Ｉｍ）＝−ｂｎ−１２ｎ−１−ｄｎ−１２ｎ−１＋Σi=0〜n-2ｂｉ２ｉ＋Σi=0〜n-2ｄｉ２ｉ
という式で示される。このような演算は、桁上がりを考慮したビットごとの加算処理によって行うことができ、それほど複雑な演算ではない。
【００４１】
これに対して、第２の演算部５０が行う演算処理は、図２の（式２）に示すように、
Ｑ（Ｒｅ）＝（Ｘ（Ｒｅ）−Ｙ（Ｒｅ））・Ｚ（Ｒｅ）
−（Ｘ（Ｉｍ）−Ｙ（Ｉｍ））・Ｚ（Ｉｍ）
Ｑ（Ｉｍ）＝（Ｘ（Ｒｅ）−Ｙ（Ｒｅ））・Ｚ（Ｉｍ）
＋（Ｘ（Ｉｍ）−Ｙ（Ｉｍ））・Ｚ（Ｒｅ）
という乗算を含む「バタフライ演算」になり、デジタルデータを用いた実際の演算は、
Ｑ（Ｒｅ）＝（（−ａｎ−１２ｎ−１＋Σi=0〜n-2ａｉ２ｉ）
−（−ｃｎ−１２ｎ−１＋Σi=0〜n-2ｃｉ２ｉ））
・（−ｅｎ−１２ｎ−１＋Σi=0〜n-2ｅｉ２ｉ）
−（（−ｂｎ−１２ｎ−１＋Σi=0〜n-2ｂｉ２ｉ）
−（−ｄｎ−１２ｎ−１＋Σi=0〜n-2ｄｉ２ｉ））
・（−ｆｎ−１２ｎ−１＋Σi=0〜n-2ｆｉ２ｉ）
Ｑ（Ｉｍ）＝（（−ａｎ−１２ｎ−１＋Σi=0〜n-2ａｉ２ｉ）
−（−ｃｎ−１２ｎ−１＋Σi=0〜n-2ｃｉ２ｉ））
・（−ｆｎ−１２ｎ−１＋Σi=0〜n-2ｆｉ２ｉ）
＋（（−ｂｎ−１２ｎ−１＋Σi=0〜n-2ｂｉ２ｉ）
−（−ｄｎ−１２ｎ−１＋Σi=0〜n-2ｄｉ２ｉ））
・（−ｅｎ−１２ｎ−１＋Σi=0〜n-2ｅｉ２ｉ）
という式で示される。このような乗算項を含む演算を行うために、従来は、多数の乗算器を用いていた。このため、ＬＳＩ上での回路占有面積を広く必要とし、また、桁上げ処理が必要になるため、下位ビットの演算が完了するまで、上位ビットの演算を待つ必要があり、演算時間が長くかかるという問題も生じていた。
【００４２】
本願発明者は、第２の演算部５０によって実行させる演算式の形式を若干変更することにより、このような問題を解決できると考えた。そして、試行錯誤を行った結果、次の§３で述べるような変形を行うことにより、極めて効率的な演算装置を構成できることに想到した。
【００４３】
＜＜＜  §３．演算装置の構成に理想的な変形式  ＞＞＞
本発明の本質は、図１に示す積和演算装置における第２の演算部５０に対する工夫である。この第２の演算部５０は、図２の（式２）に示す演算を行う構成要素であり、その具体的なビット単位の演算は、図５の（式４）に示すｎビットのデジタルデータを用いた演算になることを§２で説明した。ただ、本発明に係る積和演算装置では、このビット単位の具体的な演算が、特別な形に変形された式（演算装置を構成する上での理想的な変形式）に基づいて行われることになる。この§３では、この理想的な変形式の導出を、図６〜図２５を参照して説明する。
【００４４】
最終的に得られる理想的な変形式は、複素数Ｑの実数部Ｑ（Ｒｅ）については図２４の（式２４）であり、虚数部Ｑ（Ｉｍ）については図２５の（式２５）である。したがって、本発明の本質は、図１に示す積和演算装置における第２の演算部５０を、この理想的な変形式に基づく演算回路として構成した点にある。
【００４５】
さて、ここでは、まず、複素数Ｑの実数部Ｑ（Ｒｅ）の演算のみに着目してみよう。図２の（式２）の上段に示されているとおり、
Ｑ（Ｒｅ）＝（Ｘ（Ｒｅ）−Ｙ（Ｒｅ））・Ｚ（Ｒｅ）
−（Ｘ（Ｉｍ）−Ｙ（Ｉｍ））・Ｚ（Ｉｍ）
である。そこで、上式の右辺の１項目をＱ（Ｒｅ１）とおき、２項目をＱ（Ｒｅ２）とおけば、図６に（式５）として示されているとおり、
Ｑ（Ｒｅ）＝Ｑ（Ｒｅ１）−Ｑ（Ｒｅ２）
但し、
Ｑ（Ｒｅ１）＝（Ｘ（Ｒｅ）−Ｙ（Ｒｅ））・Ｚ（Ｒｅ）
＝Ｘ（Ｒｅ）・Ｚ（Ｒｅ）−Ｙ（Ｒｅ）・Ｚ（Ｒｅ）
Ｑ（Ｒｅ２）＝（Ｘ（Ｉｍ）−Ｙ（Ｉｍ））・Ｚ（Ｉｍ）
＝Ｘ（Ｉｍ）・Ｚ（Ｉｍ）−Ｙ（Ｉｍ）・Ｚ（Ｉｍ）
である。
【００４６】
続いて、上式のＱ（Ｒｅ１）の右辺の各項に、図５の対応する項を代入すれば、図７に示す（式６）が得られる。この（式６）において、破線で囲った部分（Ｚ（Ｒｅ）の部分）をαとおき、形式を若干変えてみよう。図８に示すように、一般に任意の論理値「ｓ」について、「ｓ＝（１−ｓbar）」が成り立つ。ここで、「ｓbar」は、「ｓ」の論理反転である。すなわち、「ｓ」を１ビットのデータとすれば、「ｓ」が「０」なら「ｓbar」は「１」であり、「ｓ」が「１」なら「ｓbar」は「０」の関係にある。なお、本願図面では、任意の論理値「ｓ」についての論理反転値を記号「ｓ」の上にバーを描いた記号で示すことにするが、本願明細書では、電子出願の制約上、「ｓbar」と記載することにする。
【００４７】
さて、「ｓ＝（１−ｓbar）」の関係を用いて、αを書き直せば、図８に示すとおり、
α＝−ｅｎ−１２ｎ−１＋Σi=0〜n-2ｅｉ２ｉ
＝−（１−ｅbarｎ−１）２ｎ−１＋Σi=0〜n-2（１−ｅbarｉ）２ｉ
と変形することができる。ここで、「ｅbarｎ−１」は「ｅｎ−１」の論理反転ビットであり、「ｅbarｉ」は「ｅｉ」の論理反転ビットである。上述したとおり、本願図面では、論理反転を記号の上にバーを描くことによって示すが、本願明細書では、電子出願の制約上、記号barが介挿されたビット（たとえば「ｅbarｎ−１」）は、介挿前のビット（たとえば「ｅｎ−１」）に対する論理反転ビットを示すものとする。上式を展開して整理すると、結局、図８の最下行に示すように、
α＝−［−ｅbarｎ−１２ｎ−１＋Σi=0〜n-2ｅbarｉ２ｉ＋１］  （式７）
が得られる。
【００４８】
一方、図６に示すＱ（Ｒｅ２）については、右辺の各項に、図５の対応する項を代入することにより、図９に示す（式８）が得られる。この（式８）において、破線で囲った部分（Ｚ（Ｉｍ）の部分）をβとおき、上述したαと同様に形式を変えると、図１０の最下行に示すように、
β＝−［−ｆbarｎ−１２ｎ−１＋Σi=0〜n-2ｆbarｉ２ｉ＋１］  （式９）
が得られる。
【００４９】
そこで、図７の（式６）におけるαの部分および図９の（式８）におけるβの部分を、それぞれ図８の（式７）および図１０の（式９）に示す形式のαおよびβに置換すれば、図１１に示す（式１０）が得られる。この（式１０）を展開して整理すると、図１２に示す（式１１）が得られる。ここで、（式１１）の左側に示す丸数字１〜５は、２のべき乗項ごとに各項をまとめたグループを示している。すなわち、丸数字１で示すグループは、２２ｎ−２のべき乗項を示し、丸数字２で示すグループは、２ｎ−１のべき乗項を示し、丸数字３で示すグループは、２ｉのべき乗項を示し、丸数字４で示すグループは、別な２ｉのべき乗項を示し、丸数字５で示すグループは、２ｉ＋ｊのべき乗項を示している。なお、丸数字５で示すグループ（図１１の（式１０）におけるΣの項同士の積に対応する項）では、二重のΣ記号が用いられているため、Σ記号ごとに、添字ｉもしくはｊを用いて両者を区別している。
【００５０】
続いて、図１２の丸数字３で示すグループについて、更なる変形を試みる。図１３に示すように、一般に、任意の論理値ｓｉについて、
Σi=0〜n-2（１−ｓｉ）２ｉ＝Σi=0〜n-2２ｉ−Σi=0〜n-2ｓｉ２ｉ
であるから、
−Σi=0〜n-2ｓｉ２ｉ＝Σi=0〜n-2（１−ｓｉ）２ｉ−Σi=0〜n-2２ｉ  （式１２）である。
これを変形すれば、図１３の最下行に示されているように、
−Σi=0〜n-2ｓｉ２ｉ＝Σi=0〜n-2（ｓbarｉ）２ｉ+１−２ｎ−１  （式１３）を得る。
そこで、この（式１３）を、図１２の丸数字３で示すグループの各項に適用すれば、図１４の（式１４）を得ることができる。
【００５１】
そこで、図１２の丸数字３で示すグループの代わりに、図１４の丸数字３で示すグループを当てはめて整理すると、図１５に示す（式１５）が得られる。この（式１５）における丸数字６で示すグループは、図１２の丸数字１のグループに、図１４の２２ｎ−２のべき乗項を追加したものであり、丸数字７で示すグループは、図１２の丸数字２のグループに、図１４の２ｎ−１のべき乗項を追加したものであり、丸数字８で示すグループは、図１４の２ｉのべき乗項を集めたものである。なお、丸数字９で示すグループは、図１２の丸数字４で示すグループと全く同じであり、丸数字１０で示すグループは、図１２の丸数字５で示すグループと全く同じである。
【００５２】
次に、図１５の丸数字６で示すグループについて、更なる変形を試みる。図１６に示すように、一般に、任意の論理値ｓ，ｔについて、
（ｓ・ｔ）−ｓ−ｔ＝−（ｓ OR ｔ）  （式１６）が成り立つ。
ここで、「OR」は、論理和演算子である。この（式１６）が成り立つ理由は、図１６の真理値表から明らかである。そこで、図１５の丸数字６のグループを整理すると、図１７の上段のようになるので、上記（式１６）を適用すれば、図１７の下段に示す（式１７）が得られる。ただ、この（式１７）を構成する４つの項は、いずれも頭にマイナス符号が付された負の値となっているため好ましくない（符号を考慮した演算器を構成する必要が出てくる）。そこで、次のような工夫により、これら４つの負項を正項に転じる変形を施す。
【００５３】
まず、図１８に示すように、一般に、２つの論理値ｓ，ｔについては、
（ｓ OR ｔ）bar＝（ｓbar・ｔbar）  （式１８）が成り立つ。
この（式１８）が成り立つ理由は、図１８の真理値表から明らかである。そこで、図１９に示すように、−（ａｎ−１ OR ｅｎ−１）・２２ｎ−２なる負項を変形すれば、図１９の最下行に示すように、（ａbarｎ−１・ｅbarｎ−１）・２２ｎ−２−２２ｎ−２なる正項の形が得られる（式１９）。したがって、図１７の第５行目に記載された−（ａｎ−１ OR ｅｎ−１）・２２ｎ−２なる負項は、（ａbarｎ−１・ｅbarｎ−１）・２２ｎ−２−２２ｎ−２という正項の形に書き換えることができる。同様にして、図１７の第６行目〜第８行目に記載された各項についても書き換えを行えば、丸数字６のグループは、図２０に示すとおり書き換えられ、（式２０）のようになる。
【００５４】
続いて、図１５の丸数字７で示すグループについて、図２１に示すような変形を行う。一般に、任意の論理値「ｓ」と「ｓbar」とは、どちらか一方が０，他方が１の関係にあるので、常に「ｓ＋ｓbar＝１」が成り立つ。よって、丸数字７で示すグループは、図２１の最下行に示す（式２１）のように変形される。
【００５５】
次に、図１５の丸数字８で示すグループについて、更なる変形を試みる。図２２に示すように、一般に、任意の論理値ｓ，ｔについて、
ｓｎ−１２ｎ−１Σi=0〜n-2ｔｉ２ｉ＝Σi=0〜n-2（ｓｎ−１２ｎ−１・ｔｉ２ｉ）
であるから、
ｓｎ−１２ｎ−１Σi=0〜n-2ｔｉ２ｉ＝Σi=0〜n-2（ｓｎ−１・ｔｉ・２ｎ＋ｉ−１）  （式２２）
である。この（式２２）を、図１５の丸数字８で示すグループに適用すれば、図２３に示す（式２３）が得られる。
【００５６】
結局、図１５に示す丸数字６〜１０からなる（式１５）は、図２４に示す丸数字１１〜１５からなる（式２４）に書き換えることができる。すなわち、図２４の丸数字１１で示すグループは、丸数字６のグループを図２０の（式２０）の形式に書き換えたものであり、図２４の丸数字１２で示すグループは、丸数字７のグループを図２１の（式２１）の形式に書き換えたものであり、図２４の丸数字１３で示すグループは、丸数字８のグループを図２３の（式２３）の形式に書き換えたものである。なお、丸数字１４で示すグループは、図１５の丸数字９で示すグループと全く同じであり、丸数字１５で示すグループは、図１５の丸数字１０で示すグループと全く同じである。
【００５７】
前述したとおり、この図２４に示す（式２４）は、複素数Ｑの実数部Ｑ（Ｒｅ）をデジタルデータの演算処理によって求める場合の理想的な形になっている。全く同様の式変形を行うことにより、複素数Ｑの虚数部Ｑ（Ｉｍ）についての理想的な演算式を、図２５に示す（式２５）として得ることができる。
【００５８】
＜＜＜  §４．理想的な変形式に基づく装置構成の利点  ＞＞＞
§１で述べたとおり、本発明は、図１に示す複素数の積和演算装置に係るものである。この装置の第１の入力部１０には複素数Ｘが与えられ、第２の入力部２０には複素数Ｙが与えられ、第３の入力部３０には複素数Ｚが与えられる。ここで、各複素数の実数部（Ｒｅ）および虚数部（Ｉｍ）を、それぞれｎビットからなるデジタルデータで表現すれば、図５の（式４）で示されるようなビット構成からなるデジタルデータが各入力部１０，２０，３０に与えられることになる。別言すれば、各複素数Ｘ，Ｙ，Ｚの実数部（Ｒｅ）および虚数部（Ｉｍ）は、いずれも、符号を示す最上位ビットからなる符号部と、絶対値を示す（ｎ−１）ビットからなる非符号部と、によって構成され（但し、ｎ≧２）、２の補数表現により負数を表現した合計ｎビットのデジタルデータとして与えられることになる。
【００５９】
図５の（式４）に示す定義を行うことにすれば、第１の入力部１０には、最上位ビット側から順に、ａｎ−１，ａｎ−２，...，ａ１，ａ０という合計ｎビットからなる実数部Ｘ（Ｒｅ）と、ｂｎ−１，ｂｎ−２，...，ｂ１，ｂ０という合計ｎビットからなる虚数部Ｘ（Ｉｍ）とが与えられる。同様に、第２の入力部２０には、最上位ビット側から順に、ｃｎ−１，ｃｎ−２，...，ｃ１，ｃ０という合計ｎビットからなる実数部Ｙ（Ｒｅ）と、ｄｎ−１，ｄｎ−２，...，ｄ１，ｄ０という合計ｎビットからなる虚数部Ｙ（Ｉｍ）とが与えられ、第３の入力部３０には、最上位ビット側から順に、ｅｎ−１，ｅｎ−２，...，ｅ１，ｅ０という合計ｎビットからなる実数部Ｚ（Ｒｅ）と、ｆｎ−１，ｆｎ−２，...，ｆ１，ｆ０という合計ｎビットからなる虚数部Ｚ（Ｉｍ）とが与えられる。
【００６０】
図１に示す第１の演算部４０は、複素数Ｐの実数部Ｐ（Ｒｅ）を、Ｐ（Ｒｅ）＝Ｘ（Ｒｅ）＋Ｙ（Ｒｅ）なる演算式に基づいて演算するとともに、複素数Ｐの虚数部Ｐ（Ｉｍ）を、Ｐ（Ｉｍ）＝Ｘ（Ｉｍ）＋Ｙ（Ｉｍ）なる演算式に基づいて演算する構成要素である。このような単なる加算処理を行う回路構成は比較的単純であり、従来から利用されている一般的な加算処理回路を用いて構成しても、特に問題は生じない。具体的には、実数部Ｐ（Ｒｅ）は、ａｎ−１，ａｎ−２，...，ａ１，ａ０という合計ｎビットのデジタルデータと、ｃｎ−１，ｃｎ−２，...，ｃ１，ｃ０という合計ｎビットのデジタルデータとの桁上げを考慮したビットごとの加算により求めることができ、虚数部Ｐ（Ｉｍ）は、ｂｎ−１，ｂｎ−２，...，ｂ１，ｂ０という合計ｎビットのデジタルデータと、ｄｎ−１，ｄｎ−２，...，ｄ１，ｄ０という合計ｎビットのデジタルデータとの桁上げを考慮したビットごとの加算により求めることができる。
【００６１】
これに対して、第２の演算部５０が行う演算処理は、いわゆる「バタフライ演算」であり、乗算器を用いた通常のビット間演算を行うことは、あまり効率的ではない。すなわち、第２の演算部５０が行う演算処理は、複素数Ｑの実数部Ｑ（Ｒｅ）を、Ｑ（Ｒｅ）＝（Ｘ（Ｒｅ）−Ｙ（Ｒｅ））・Ｚ（Ｒｅ）−（Ｘ（Ｉｍ）−Ｙ（Ｉｍ））・Ｚ（Ｉｍ）なる演算式に基づいて演算するとともに、複素数Ｑの虚数部Ｑ（Ｉｍ）を、Ｑ（Ｉｍ）＝（Ｘ（Ｒｅ）−Ｙ（Ｒｅ））・Ｚ（Ｉｍ）＋（Ｘ（Ｉｍ）−Ｙ（Ｉｍ））・Ｚ（Ｒｅ）なる演算式に基づいて演算する処理、ということができるが、これら各項に、上述した各ビット列からなるデジタルデータをそのまま当てはめてビット間演算を行うことにすると、乗算器を構成するために多大な占有面積が必要となり、演算速度の向上も期待できない。
【００６２】
本発明の本質は、図２４の（式２４）に基いてビット間演算を行うハードウエア構成により、複素数Ｑの実数部Ｑ（Ｒｅ）を算出させ、図２５の（式２５）に基いてビット間演算を行うハードウエア構成により、複素数Ｑの虚数部Ｑ（Ｉｍ）を算出させる点にある。すなわち、本発明では、第２の演算部５０の具体的なハードウエアを、（式２４）および（式２５）に基づいて構成することになる。この（式２４）および（式２５）が、図２の（式２）に図５の（式４）を代入し、様々な変形を行うことによって得られた式であることは、既に§３で説明したとおりである。したがって、（式２４）に基づく演算結果は、複素数Ｑの実数部Ｑ（Ｒｅ）の正しいデジタル値を示し、（式２５）に基づく演算結果は、複素数Ｑの虚数部Ｑ（Ｉｍ）の正しいデジタル値を示すことになる。
【００６３】
（式２４）および（式２５）に含まれる変数は、ａｎ−１〜ａ０、ｂｎ−１〜ｂ０、ｃｎ−１〜ｃ０、ｄｎ−１〜ｄ０、ｅｎ−１〜ｅ０、ｆｎ−１〜ｆ０、もしくは、これらの論理反転ビットである。ここで、各ビットａｎ−１〜ａ０、ｂｎ−１〜ｂ０、ｃｎ−１〜ｃ０、ｄｎ−１〜ｄ０、ｅｎ−１〜ｅ０、ｆｎ−１〜ｆ０は、第１の入力部１０，第２の入力部２０，第３の入力部３０に複素数Ｘ，Ｙ，Ｚの値として与えられたビットである。また、一般に、任意のビットｓの論理反転ビットｓbarは、インバータなどの演算器を用いて簡単に作り出すことができるので、上記各ビットの論理反転ビットは、必要に応じて適宜作り出すことができる。しかも、インバータは比較的単純な回路で実現できるので、必要に応じて論理反転ビットを作成することは、ハードウエア構成をそれほど複雑にする要因にはならない。
【００６４】
既に述べたとおり、この（式２４）および（式２５）は、実数部Ｑ（Ｒｅ）および虚数部Ｑ（Ｉｍ）を、デジタルデータの演算処理によって求める場合の理想的な形になっている。その理由は、各部において、セレクタ論理を適用できるからである。この点を、もう少し詳しく説明しよう。
【００６５】
図２６は、図２４の（式２４）の中から、破線で囲ったγ３の部分を抽出して示す図である。ここで、
γ３＝（ｃｎ−１・ｅｉ）＋（ａｎ−１・ｅbarｉ）
なる式において、ビット「ｅｉ」とビット「ｅbarｉ」との関係に着目すると、後者は前者の論理反転ビットであるから、ｅｉ＝０のとき、ｅbarｉ＝１になり、この場合、γ３＝ａｎ−１になる。逆に、ｅｉ＝１のとき、ｅbarｉ＝０になり、この場合、γ３＝ｃｎ−１になる。結局、γ３の値は、ｅｉの論理値によって決定されることになり、その値は、ａｎ−１かｃｎ−１かの二者択一である。これは、γ３の演算にセレクタ論理が適用できることを示している。すなわち、γ３を求める演算回路として、図２７に示すようなセレクタを用いることができる。
【００６６】
図２７に示すセレクタは、ビット「ａｎ−１」とビット「ｃｎ−１」という２つの入力のうち、選択信号として与えられたビット「ｅｉ」の値に基づいて、いずれか一方を選択して出力する論理回路である。具体的には、ｅｉ＝０のときには、ビット「ａｎ−１」を選択して、これをγ３として出力する処理を行い、ｅｉ＝１のときには、ビット「ｃｎ−１」を選択して、これをγ３として出力する処理を行う。
【００６７】
一方、図２８は、図２４の（式２４）の中から、破線で囲ったγ６の部分を抽出して示す図である。ここで、
γ６＝（ｆｎ−１・ｄbarｉ）＋（ｆbarｎ−１・ｂbarｉ）
なる式において、ビット「ｆｎ−１」とビット「ｆbarｎ−１」との関係に着目すると、後者は前者の論理反転ビットであるから、ｆｎ−１＝０のとき、ｆbarｎ−１＝１になり、この場合、γ６＝ｂbarｉになる。逆に、ｆｎ−１＝１のとき、ｆbarｎ−１＝０になり、この場合、γ６＝ｄbarｉになる。結局、γ６の値は、ｆｎ−１の論理値によって決定されることになり、その値は、ｂbarｉかｄbarｉかの二者択一である。これは、γ６の演算にセレクタ論理が適用できることを示している。すなわち、γ６を求める演算回路として、図２９に示すようなセレクタを用いることができる。
【００６８】
図２９に示すセレクタは、ビット「ｂbarｉ」とビット「ｄbarｉ」という２つの入力のうち、選択信号として与えられたビット「ｆｎ−１」の値に基づいて、いずれか一方を選択して出力する論理回路である。具体的には、ｆｎ−１＝０のときには、ビット「ｂbarｉ」を選択して、これをγ６として出力する処理を行い、ｆｎ−１＝１のときには、ビット「ｄbarｉ」を選択して、これをγ６として出力する処理を行う。
【００６９】
要するに、一般論として言えば、ビットＫ，Ｌ，Ｍ，Ｍbar（但し、ＭbarはＭの論理反転ビット）について「（Ｋ・Ｍ）＋（Ｌ・Ｍbar）」なる式で表される演算が必要な場合、当該演算は、ビットＫ，Ｌを入力とし、ビットＭの論理値に基づいて、ビットＫもしくはＬのいずれかを選択して出力するセレクタによって実行することが可能ということになる。
【００７０】
図２４に示す（式２４）および図２５に示す（式２５）には、この「（Ｋ・Ｍ）＋（Ｌ・Ｍbar）」なる形式の演算部分が随所に含まれている。たとえば、（式２４）に破線で囲って示すγ１〜γ８の部分および（式２５）に破線で囲って示すδ１〜δ８の部分は、いずれも「（Ｋ・Ｍ）＋（Ｌ・Ｍbar）」なる形式の論理式であり、これらの部分に対する演算回路は、いずれもセレクタを用いて実現することが可能である。
【００７１】
しかも、γ３〜γ６の部分およびδ３〜δ６の部分は、いずれもΣ記号の内側部分にあるため、実際には、そのｎ倍もの箇所に用いられる演算であり、γ７〜γ８の部分およびδ７〜δ８の部分は、いずれも二重Σ記号の内側部分にあるため、実際には、そのｎ２倍もの箇所に用いられる演算部分である。本発明によれば、このように多数箇所で用いられる演算処理をすべて単純なセレクタ回路で実現することができるので、全体のハードウエア構成を非常に単純化することが可能になる。
【００７２】
また、セレクタ回路のもうひとつの利点は、桁上げが生じないという点である。たとえば、１ビット同士の加算の場合、「１＋１＝１０」という演算が行われると、上位ビットへの桁上げ処理が必要になる。このため、一般的な加算器や乗算器では、桁上げ処理が必須になり、下位ビットの演算が完了するまで、上位ビットの演算を待つ必要があり、演算時間が長くかかるという弊害が生じる。ところが、セレクタ回路の動作には、桁上げ処理は不要であるため、多数のセレクタ回路を同時に並列的に動作させることができる。
【００７３】
このように本発明では、「バタフライ演算」を構成する積和演算の一部をセレクタを利用して行うことができるようにしたため、回路構成を単純化することができ、ＬＳＩ上での回路占有面積を低減することができる。また、セレクタを利用したため、桁上げ伝播処理を削減することができ、並列処理による高速化が可能になる。更に、（式２４）および（式２５）を見れば明らかなように、２２ｎなる項を除いて、すべての項は正の項になっており、各項は符号を考慮せずに単純加算する処理を行えばよい。
【００７４】
結局、本発明の最も重要な特徴は、図１に示す積和演算装置における第２の演算部５０に、複素数Ｑの実数部Ｑ（Ｒｅ）および虚数部Ｑ（Ｉｍ）を演算させる際に、図２４に示す（式２４）および図２５に示す（式２５）に基づく論理演算を行わせるようにした点にある。
【００７５】
具体的には、実数部Ｑ（Ｒｅ）を求める際には、
Ｑ（Ｒｅ）＝
｛（ａbarｎ−１・ｅbarｎ−１）＋（ｃbarｎ−１・ｅｎ−１）
＋（ｄbarｎ−１・ｆbarｎ−１）＋（ｂbarｎ−１・ｆｎ−１）｝・２２ｎ−２−２２ｎ
＋（ａｎ−１＋ｄｎ−１）・２ｎ−１＋２ｎ
＋Σi=0 〜n-2［
｛（ｃｎ−１・ｅｉ）＋（ａｎ−１・ｅbarｉ）
＋（ｂｎ−１・ｆｉ）＋（ｄｎ−１・ｆbarｉ）
＋（ｅｎ−１・ａbarｉ）＋（ｅbarｎ−１・ｃbarｉ）
＋（ｆｎ−１・ｄbarｉ）＋（ｆbarｎ−１・ｂbarｉ）｝・２ｎ＋ｉ−１］
＋Σi=0 〜n-2［（ｂｉ＋ｃｉ）２ｉ］
＋Σi=0 〜n-2Σj=0 〜n-2［
｛（ａｉ・ｅｊ）＋（ｃｉ・ｅbarｊ）＋（ｄｉ・ｆｊ）＋（ｂｉ・ｆbarｊ）｝・２ｉ＋ｊ］
なる演算式（但し、記号barが介挿されたビットは、介挿前のビットに対する論理反転ビットを示す）に基づくビットごとの演算を行うことになる。
【００７６】
また、虚数部Ｑ（Ｉｍ）を求める際には、
Ｑ（Ｉｍ）＝
｛（ａbarｎ−１・ｆbarｎ−１）＋（ｃbarｎ−１・ｆｎ−１）
＋（ｂbarｎ−１・ｅbarｎ−１）＋（ｄbarｎ−１・ｅｎ−１）｝・２２ｎ−２−２２ｎ
＋（ａｎ−１＋ｂｎ−１）・２ｎ−１＋２ｎ
＋Σi=0 〜n-2［
｛（ｃｎ−１・ｆｉ）＋（ａｎ−１・ｆbarｉ）
＋（ｄｎ−１・ｅｉ）＋（ｂｎ−１・ｅbarｉ）
＋（ｆｎ−１・ａbarｉ）＋（ｆbarｎ−１・ｃbarｉ）
＋（ｅｎ−１・ｂbarｉ）＋（ｅbarｎ−１・ｄbarｉ）｝・２ｎ＋ｉ−１］
＋Σi=0 〜n-2［（ｃｉ＋ｄｉ）２ｉ］
＋Σi=0 〜n-2Σj=0 〜n-2［
｛（ａｉ・ｆｊ）＋（ｃｉ・ｆbarｊ）＋（ｂｉ・ｅｊ）＋（ｄｉ・ｅbarｊ）｝・２ｉ＋ｊ］
なる演算式（但し、記号barが介挿されたビットは、介挿前のビットに対する論理反転ビットを示す）に基づくビットごとの演算を行うことになる。
【００７７】
ここで、上記演算式において、ビットＫ，Ｌ，Ｍ，Ｍbar（但し、ＭbarはＭの論理反転ビット）について「（Ｋ・Ｍ）＋（Ｌ・Ｍbar）」なる式で表される演算を行うために、ビットＫ，Ｌを入力とし、ビットＭの論理値に基づいて、ビットＫもしくはＬのいずれかを選択して出力するセレクタを用いるようにすれば、ハードウエア構成を非常に単純化することができ、また、演算の高速化を図ることができるようになる。
【００７８】
具体的には、
「（ａbarｎ−１・ｅbarｎ−１）＋（ｃbarｎ−１・ｅｎ−１）」なる論理演算（図２４のγ１の部分を求める演算）を行うために、ビットａbarｎ−１およびｃbarｎ−１を入力とし、ビットｅｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｄbarｎ−１・ｆbarｎ−１）＋（ｂbarｎ−１・ｆｎ−１）」なる論理演算（図２４のγ２の部分を求める演算）を行うために、ビットｄbarｎ−１およびｂbarｎ−１を入力とし、ビットｆｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｃｎ−１・ｅｉ）＋（ａｎ−１・ｅbarｉ）」なる論理演算（図２４のγ３の部分を求める演算）を行うために、ビットｃｎ−１およびａｎ−１を入力とし、ビットｅｉの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｂｎ−１・ｆｉ）＋（ｄｎ−１・ｆbarｉ）」なる論理演算（図２４のγ４の部分を求める演算）を行うために、ビットｂｎ−１およびｄｎ−１を入力とし、ビットｆｉの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｅｎ−１・ａbarｉ）＋（ｅbarｎ−１・ｃbarｉ）」なる論理演算（図２４のγ５の部分を求める演算）を行うために、ビットａbarｉおよびｃbarｉを入力とし、ビットｅｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｆｎ−１・ｄbarｉ）＋（ｆbarｎ−１・ｂbarｉ）」なる論理演算（図２４のγ６の部分を求める演算）を行うために、ビットｄbarｉおよびｂbarｉを入力とし、ビットｆｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ａｉ・ｅｊ）＋（ｃｉ・ｅbarｊ）」なる論理演算（図２４のγ７の部分を求める演算）を行うために、ビットａｉおよびｃｉを入力とし、ビットｅｊの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｄｉ・ｆｊ）＋（ｂｉ・ｆbarｊ）」なる論理演算（図２４のγ８の部分を求める演算）を行うために、ビットｄｉおよびｂｉを入力とし、ビットｆｊの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ａbarｎ−１・ｆbarｎ−１）＋（ｃbarｎ−１・ｆｎ−１）」なる論理演算（図２５のδ１の部分を求める演算）を行うために、ビットａbarｎ−１およびｃbarｎ−１を入力とし、ビットｆｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｂbarｎ−１・ｅbarｎ−１）＋（ｄbarｎ−１・ｅｎ−１）」なる論理演算（図２５のδ２の部分を求める演算）を行うために、ビットｂbarｎ−１およびｄbarｎ−１を入力とし、ビットｅｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｃｎ−１・ｆｉ）＋（ａｎ−１・ｆbarｉ）」なる論理演算（図２５のδ３の部分を求める演算）を行うために、ビットｃｎ−１およびａｎ−１を入力とし、ビットｆｉの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｄｎ−１・ｅｉ）＋（ｂｎ−１・ｅbarｉ）」なる論理演算（図２５のδ４の部分を求める演算）を行うために、ビットｄｎ−１およびｂｎ−１を入力とし、ビットｅｉの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｆｎ−１・ａbarｉ）＋（ｆbarｎ−１・ｃbarｉ）」なる論理演算（図２５のδ５の部分を求める演算）を行うために、ビットａbarｉおよびｃbarｉを入力とし、ビットｆｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｅｎ−１・ｂbarｉ）＋（ｅbarｎ−１・ｄbarｉ）」なる論理演算（図２５のδ６の部分を求める演算）を行うために、ビットｂbarｉおよびｄbarｉを入力とし、ビットｅｎ−１の論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ａｉ・ｆｊ）＋（ｃｉ・ｆbarｊ）」なる論理演算（図２５のδ７の部分を求める演算）を行うために、ビットａｉおよびｃｉを入力とし、ビットｆｊの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
「（ｂｉ・ｅｊ）＋（ｄｉ・ｅbarｊ）」なる論理演算（図２５のδ８の部分を求める演算）を行うために、ビットｂｉおよびｄｉを入力とし、ビットｅｊの論理値に基づいて、入力したビットのいずれかを選択して出力するセレクタと、
を用いるようにすればよい。
【００７９】
＜＜＜  §５．ｎ＝４に設定した場合の実施形態  ＞＞＞
これまで、複素数Ｘ，Ｙ，Ｚの実数部（Ｒｅ）および虚数部（Ｉｍ）を、それぞれｎビットのデジタルデータとして与え、複素数Ｐ，Ｑを求める一般的な例を述べた。この場合、第１の演算部４０は、（ｎ＋１）ビットのデジタルデータからなる実数部Ｐ（Ｒｅ）および虚数部Ｐ（Ｉｍ）を算出することができ、第２の演算部５０は、（２ｎ＋１）ビットのデジタルデータからなる実数部Ｑ（Ｒｅ）および虚数部Ｑ（Ｉｍ）を算出することができる。ここで、実数部Ｐ（Ｒｅ）および虚数部Ｐ（Ｉｍ）の２０〜２ｎ−１の桁は絶対値を示す非符号部を構成し、２ｎの桁は、符号を示す符号部を構成する。一方、実数部Ｑ（Ｒｅ）および虚数部Ｑ（Ｉｍ）の２０〜２２ｎ−１の桁は絶対値を示す非符号部を構成し、２２ｎの桁は、符号を示す符号部を構成する。
【００８０】
ここでは、これまで述べてきたｎビットのデジタルデータに基づいて複素数Ｑを求める一般例において、ｎ＝４に設定した具体的な実施形態を述べる。図３０は、図２４に示す実数部Ｑ（Ｒｅ）の演算式に、ｎ＝４を代入することにより得られる演算式を示す図であり、図３１は、この図３０の丸数字１５の部分の詳細な演算式を示す図である。この図３０および図３１では、図２４においてΣ記号で示されていた演算式は展開された状態で示されている。展開された各項は、それぞれが部分積項を構成しており、各部分積項には、２０〜２８という２のべき乗の項が含まれている。この２のべき乗の項は、各部分積項の位取り、すなわち、二進数の桁位置を示すものである。
【００８１】
たとえば、丸数字１１のグループを構成する項のうち、最後の「２８」なる項（唯一の負項）を除き、他の各項には、２６の項が含まれている。これは、これらの部分積項が２６の桁の数値を示すことを意味している。最後の「２８」なる項は、２８の桁の数値を示している。この２８の桁は、符号部に相当する桁であり、「０」であれば正、「１」であれば負を示すことになる。丸数字１１のグループにおける２８の桁の数値は、定数「−１」となっている。マイナス記号が付されているのは、この項が符号部として機能するためである。したがって、下位桁からの桁上げがなければ、符号部の絶対値は「１」となり、符号は「負」であることを示し、下位桁からの桁上げがあれば、符号部の絶対値は「０」となり、符号は「正」であることを示すことになる。
【００８２】
一方、丸数字１２〜１５を構成する各部分積項には、２０〜２５という２のべき乗の項が含まれているが、これは、これらの各部分積項が２０〜２５の桁の数値を示すことを意味している。丸数字１１の２６の桁を含めた２０〜２６の桁は、非符号部に相当する桁であり、これらの桁では、いずれの部分積項も正の項となっているため、前述したとおり、演算器を構成する際には、符号を考慮する必要はなく、すべての項を桁を考慮した上で加算すればよい。なお、２７という２のべき乗の項は含まれていない。
【００８３】
図３２は、図３０および図３１に示す実数部Ｑ（Ｒｅ）についての演算式に含まれている部分積項を、それぞれの桁位置に並べて示した図である。図の底部に示す２８〜２０は、それぞれの桁位置を示しており、各桁位置に並べられた升目は、各桁位置に対応する項を示している。
【００８４】
たとえば、図３２の一番右の欄は、２０の桁位置を示しており、この欄には、上から順に、「ｂ０ｆbar０」，「ｄ０ｆ０」，「ｃ０ｅbar０」，「ａ０ｅ０」，「ｃ０」，「ｂ０」という６個の項が記載されている。ここで、「ｂ０ｆbar０」，「ｄ０ｆ０」，「ｃ０ｅbar０」，「ａ０ｅ０」の４項は、図３１の式の右辺第１行目に含まれる項（ｉ＝０の場合の２０の各項）であり、「ｃ０」，「ｂ０」の２項は、図３０の丸数字１４の第１行目に含まれる２０の各項である。
【００８５】
同様に、図３２の右から２番目の欄は、２１の桁位置を示しており、この欄には、上から順に、「ｂ０ｆbar１」，「ｄ０ｆ１」，「ｃ０ｅbar１」，「ａ０ｅ１」，「ｂ１ｆbar０」，「ｄ１ｆ０」，「ｃ１ｅbar０」，「ａ１ｅ０」，「ｃ１」，「ｂ１」という１０個の項が記載されている。ここで、「ｂ０ｆbar１」，「ｄ０ｆ１」，「ｃ０ｅbar１」，「ａ０ｅ１」の４項は、図３１の式の右辺第２行目に含まれる項（ｉ＝０の場合の２１の各項）であり、「ｂ１ｆbar０」，「ｄ１ｆ０」，「ｃ１ｅbar０」，「ａ１ｅ０」の４項は、図３１の式の右辺第４行目に含まれる項（ｉ＝１の場合の２１の各項）であり、「ｃ１」，「ｂ１」の２項は、図３０の丸数字１４の第２行目に含まれる２１の各項である。
【００８６】
この図３２に示す個々の部分積項を個々の桁ごとに加算（縦方向に加算）すれば、実数部Ｑ（Ｒｅ）が得られることになる。なお、図３２の一番左の欄である２８の桁は、前述したとおり符号部に相当する桁であり、図３０の丸数字１１を構成する最後の項として示されているとおり、定数「−１」となっている。なお、２４の桁にも定数「１」が記載されているが、これは、図３０の丸数字１２を構成する最後の項として示されている定数「１」に対応したものである。
【００８７】
図３２に示す多くの升目には、上下２段に部分積項が記載されているが、これは、当該升目についてはセレクタ論理が適用可能であることを示している。たとえば、図３２の一番右の欄（２０の桁）には、「ｂ０ｆbar０」と「ｄ０ｆ０」とを上下２段に列挙した升目が記載されているが、これは、（ｂ０ｆbar０）＋（ｄ０ｆ０）なる演算に、セレクタを利用できることを示している。具体的には、この部分の演算には、ビットｂ０とビットｄ０とを入力し、ビットｆ０の論理値に基づいて、入力したいずれか一方のビットを出力するセレクタ回路を利用することができる。
【００８８】
このように、図３２において、縦長の長方形の升目内に上下２段に記載された部分積項対の演算は、いずれもセレクタ回路を利用して実行することができる。前述したとおり、このセレクタ回路では、桁上げ処理が発生することがないので、これら多数のセレクタ回路は同時に並行して動作させることが可能である。
【００８９】
図３３は、やはりｎ＝４に設定した場合の虚数部Ｑ（Ｉｍ）についての演算式に含まれている部分積項を、それぞれの桁位置に並べて示した図である。こちらも、図３２に示す実数部の部分積項と同様に、大多数の部分積項対の演算にセレクタ回路を利用することができる。
【００９０】
最後に、図３２および図３３に示す部分積項を個々の桁ごとに加算して、実数部Ｑ（Ｒｅ）および虚数部Ｑ（Ｉｍ）を得る具体的な回路の構成例を示すことにする。この回路は、基本的に、図３４に示すセレクタとカウンタとの組合わせによって構成することができる。
【００９１】
図３４(a) に示すセレクタ１００は、２つの入力値ｘ，ｙ（いずれも１ビットの値）のうち、いずれか一方を選択値Ｓとして出力する機能をもった構成要素である。いずれの入力値を選択するかは、１ビットの制御値Ｄの論理状態によって定まる。すなわち、制御値Ｄ＝０のときは、入力値ｘが選択され（Ｓ＝ｘになる）、制御値Ｄ＝１のときは、入力値ｙが選択される（Ｓ＝ｙになる）。
【００９２】
一方、図３４(b) に示す２−２カウンタ２００は、２つの入力値ｘ，ｙ（いずれも１ビットの値）についての加算演算を行い、演算結果の２０の桁の値を和Ｓとして出力し、演算結果の２１の桁の値をキャリーＣ（上位桁への繰り上がり）として出力する機能をもった構成要素である。和ＳおよびキャリーＣは、いずれも１ビットのデータになる。
【００９３】
また、図３４(c) に示す３−２カウンタ３００は、３つの入力値ｘ，ｙ，ｚ（いずれも１ビットの値）についての加算演算を行い、演算結果の２０の桁の値を和Ｓとして出力し、演算結果の２１の桁の値をキャリーＣ（上位桁への繰り上がり）として出力する機能をもった構成要素である。やはり和ＳおよびキャリーＣは、いずれも１ビットのデータになる。
【００９４】
図３５〜図４６は、図３４に示すセレクタ１００，２−２カウンタ２００，３−２カウンタ３００を組み合わせることにより構成した積和演算部を示す回路図である。図示の便宜上、図３５〜図４６の図面に分けて示してあるが、これら合計１２の図面に描かれた回路全体によって、図１に示す積和演算装置における第２の演算部５０が構成されることになる。図において、１００番台の符号が記されている構成要素１０１〜１３２は、図３４(a) に示すセレクタ１００と同等の要素であり、２００番台の符号が記されている構成要素２０１〜２０５は、図３４(b) に示す２−２カウンタ２００と同等の要素であり、３００番台の符号が記されている構成要素３０１〜３３２は、図３４(c) に示す３−２カウンタ３００と同等の要素である。
【００９５】
また、これらの回路図において、各セレクタから出力される選択値は、当該セレクタの符号の頭にＳをつけた符号で示し、各カウンタから出力される和もしくはキャリーは、当該カウンタの符号の頭にＳもしくはＣをつけた符号で示してある。たとえば、図３５の右側に示されているＳ１０１は、セレクタ１０１から出力される選択値であり、Ｓ２０１は、カウンタ２０１から出力される和であり、Ｃ２０１は、カウンタ２０１から出力されるキャリー（上位桁へ加算されることになる）である。
【００９６】
図３５〜図４０は、図３２に示す部分積項を個々の桁ごとに加算して、実数部Ｑ（Ｒｅ）を求めるための回路であり、下方に向けて出力されているビットＳ０〜Ｓ８は、実数部Ｑ（Ｒｅ）を構成する全９ビットからなるデジタルデータの２０桁〜２８桁のビット値を示している。同様に、図４１〜図４６は、図３３に示す部分積項を個々の桁ごとに加算して、虚数部Ｑ（Ｉｍ）を求めるための回路であり、下方に向けて出力されているビットＳ０〜Ｓ８は、虚数部Ｑ（Ｉｍ）を構成する全９ビットからなるデジタルデータの２０桁〜２８桁のビット値を示している。
【００９７】
これら各図の上方に記載されている入力ビットは、複素数ＸもしくはＹを構成するビットａ３〜ａ０、ｂ３〜ｂ０、ｃ３〜ｃ０、ｄ３〜ｄ０、もしくは、これらの論理反転ビットである。また、これら各図における各セレクタの右下方から与えられている制御ビットは、複素数Ｚを構成するビットｅ３〜ｅ０、ｆ３〜ｆ０、もしくは、これらの論理反転ビットである。前述したとおり、論理反転ビットが必要な場合には、インバータを用いて、元のビットを反転させればよい。
【００９８】
図３５〜図４０に示す回路が、図３２に示す部分積項を桁ごとに加算する回路になっており、図４１〜図４６に示す回路が、図３３に示す部分積項を桁ごとに加算する回路になっていることは、桁ごとの回路構成と桁ごとの部分積項とを対比すれば、容易に理解できよう。
【００９９】
たとえば、図３５の破線より右側の回路部分は、実数部Ｑ（Ｒｅ）の２０桁のビット値Ｓ０を算出する回路であり、図３２の一番右の欄に記載されている「ｂ０ｆbar０」，「ｄ０ｆ０」，「ｃ０ｅbar０」，「ａ０ｅ０」，「ｃ０」，「ｂ０」という６個の項の総和を求める回路になっている。すなわち、セレクタ１０１は、制御ビットｆ０が０の場合はｂ０を選択して出力し、制御ビットｆ０が１の場合はｄ０を選択して出力する機能を有しているので、このセレクタ１０１から出力される選択値Ｓ１０１は、「ｂ０ｆbar０」＋「ｄ０ｆ０」の値に対応する。一方、セレクタ１０２は、制御ビットｅ０が０の場合はｃ０を選択して出力し、制御ビットｅ０が１の場合はａ０を選択して出力する機能を有しているので、このセレクタ１０２から出力される選択値Ｓ１０２は、「ｃ０ｅbar０」＋「ａ０ｅ０」の値に対応する。
【０１００】
そして、カウンタ３０１は、この「選択値Ｓ１０２」と「ビットｂ０」と「ビットｃ０」とを加算する演算を行い、加算結果の２０の桁を和Ｓ３０１として出力し、加算結果の２１の桁をキャリーＣ３０１として出力する。更に、カウンタ２０１は、「セレクタ１０１が出力した選択値Ｓ１０１」と「カウンタ３０１が出力した和Ｓ３０１」とを加算する演算を行い、加算結果の２０の桁を和Ｓ２０１として出力し、加算結果の２１の桁をキャリーＣ２０１として出力する。カウンタ２０１から出力された和Ｓ２０１は、実数部Ｑ（Ｒｅ）の２０桁のビット値Ｓ０を構成することになり、キャリーＣ３０１，Ｃ２０１は、図３５の破線より左側の回路部分へと桁上げ伝播され、実数部Ｑ（Ｒｅ）の２１桁のビット値Ｓ１を求める演算に利用される。
【０１０１】
結局、図３５の破線より右側の回路部分によって、図３２の一番右の欄に記載されている「ｂ０ｆbar０」，「ｄ０ｆ０」，「ｃ０ｅbar０」，「ａ０ｅ０」，「ｃ０」，「ｂ０」という６個の項の総和が求められ、その２０の桁がビット値Ｓ０として出力されることになる。ここで、６個の項の総和が求められているにもかかわらず、実質的な加算処理を実行する回路要素は、カウンタ２０１とカウンタ３０１の２個だけである。これは、「ｂ０ｆbar０」＋「ｄ０ｆ０」なる加算処理にセレクタ論理を適用し、セレクタ１０１によって当該加算処理を代行させるとともに、「ｃ０ｅbar０」＋「ａ０ｅ０」なる加算処理にセレクタ論理を適用し、セレクタ１０２によって当該加算処理を代行させているためである。
【０１０２】
同様に、図３５の破線より左側の回路部分は、実数部Ｑ（Ｒｅ）の２１桁のビット値Ｓ１を算出する回路であり、図３２の右から２番目欄に記載されている「ｂ０ｆbar１」，「ｄ０ｆ１」，「ｃ０ｅbar１」，「ａ０ｅ１」，「ｂ１ｆbar０」，「ｄ１ｆ０」，「ｃ１ｅbar０」，「ａ１ｅ０」，「ｃ１」，「ｂ１」という１０個の項の総和を求める回路になっている。ここでも、「ｂ０ｆbar１」＋「ｄ０ｆ１」なる加算処理はセレクタ１０５によって代行され、「ｃ０ｅbar１」＋「ａ０ｅ１」なる加算処理はセレクタ１０６によって代行され、「ｂ１ｆbar０」＋「ｄ１ｆ０」なる加算処理はセレクタ１０３によって代行され、「ｃ１ｅbar０」＋「ａ１ｅ０」なる加算処理はセレクタ１０４によって代行される。したがって、２１桁のビット値Ｓ１を算出する回路部分には、２０桁から上がってくるキャリーＣ２０１，Ｃ３０１の加算処理を行う回路要素を含めて、実質的な加算処理を実行する回路要素は、カウンタ２０２，３０２，３０３，３０４の４個だけである。
【０１０３】
以上、図３５に示す回路について、その動作を詳細に説明したが、図３６〜図４６に示す回路の動作も全く同様である。いずれの回路においても、多くの加算処理がセレクタによって代行されている。このため、回路構成は単純化され、システムＬＳＩを設計する場合に、回路占有面積を低減させることが可能になる。しかも、セレクタは、桁上げが発生しないため、下位の桁の処理が完了するまで上位の桁の処理を保留する必要はない。したがって、図３５〜図４６に示すセレクタ１０１〜１３２には、それぞれ受け持ちのビットに関する上位下位の関係が存在するものの、相互に並列動作が可能であり、すべてのセレクタ１０１〜１３２を同時に動作させても何ら問題は生じない。これにより、演算時間の短縮を図ることができる。
【０１０４】
なお、図４０の左側に示すビットＳ８についての回路部分（実数部Ｑ（Ｒｅ）の２８桁を演算する部分）および図４６の左側に示すビットＳ８についての回路部分（虚数部Ｑ（Ｉｍ）の２８桁を演算する部分）は、符号部として機能するビットＳ８を決定する処理を行う構成部である。
【０１０５】
この２８桁における加算結果は、２７桁からの桁上げを考慮すると、二進表現での１，１０のいずれかになり、これらの下位１ビットのみを出力すれば、ビットＳ８として正しい値が得られる。すなわち、２７桁からの桁上げがなければ、ビットＳ８は「１」となり、符号は「負」であることを示し、下位桁からの桁上げがあれば、ビットＳ８は「０」となり、符号は「正」であることを示すことになる。
【０１０６】
また、これまでの説明では、複素数Ｑの実数部（Ｒｅ）を求める演算と複素数Ｑの虚数部（Ｉｍ）を求める演算との双方に本発明を適用した実施形態を示したが、もちろん、本発明は、複素数Ｑの実数部（Ｒｅ）を求める演算にのみ単独適用することも可能であるし、複素数Ｑの虚数部（Ｉｍ）を求める演算にのみ単独適用することも可能である。
【図面の簡単な説明】
【０１０７】
【図１】Cooley-Tukey型Radix-2バタフライ演算を行うための積和演算装置の構成を示すブロック図である。
【図２】図１に示す積和演算装置で行われる演算内容を示す式である。
【図３】２の補数表現により負数を表現する方法を説明する図である。
【図４】符号をもった任意の数値Ａを、二進数のビット値を用いて定義する一般式を示す図である。
【図５】図１に示す積和演算装置に入力される３つの複素数Ｘ，Ｙ，Ｚを、二進数のビット値を用いて定義した式を示す図である。
【図６】図２に示す実数部Ｑ（Ｒｅ）を部分積項に展開した状態を示す図である。
【図７】図６に示すＱ（Ｒｅ１）を構成する各項に、図５に示す各項の右辺を代入することにより得られる式を示す図である。
【図８】図７の式におけるαの部分を変形することにより得られる式を示す図である。
【図９】図６に示すＱ（Ｒｅ２）を構成する各項に、図５に示す各項の右辺を代入することにより得られる式を示す図である。
【図１０】図９の式におけるβの部分を変形することにより得られる式を示す図である。
【図１１】図２に示す実数部Ｑ（Ｒｅ）を構成する各項に、図５に示す各項の右辺を代入し、これを変形することにより得られる式を示す図である。
【図１２】図１１に示す式を展開して整理することにより得られる式を示す図である。
【図１３】図１２に示す負項を正項に変換するために利用される変換式を示す図である。
【図１４】図１２の丸数字３の部分に、図１３に示す変換式を適用することにより得られる式を示す図である。
【図１５】図１２に示す式において、丸数字３の部分に図１４に示す式を入れて整理した状態を示す図である。
【図１６】積和演算を論理和演算に変換するための変換式を示す図である。
【図１７】図１５の丸数字６の部分に、図１６に示す変換式を適用することにより得られる式を示す図である。
【図１８】論理和演算を論理積演算に変換するための変換式を示す図である。
【図１９】図１７の第５行目に記載されているの項に、図１８に示す変換式を適用することにより得られる式を示す図である。
【図２０】図１７の下段の式に、図１８に示す変換式を適用することにより得られる式を示す図である。
【図２１】図１５の丸数字７の部分を整理することにより得られる式を示す図である。
【図２２】一般的な変換式の１つを示す図である。
【図２３】図１５の丸数字８の部分に、図２２に示す変換式を適用することにより得られる式を示す図である。
【図２４】本発明において最終的に用いる実数部Ｑ（Ｒｅ）の演算式を示す図である。
【図２５】本発明において最終的に用いる虚数部Ｑ（Ｉｍ）の演算式を示す図である。
【図２６】図２４に示すγ３の部分に、セレクタの論理を適用できることを示す図である。
【図２７】図２４に示すγ３の部分の演算を、セレクタを用いて行う例を示す回路図である。
【図２８】図２４に示すγ６の部分に、セレクタの論理を適用できることを示す図である。
【図２９】図２４に示すγ６の部分の演算を、セレクタを用いて行う例を示す回路図である。
【図３０】図２４に示す実数部Ｑ（Ｒｅ）の演算式に、ｎ＝４を代入することにより得られる演算式を示す図である。
【図３１】図３０の丸数字１５の部分の詳細な演算式を示す図である。
【図３２】図３０および図３１に示す演算式によって導出される実数部Ｑ（Ｒｅ）の部分積項を示す図である。
【図３３】図２５に示す虚数部Ｑ（Ｉｍ）の演算式に、ｎ＝４を代入することにより得られる演算式についての部分積項を示す図である。
【図３４】本発明の一実施形態に係る積和演算装置の基本構成要素を示す図である。
【図３５】本発明の一実施形態に係る積和演算装置における実数部Ｑ（Ｒｅ）の２０桁および２１桁を演算する回路部分を示す回路図である。
【図３６】本発明の一実施形態に係る積和演算装置における実数部Ｑ（Ｒｅ）の２２桁を演算する回路部分を示す回路図である。
【図３７】本発明の一実施形態に係る積和演算装置における実数部Ｑ（Ｒｅ）の２３桁を演算する回路部分を示す回路図である。
【図３８】本発明の一実施形態に係る積和演算装置における実数部Ｑ（Ｒｅ）の２４桁を演算する回路部分を示す回路図である。
【図３９】本発明の一実施形態に係る積和演算装置における実数部Ｑ（Ｒｅ）の２５桁および２６桁を演算する回路部分を示す回路図である。
【図４０】本発明の一実施形態に係る積和演算装置における実数部Ｑ（Ｒｅ）の２７桁および２８桁を演算する回路部分を示す回路図である。
【図４１】本発明の一実施形態に係る積和演算装置における虚数部Ｑ（Ｉｍ）の２０桁および２１桁を演算する回路部分を示す回路図である。
【図４２】本発明の一実施形態に係る積和演算装置における虚数部Ｑ（Ｉｍ）の２２桁を演算する回路部分を示す回路図である。
【図４３】本発明の一実施形態に係る積和演算装置における虚数部Ｑ（Ｉｍ）の２３桁を演算する回路部分を示す回路図である。
【図４４】本発明の一実施形態に係る積和演算装置における虚数部Ｑ（Ｉｍ）の２４桁を演算する回路部分を示す回路図である。
【図４５】本発明の一実施形態に係る積和演算装置における虚数部Ｑ（Ｉｍ）の２５桁および２６桁を演算する回路部分を示す回路図である。
【図４６】本発明の一実施形態に係る積和演算装置における虚数部Ｑ（Ｉｍ）の２７桁および２８桁を演算する回路部分を示す回路図である。
【符号の説明】
【０１０８】
１０：第１の入力部
２０：第２の入力部
３０：第３の入力部
４０：第１の演算部
４１，４２：加算処理回路
５０：第２の演算部
５１，５２：減算処理回路
５３，５４：乗算処理回路
５５：減算処理回路
５６，５７：乗算処理回路
５８：加算処理回路
６０：第１の出力部
７０：第２の出力部
１００〜１３２：セレクタ
２００〜２０４：２−２カウンタ
３００〜３３２：３−２カウンタ
Ｐ，Ｑ，Ｘ，Ｙ，Ｚ：複素数
Ｐ（Ｒｅ），Ｑ（Ｒｅ），Ｘ（Ｒｅ），Ｙ（Ｒｅ），Ｚ（Ｒｅ）：複素数の実数部
Ｐ（Ｉｍ），Ｑ（Ｉｍ），Ｘ（Ｉｍ），Ｙ（Ｉｍ），Ｚ（Ｉｍ）：複素数の虚数部
【図１】
2010072981.tif 000003
【図２】
2010072981.tif 000004
【図３】
2010072981.tif 000005
【図４】
2010072981.tif 000006
【図５】
2010072981.tif 000007
【図６】
2010072981.tif 000008
【図７】
2010072981.tif 000009
【図８】
2010072981.tif 000010
【図９】
2010072981.tif 000011
【図１０】
2010072981.tif 000012
【図１１】
2010072981.tif 000013
【図１２】
2010072981.tif 000014
【図１３】
2010072981.tif 000015
【図１４】
2010072981.tif 000016
【図１５】
2010072981.tif 000017
【図１６】
2010072981.tif 000018
【図１７】
2010072981.tif 000019
【図１８】
2010072981.tif 000020
【図１９】
2010072981.tif 000021
【図２０】
2010072981.tif 000022
【図２１】
2010072981.tif 000023
【図２２】
2010072981.tif 000024
【図２３】
2010072981.tif 000025
【図２４】
2010072981.tif 000026
【図２５】
2010072981.tif 000027
【図２６】
2010072981.tif 000028
【図２７】
2010072981.tif 000029
【図２８】
2010072981.tif 000030
【図２９】
2010072981.tif 000031
【図３０】
2010072981.tif 000032
【図３１】
2010072981.tif 000033
【図３２】
2010072981.tif 000034
【図３３】
2010072981.tif 000035
【図３４】
2010072981.tif 000036
【図３５】
2010072981.tif 000037
【図３６】
2010072981.tif 000038
【図３７】
2010072981.tif 000039
【図３８】
2010072981.tif 000040
【図３９】
2010072981.tif 000041
【図４０】
2010072981.tif 000042
【図４１】
2010072981.tif 000043
【図４２】
2010072981.tif 000044
【図４３】
2010072981.tif 000045
【図４４】
2010072981.tif 000046
【図４５】
2010072981.tif 000047
【図４６】
2010072981.tif 000048