<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE document PUBLIC "-//CNX//DTD CNXML 0.5 plus MathML//EN" "http://cnx.rice.edu/cnxml/0.5/DTD/cnxml_mathml.dtd">
<document xmlns="http://cnx.rice.edu/cnxml" xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="Module.2004-05-19.0530">
  <name>The Prime Factor Algorithm</name>
  <metadata>
  <md:version>1.2</md:version>
  <md:created>2004/05/19 14:05:30 GMT-5</md:created>
  <md:revised>2004/06/17 14:22:40.557 GMT-5</md:revised>
  <md:authorlist>
      <md:author id="dljones">
      <md:firstname>Douglas</md:firstname>
      <md:othername>L.</md:othername>
      <md:surname>Jones</md:surname>
      <md:email>dl-jones@uiuc.edu</md:email>
    </md:author>
  </md:authorlist>

  <md:maintainerlist>
    <md:maintainer id="harika">
      <md:firstname>Harika</md:firstname>
      
      <md:surname>Basana</md:surname>
      <md:email>ilsai@rice.edu</md:email>
    </md:maintainer>
    <md:maintainer id="dljones">
      <md:firstname>Douglas</md:firstname>
      <md:othername>L.</md:othername>
      <md:surname>Jones</md:surname>
      <md:email>dl-jones@uiuc.edu</md:email>
    </md:maintainer>
    <md:maintainer id="kclarks">
      <md:firstname>Kyle</md:firstname>
      
      <md:surname>Clarkson</md:surname>
      <md:email>kclarks@rice.edu</md:email>
    </md:maintainer>
  </md:maintainerlist>
  
  

  <md:abstract/>
</metadata>

  <content>
    <section>
      <name>General Index Maps</name>
      <para id="map">
	<m:math display="block">
	  <m:apply>
	    <m:eq/>
	    <m:ci>n</m:ci>
	    <m:apply>
	      <m:rem/>
	      <m:apply>
		<m:plus/>
		<m:apply>
		  <m:times/>
		  <m:ci>
		    <m:msub>
		      <m:mi>K</m:mi>
		      <m:mn>1</m:mn>
		    </m:msub>
		  </m:ci>
		  <m:ci>
		    <m:msub>
		      <m:mi>n</m:mi>
		      <m:mn>1</m:mn>
		    </m:msub>
		  </m:ci>
		</m:apply>
		<m:apply>
		  <m:times/>
		  <m:ci>
		    <m:msub>
		      <m:mi>K</m:mi>
		      <m:mn>2</m:mn>
		    </m:msub>
		  </m:ci>
		  <m:ci>
		    <m:msub>
		      <m:mi>n</m:mi>
		      <m:mn>2</m:mn>
		    </m:msub>
		  </m:ci>
		</m:apply>
	      </m:apply>
	      <m:ci>N</m:ci>
	    </m:apply>
	  </m:apply>
	</m:math>
	<m:math display="block">
	  <m:apply>
	    <m:eq/>
	    <m:ci>n</m:ci>
	    <m:apply>
	      <m:rem/>
	      <m:apply>
		<m:plus/>
		<m:apply>
		  <m:times/>
		  <m:ci>
		    <m:msub>
		      <m:mi>K</m:mi>
		      <m:mn>3</m:mn>
		    </m:msub>
		  </m:ci>
		  <m:ci>
		    <m:msub>
		      <m:mi>k</m:mi>
		      <m:mn>1</m:mn>
		    </m:msub>
		  </m:ci>
		</m:apply>
		<m:apply>
		  <m:times/>
		  <m:ci>
		    <m:msub>
		      <m:mi>K</m:mi>
		      <m:mn>4</m:mn>
		    </m:msub>
		  </m:ci>
		  <m:ci>
		    <m:msub>
		      <m:mi>k</m:mi>
		      <m:mn>2</m:mn>
		    </m:msub>
		  </m:ci>
		</m:apply>
	      </m:apply>
	      <m:ci>N</m:ci>
	    </m:apply>
	  </m:apply>
	</m:math>
	<m:math display="block">
	  <m:apply>
	    <m:eq/>
	    <m:ci>
	      <m:msub>
		<m:mi>n</m:mi>
		<m:mn>1</m:mn>
	      </m:msub>
	    </m:ci>
	    <m:list>
	      <m:cn>0</m:cn>
	      <m:cn>1</m:cn>
	      <m:ci>…</m:ci>
	      <m:apply>
		<m:minus/>
		<m:ci>
		  <m:msub>
		    <m:mi>N</m:mi>
		    <m:mn>1</m:mn>
		  </m:msub>
		</m:ci>
		<m:cn>1</m:cn>
	      </m:apply>
	    </m:list>
	  </m:apply>
	</m:math>
	<m:math display="block">
	  <m:apply>
	    <m:eq/>
	    <m:ci>
	      <m:msub>
		<m:mi>k</m:mi>
		<m:mn>1</m:mn>
	      </m:msub>
	    </m:ci>
	    <m:list>
	      <m:cn>0</m:cn>
	      <m:cn>1</m:cn>
	      <m:ci>…</m:ci>
	      <m:apply>
		<m:minus/>
		<m:ci>
		  <m:msub>
		    <m:mi>N</m:mi>
		    <m:mn>1</m:mn>
		  </m:msub>
		</m:ci>
		<m:cn>1</m:cn>
	      </m:apply>
	    </m:list>
	  </m:apply>
	</m:math>
	<m:math display="block">
	  <m:apply>
	    <m:eq/>
	    <m:ci>
	      <m:msub>
		<m:mi>n</m:mi>
		<m:mn>2</m:mn>
	      </m:msub>
	    </m:ci>
	    <m:list>
	      <m:cn>0</m:cn>
	      <m:cn>1</m:cn>
	      <m:ci>…</m:ci>
	      <m:apply>
		<m:minus/>
		<m:ci>
		  <m:msub>
		    <m:mi>N</m:mi>
		    <m:mn>2</m:mn>
		  </m:msub>
		</m:ci>
		<m:cn>1</m:cn>
	      </m:apply>
	    </m:list>
	  </m:apply>
	</m:math>
	<m:math display="block">
	  <m:apply>
	    <m:eq/>
	    <m:ci>
	      <m:msub>
		<m:mi>k</m:mi>
		<m:mn>2</m:mn>
	      </m:msub>
	    </m:ci>
	    <m:list>
	      <m:cn>0</m:cn>
	      <m:cn>1</m:cn>
	      <m:ci>…</m:ci>
	      <m:apply>
		<m:minus/>
		<m:ci>
		  <m:msub>
		    <m:mi>N</m:mi>
		    <m:mn>2</m:mn>
		  </m:msub>
		</m:ci>
		<m:cn>1</m:cn>
	      </m:apply>
	    </m:list>
	  </m:apply>
	</m:math>
      </para>
      <para id="para2">
	The basic ideas is to simply <emphasis>reorder</emphasis> the
	<cnxn document="m12032" target="DFTequation">DFT</cnxn> computation to expose the redundancies in the <cnxn document="m12032" target="DFTequation">DFT</cnxn>, and
	exploit these to reduce computation!</para>

      <para id="para3">
	Three conditions must be satisfied to make <cnxn target="map">this map</cnxn> serve our purposes
      </para>

      <list id="list1" type="enumerated">
	<item>Each map must be one-to-one from
	<m:math><m:cn>0</m:cn></m:math> to
	  <m:math>
	    <m:apply>
	      <m:minus/>
	      <m:ci>N</m:ci>
	      <m:cn>1</m:cn>
	    </m:apply>
	  </m:math>, because we want to do the
	  <emphasis>same</emphasis> computation, just in a different
	  order.
	</item>
	<item>The map must be cleverly chosen so that computation is
	reduced</item> 

	<item>The map should be chosen to make the short-length
	transforms be <cnxn document="m12032" target="DFTequation">DFTs</cnxn>.  (Not essential, since fast algorithms for
	short-length <cnxn document="m12032" target="DFTequation">DFT</cnxn>-like computations could be developed, but it
	makes our work easier.)
	</item>
      </list>

      <section>
	<name>Conditions for one-to-oneness of general index map</name>
	<section>
	  <name>Case I</name>
	  <para id="para4">
	    <m:math>
	      <m:ci>
		<m:msub>
		  <m:mi>N</m:mi>
		  <m:mn>1</m:mn>
		</m:msub>
	      </m:ci>
	    </m:math>,
	    <m:math>
	      <m:ci>
		<m:msub>
		  <m:mi>N</m:mi>
		  <m:mn>2</m:mn>
		</m:msub>
	      </m:ci>
	    </m:math> relatively prime (greatest common denominator
	    <m:math>
	      <m:apply>
		<m:eq/>
		<m:cn>1</m:cn>
	      </m:apply>
	    </m:math>) i.e.
	    <m:math>
	      <m:apply>
		<m:eq/>
		<m:apply>
		  <m:gcd/>
		  <m:ci>
		    <m:msub>
		      <m:mi>N</m:mi>
		      <m:mn>1</m:mn>
		    </m:msub>
		  </m:ci>
		  <m:ci>
		    <m:msub>
		      <m:mi>N</m:mi>
		      <m:mn>2</m:mn>
		    </m:msub>
		  </m:ci>
		</m:apply>
		<m:cn>1</m:cn>
	      </m:apply>
	    </m:math>
	  </para>
	  <para id="para7">
	    <m:math>
	      <m:apply>
		<m:eq/>
		<m:ci>
		  <m:msub>
		    <m:mi>K</m:mi>
		    <m:mn>1</m:mn>
		  </m:msub>
		</m:ci>
		<m:apply>
		  <m:times/>
		  <m:ci>a</m:ci>
		  <m:ci>
		    <m:msub>
		      <m:mi>N</m:mi>
		      <m:mn>2</m:mn>
		    </m:msub>
		  </m:ci>
		</m:apply>
	      </m:apply>
	    </m:math> and/or
	    <m:math>
	      <m:apply>
		<m:eq/>
		<m:ci>
		  <m:msub>
		    <m:mi>K</m:mi>
		    <m:mn>2</m:mn>
		  </m:msub>
		</m:ci>
		<m:apply>
		  <m:times/>
		  <m:ci>b</m:ci>
		  <m:ci>
		    <m:msub>
		      <m:mi>N</m:mi>
		      <m:mn>1</m:mn>
		    </m:msub>
		  </m:ci>
		</m:apply>
	      </m:apply>
	    </m:math> and
	    <m:math>
	      <m:apply>
		<m:eq/>
		<m:apply>
		  <m:gcd/>
		  <m:ci>
		    <m:msub>
		      <m:mi>K</m:mi>
		      <m:mn>1</m:mn>
		    </m:msub>
		  </m:ci>
		  <m:ci>
		    <m:msub>
		      <m:mi>N</m:mi>
		      <m:mn>1</m:mn>
		    </m:msub>
		  </m:ci>
		</m:apply>
		<m:cn>1</m:cn>
	      </m:apply>
	    </m:math>,
	    <m:math>
	      <m:apply>
		<m:eq/>
		<m:apply>
		  <m:gcd/>
		  <m:ci>
		    <m:msub>
		      <m:mi>K</m:mi>
		      <m:mn>2</m:mn>
		    </m:msub>
		  </m:ci>
		  <m:ci>
		    <m:msub>
		      <m:mi>N</m:mi>
		      <m:mn>2</m:mn>
		    </m:msub>
		  </m:ci>
		</m:apply>
		<m:cn>1</m:cn>
	      </m:apply>
	    </m:math>
	  </para>
	</section>
	<section>
	  <name>Case II</name>
	  <para id="para14">
	    <m:math>
	      <m:ci>
		<m:msub>
		  <m:mi>N</m:mi>
		  <m:mn>1</m:mn>
		</m:msub>
	      </m:ci>
	    </m:math>,
	    <m:math>
	      <m:ci>
		<m:msub>
		  <m:mi>N</m:mi>
		  <m:mn>2</m:mn>
		</m:msub>
	      </m:ci>
	    </m:math> <emphasis>not</emphasis> relatively prime:
	    <m:math>
	      <m:apply>
		<m:gt/>
		<m:apply>
		  <m:gcd/>
		  <m:ci>
		    <m:msub>
		      <m:mi>N</m:mi>
		      <m:mn>1</m:mn>
		    </m:msub>
		  </m:ci>
		  <m:ci>
		    <m:msub>
		      <m:mi>N</m:mi>
		      <m:mn>2</m:mn>
		    </m:msub>
		  </m:ci>
		</m:apply>
		<m:cn>1</m:cn>
	      </m:apply>
	    </m:math>
	  </para>
	  <para id="para17">
	    <m:math>
	      <m:apply>
		<m:eq/>
		<m:ci>
		  <m:msub>
		    <m:mi>K</m:mi>
		    <m:mn>1</m:mn>
		  </m:msub>
		</m:ci>
		<m:apply>
		  <m:times/>
		  <m:ci>a</m:ci>
		  <m:ci>
		    <m:msub>
		      <m:mi>N</m:mi>
		      <m:mn>2</m:mn>
		    </m:msub>
		  </m:ci>
		</m:apply>
	      </m:apply>
	    </m:math> and
	    <m:math>
	      <m:apply>
		<m:neq/>
		<m:ci>
		  <m:msub>
		    <m:mi>K</m:mi>
		    <m:mn>2</m:mn>
		  </m:msub>
		</m:ci>
		<m:apply>
		  <m:times/>
		  <m:ci>b</m:ci>
		  <m:ci>
		    <m:msub>
		      <m:mi>N</m:mi>
		      <m:mn>1</m:mn>
		    </m:msub>
		  </m:ci>
		</m:apply>
	      </m:apply>
	    </m:math> and
	    <m:math>
	      <m:apply>
		<m:eq/>
		<m:apply>
		  <m:gcd/>
		  <m:ci>a</m:ci>
		  <m:ci>
		    <m:msub>
		      <m:mi>N</m:mi>
		      <m:mn>1</m:mn>
		    </m:msub>
		  </m:ci>
		</m:apply>
		<m:cn>1</m:cn>
	      </m:apply>
	    </m:math>,
	    <m:math>
	      <m:apply>
		<m:eq/>
		<m:apply>
		  <m:gcd/>
		  <m:ci>
		    <m:msub>
		      <m:mi>K</m:mi>
		      <m:mn>2</m:mn>
		    </m:msub>
		  </m:ci>
		  <m:ci>
		    <m:msub>
		      <m:mi>N</m:mi>
		      <m:mn>2</m:mn>
		    </m:msub>
		  </m:ci>
		</m:apply>
		<m:cn>1</m:cn>
	      </m:apply>
	    </m:math> or
	    <m:math>
	      <m:apply>
		<m:neq/>
		<m:ci>
		  <m:msub>
		    <m:mi>K</m:mi>
		    <m:mn>1</m:mn>
		  </m:msub>
		</m:ci>
		<m:apply>
		  <m:times/>
		  <m:ci>a</m:ci>
		  <m:ci>
		    <m:msub>
		      <m:mi>N</m:mi>
		      <m:mn>2</m:mn>
		    </m:msub>
		  </m:ci>
		</m:apply>
	      </m:apply>
	    </m:math> and
	    <m:math>
	      <m:apply>
		<m:eq/>
		<m:ci>
		  <m:msub>
		    <m:mi>K</m:mi>
		    <m:mn>2</m:mn>
		  </m:msub>
		</m:ci>
		<m:apply>
		  <m:times/>
		  <m:ci>b</m:ci>
		  <m:ci>
		    <m:msub>
		      <m:mi>N</m:mi>
		      <m:mn>1</m:mn>
		    </m:msub>
		  </m:ci>
		</m:apply>
	      </m:apply>
	    </m:math> and
	    <m:math>
	      <m:apply>
		<m:eq/>
		<m:apply>
		  <m:gcd/>
		  <m:ci>
		    <m:msub>
		      <m:mi>K</m:mi>
		      <m:mn>1</m:mn>
		    </m:msub>
		  </m:ci>
		  <m:ci>
		    <m:msub>
		      <m:mi>N</m:mi>
		      <m:mn>1</m:mn>
		    </m:msub>
		  </m:ci>
		</m:apply>
		<m:cn>1</m:cn>
	      </m:apply>
	    </m:math>,
	    <m:math>
	      <m:apply>
		<m:eq/>
		<m:apply>
		  <m:gcd/>
		  <m:ci>b</m:ci>
		  <m:ci>
		    <m:msub>
		      <m:mi>N</m:mi>
		      <m:mn>2</m:mn>
		    </m:msub>
		  </m:ci>
		</m:apply>
		<m:cn>1</m:cn>
	      </m:apply>
	    </m:math>
	    where 
	    <m:math>
	      <m:ci>
		<m:msub>
		  <m:mi>K</m:mi>
		  <m:mn>1</m:mn>
		</m:msub>
	      </m:ci>
	    </m:math>,
	    <m:math>
	      <m:ci>
		<m:msub>
		  <m:mi>K</m:mi>
		  <m:mn>2</m:mn>
		</m:msub>
	      </m:ci>
	    </m:math>,
	    <m:math>
	      <m:ci>
		<m:msub>
		  <m:mi>K</m:mi>
		  <m:mn>3</m:mn>
		</m:msub>
	      </m:ci>
	    </m:math>,
	    <m:math>
	      <m:ci>
		<m:msub>
		  <m:mi>K</m:mi>
		  <m:mn>4</m:mn>
		</m:msub>
	      </m:ci>
	    </m:math>,
	    <m:math>
	      <m:ci>
		<m:msub>
		  <m:mi>N</m:mi>
		  <m:mn>1</m:mn>
		</m:msub>
	      </m:ci>
	    </m:math>,
	    <m:math>
	      <m:ci>
		<m:msub>
		  <m:mi>N</m:mi>
		  <m:mn>2</m:mn>
		</m:msub>
	      </m:ci>
	    </m:math>,
	    <m:math>
	      <m:ci>a</m:ci>
	    </m:math>,
	    <m:math>
	      <m:ci>b</m:ci>
	    </m:math> integers
	  </para>
	</section>
	<note type="proof">
	  Requires number-theory/abstract-algebra concepts. Reference:
	  <cite src="#Burrus">C.S. Burrus</cite>
	</note>
	<note>Conditions of one-to-oneness must apply to both
	  <m:math><m:ci>k</m:ci></m:math> and
	  <m:math><m:ci>n</m:ci></m:math>
	</note>
      </section>
      <section>
	<name>Conditions for arithmetic savings</name>
	<equation id="eq3">
	  <m:math>
	    <m:apply>
	      <m:eq/>
	      <m:apply>
		<m:ci type="fn">X</m:ci>
		<m:ci>
		  <m:msub>
		    <m:mi>k</m:mi>
		    <m:mn>1</m:mn>
		  </m:msub>
		</m:ci>
		<m:ci>
		  <m:msub>
		    <m:mi>k</m:mi>
		    <m:mn>2</m:mn>
		  </m:msub>
		</m:ci>
	      </m:apply>
	      <m:apply>
		<m:sum/>
		<m:bvar>
		  <m:ci>
		    <m:msub>
		      <m:mi>n</m:mi>
		      <m:mn>1</m:mn>
		    </m:msub>
		  </m:ci>
		</m:bvar>
		<m:uplimit>
		  <m:apply>
		    <m:minus/>
		    <m:ci>
		      <m:msub>
			<m:mi>N</m:mi>
			<m:mn>1</m:mn>
		      </m:msub>
		    </m:ci>
		    <m:cn>1</m:cn>
		  </m:apply>
		</m:uplimit>
		<m:lowlimit>
		  <m:cn>0</m:cn>
		</m:lowlimit>
		<m:apply>
		  <m:sum/>
		  <m:bvar>
		    <m:ci>
		      <m:msub>
			<m:mi>n</m:mi>
			<m:mn>2</m:mn>
		      </m:msub>
		    </m:ci>
		  </m:bvar>
		  <m:uplimit>
		    <m:apply>
		      <m:minus/>
		      <m:ci>
			<m:msub>
			  <m:mi>N</m:mi>
			  <m:mn>2</m:mn>
			</m:msub>
		      </m:ci>
		      <m:cn>1</m:cn>
		    </m:apply>
		  </m:uplimit>
		  <m:lowlimit>
		    <m:cn>0</m:cn>
		  </m:lowlimit>
		  <m:apply>
		    <m:times/>
		    <m:apply>
		      <m:ci type="fn">x</m:ci>
		      <m:ci>
			<m:msub>
			  <m:mi>n</m:mi>
			  <m:mn>1</m:mn>
			</m:msub>
		      </m:ci>
		      <m:ci>
			<m:msub>
			  <m:mi>n</m:mi>
			  <m:mn>2</m:mn>
			</m:msub>
		      </m:ci>
		    </m:apply>
		    <m:ci>
		      <m:msubsup>
			<m:mi>W</m:mi>
			<m:mi>N</m:mi>
			<m:mrow>
			  <m:mo>(</m:mo>
			  <m:msub>
			    <m:mi>K</m:mi>
			    <m:mn>1</m:mn>
			  </m:msub>
			  <m:msub>
			    <m:mi>n</m:mi>
			    <m:mn>1</m:mn>
			  </m:msub>
			  <m:mo>+</m:mo>
			  <m:msub>
			    <m:mi>K</m:mi>
			    <m:mn>2</m:mn>
			  </m:msub>
			  <m:msub>
			    <m:mi>n</m:mi>
			    <m:mn>2</m:mn>
			  </m:msub>
			  <m:mo>)</m:mo>
			  <m:mo>(</m:mo>
			  <m:msub>
			    <m:mi>K</m:mi>
			    <m:mn>3</m:mn>
			  </m:msub>
			  <m:msub>
			    <m:mi>k</m:mi>
			    <m:mn>1</m:mn>
			  </m:msub>
			  <m:mo>+</m:mo>
			  <m:msub>
			    <m:mi>K</m:mi>
			    <m:mn>4</m:mn>
			  </m:msub>
			  <m:msub>
			    <m:mi>k</m:mi>
			    <m:mn>2</m:mn>
			  </m:msub>
			</m:mrow>
		      </m:msubsup>
		    </m:ci>
		  </m:apply>
		</m:apply>
	      </m:apply>
	      <m:apply>
		<m:sum/>
		<m:bvar>
		  <m:ci>
		    <m:msub>
		      <m:mi>n</m:mi>
		      <m:mn>1</m:mn>
		    </m:msub>
		  </m:ci>
		</m:bvar>
		<m:uplimit>
		  <m:apply>
		    <m:minus/>
		    <m:ci>
		      <m:msub>
			<m:mi>N</m:mi>
			<m:mn>1</m:mn>
		      </m:msub>
		    </m:ci>
		    <m:cn>1</m:cn>
		  </m:apply>
		</m:uplimit>
		<m:lowlimit>
		  <m:cn>0</m:cn>
		</m:lowlimit>
		<m:apply>
		  <m:sum/>
		  <m:bvar>
		    <m:ci>
		      <m:msub>
			<m:mi>n</m:mi>
			<m:mn>2</m:mn>
		      </m:msub>
		    </m:ci>
		  </m:bvar>
		  <m:uplimit>
		    <m:apply>
		      <m:minus/>
		      <m:ci>
			<m:msub>
			  <m:mi>N</m:mi>
			  <m:mn>2</m:mn>
			</m:msub>
		      </m:ci>
		      <m:cn>1</m:cn>
		    </m:apply>
		  </m:uplimit>
		  <m:lowlimit>
		    <m:cn>0</m:cn>
		  </m:lowlimit>
		  <m:apply>
		    <m:times/>
		    <m:apply>
		      <m:ci type="fn">x</m:ci>
		      <m:ci>
			<m:msub>
			  <m:mi>n</m:mi>
			  <m:mn>1</m:mn>
			</m:msub>
		      </m:ci>
		      <m:ci>
			<m:msub>
			  <m:mi>n</m:mi>
			  <m:mn>2</m:mn>
			</m:msub>
		      </m:ci>
		    </m:apply>
		    <m:ci>
		      <m:msubsup>
			<m:mi>W</m:mi>
			<m:mi>N</m:mi>
			<m:mrow>
			  <m:msub>
			    <m:mi>K</m:mi>
			    <m:mn>1</m:mn>
			  </m:msub>
			  <m:msub>
			    <m:mi>K</m:mi>
			    <m:mn>3</m:mn>
			  </m:msub>
			  <m:msub>
			    <m:mi>n</m:mi>
			    <m:mn>1</m:mn>
			  </m:msub>
			  <m:msub>
			    <m:mi>k</m:mi>
			    <m:mn>1</m:mn>
			  </m:msub>
			</m:mrow>
		      </m:msubsup>
		    </m:ci>
		    <m:ci>
		      <m:msubsup>
			<m:mi>W</m:mi>
			<m:mi>N</m:mi>
			<m:mrow>
			  <m:msub>
			    <m:mi>K</m:mi>
			    <m:mn>1</m:mn>
			  </m:msub>
			  <m:msub>
			    <m:mi>K</m:mi>
			    <m:mn>4</m:mn>
			  </m:msub>
			  <m:msub>
			    <m:mi>n</m:mi>
			    <m:mn>1</m:mn>
			  </m:msub>
			  <m:msub>
			    <m:mi>k</m:mi>
			    <m:mn>2</m:mn>
			  </m:msub>
			</m:mrow>
		      </m:msubsup>
		    </m:ci>
		    <m:ci>
		      <m:msubsup>
			<m:mi>W</m:mi>
			<m:mi>N</m:mi>
			<m:mrow>
			  <m:msub>
			    <m:mi>K</m:mi>
			    <m:mn>2</m:mn>
			  </m:msub>
			  <m:msub>
			    <m:mi>K</m:mi>
			    <m:mn>3</m:mn>
			  </m:msub>
			  <m:msub>
			    <m:mi>n</m:mi>
			    <m:mn>2</m:mn>
			  </m:msub>
			  <m:msub>
			    <m:mi>k</m:mi>
			    <m:mn>1</m:mn>
			  </m:msub>
			</m:mrow>
		      </m:msubsup>
		    </m:ci>
		    <m:ci>
		      <m:msubsup>
			<m:mi>W</m:mi>
			<m:mi>N</m:mi>
			<m:mrow>
			  <m:msub>
			    <m:mi>K</m:mi>
			    <m:mn>2</m:mn>
			  </m:msub>
			  <m:msub>
			    <m:mi>K</m:mi>
			    <m:mn>4</m:mn>
			  </m:msub>
			  <m:msub>
			    <m:mi>n</m:mi>
			    <m:mn>2</m:mn>
			  </m:msub>
			  <m:msub>
			    <m:mi>k</m:mi>
			    <m:mn>2</m:mn>
			  </m:msub>
			</m:mrow>
		      </m:msubsup>
		    </m:ci>
		  </m:apply>
		</m:apply> 
	      </m:apply>
	    </m:apply>
	  </m:math>
	</equation>
	<list id="list4" type="bulleted">
	  <item>
	    <m:math>
	      <m:apply>
		<m:eq/>
		<m:apply>
		  <m:rem/>
		  <m:apply>
		    <m:times/>
		    <m:ci>
		      <m:msub>
			<m:mi>K</m:mi>
			<m:mn>1</m:mn>
		      </m:msub>
		    </m:ci>
		    <m:ci>
		      <m:msub>
			<m:mi>K</m:mi>
			<m:mn>4</m:mn>
		      </m:msub>
		    </m:ci>
		  </m:apply>
		  <m:ci>N</m:ci>
		</m:apply>
		<m:cn>0</m:cn>
	      </m:apply>
	    </m:math>
	    exclusive or
	    <m:math>
	      <m:apply>
		<m:eq/>
		<m:apply>
		  <m:rem/>
		  <m:apply>
		    <m:times/>
		    <m:ci>
		      <m:msub>
			<m:mi>K</m:mi>
			<m:mn>2</m:mn>
		      </m:msub>
		    </m:ci>
		    <m:ci>
		      <m:msub>
			<m:mi>K</m:mi>
			<m:mn>3</m:mn>
		      </m:msub>
		    </m:ci>
		  </m:apply>
		  <m:ci>N</m:ci>
		</m:apply>
		<m:cn>0</m:cn>
	      </m:apply>
	    </m:math>
	    ⇒ Common Factor Algorithm (CFA).  Then 
	    <m:math display="block">
	      <m:apply>
		<m:eq/>
		<m:apply>
		  <m:ci type="fn">X</m:ci>
		  <m:ci>k</m:ci>
		</m:apply>
		<m:apply>
		  <m:ci type="fn" class="discrete">
		    <m:msub>
		      <m:mi>DFT</m:mi>
		      <m:mrow>
			<m:mi>N</m:mi>
			<m:mi>i</m:mi>
		      </m:mrow>
		    </m:msub>
		  </m:ci>
		  <m:apply>
		    <m:times/>
		    <m:mtext>twiddle factors</m:mtext>
		    <m:apply>
		      <m:ci type="fn" class="discrete">
			<m:msub>
			  <m:mi>DFT</m:mi>
			  <m:mrow>
			    <m:mi>N</m:mi>
			    <m:mi>j</m:mi>
			  </m:mrow>
			</m:msub>
		      </m:ci>
		      <m:apply>
			<m:ci type="fn">x</m:ci>
			<m:msub>
			  <m:mi>n</m:mi>
			  <m:mn>1</m:mn>
			</m:msub>
			<m:msub>
			  <m:mi>n</m:mi>
			  <m:mn>2</m:mn>
			</m:msub>
		      </m:apply>
		    </m:apply>
		  </m:apply>
		</m:apply>
	      </m:apply>
	    </m:math>
	  </item>
	  <item>
	    <m:math>
	      <m:apply>
		<m:rem/>
		<m:apply>
		  <m:times/>
		  <m:ci>
		    <m:msub>
		      <m:mi>K</m:mi>
		      <m:mn>1</m:mn>
		    </m:msub>
		  </m:ci>
		  <m:ci>
		    <m:msub>
		      <m:mi>K</m:mi>
		      <m:mn>4</m:mn>
		    </m:msub>
		  </m:ci>
		</m:apply>
		<m:ci>N</m:ci>
	      </m:apply>
	    </m:math>
	    <emphasis>and</emphasis>
	    <m:math>
	      <m:apply>
		<m:eq/>
		<m:apply>
		  <m:rem/>
		  <m:apply>
		    <m:times/>
		    <m:ci>
		      <m:msub>
			<m:mi>K</m:mi>
			<m:mn>2</m:mn>
		      </m:msub>
		    </m:ci>
		    <m:ci>
		      <m:msub>
			<m:mi>K</m:mi>
			<m:mn>3</m:mn>
		      </m:msub>
		    </m:ci>
		  </m:apply>
		  <m:ci>N</m:ci>
		</m:apply>
		<m:cn>0</m:cn>
	      </m:apply>
	    </m:math>
	    ⇒ Prime Factor Algorithm (PFA).
	    <m:math display="block">
	      <m:apply>
		<m:eq/>
		<m:apply>
		  <m:ci type="fn">X</m:ci>
		  <m:ci>k</m:ci>
		</m:apply>
		<m:apply>
		  <m:ci type="fn" class="discrete">
		    <m:msub>
		      <m:mi>DFT</m:mi>
		      <m:mrow>
			<m:mi>N</m:mi>
			<m:mi>i</m:mi>
		      </m:mrow>
		    </m:msub>
		  </m:ci>
		  <m:ci>
		    <m:msub>
		      <m:mi>DFT</m:mi>
		      <m:mrow>
			<m:mi>N</m:mi>
			<m:mi>j</m:mi>
		      </m:mrow>
		    </m:msub>
		  </m:ci>
		</m:apply>
	      </m:apply>
	    </m:math> <emphasis>No</emphasis> twiddle factors!
	  </item> 
	</list>
	<note type="fact">
	  A PFA exists only and always for relatively prime
	  <m:math>
	    <m:apply>
	      <m:ci>
		<m:msub>
		  <m:mi>N</m:mi>
		  <m:mn>1</m:mn>
		</m:msub>
	      </m:ci>
	    </m:apply>
	  </m:math>,
	  <m:math>
	    <m:apply>  
	      <m:ci>
		<m:msub>
		  <m:mi>N</m:mi>
		  <m:mn>2</m:mn>
		</m:msub>
	      </m:ci>
	    </m:apply>
	  </m:math>
	</note>
      </section>
      <section>
	<name>Conditions for short-length transforms to be DFTs</name>
	<para id="para12">
	  <m:math>
	    <m:apply>
	      <m:eq/>
	      <m:apply>
		<m:rem/>
		<m:apply>
		  <m:times/>
		  <m:ci>
		    <m:msub>
		      <m:mi>K</m:mi>
		      <m:mn>1</m:mn>
		    </m:msub>
		  </m:ci>
		  <m:ci>
		    <m:msub>
		      <m:mi>K</m:mi>
		      <m:mn>3</m:mn>
		    </m:msub>
		  </m:ci>
		</m:apply>
		<m:ci>N</m:ci>
	      </m:apply>
	      <m:ci>
		<m:msub>
		  <m:mi>N</m:mi>
		  <m:mn>2</m:mn>
		</m:msub>
	      </m:ci>
	    </m:apply>
	  </m:math> and
	  <m:math>
	  <m:apply>
	      <m:eq/>
	      <m:apply>
		<m:rem/>
		<m:apply>
		<m:times/>
		  <m:ci>
		    <m:msub>
		      <m:mi>K</m:mi>
		      <m:mn>2</m:mn>
		    </m:msub>
		  </m:ci>
		  <m:ci>
		    <m:msub>
		      <m:mi>K</m:mi>
		    <m:mn>4</m:mn>
		    </m:msub>
		  </m:ci>
		</m:apply>
		<m:ci>N</m:ci>
	      </m:apply>
	      <m:ci>
		<m:msub>
		  <m:mi>N</m:mi>
		  <m:mn>1</m:mn>
		</m:msub>
	      </m:ci>
	    </m:apply>
	  </m:math>
	  <note>Convenient choice giving a PFA</note>
	  <m:math>
	    <m:apply>
	      <m:eq/>
	      <m:ci>
		<m:msub>
		  <m:mi>K</m:mi>
		  <m:mn>1</m:mn>
		</m:msub>
	      </m:ci>
	      <m:ci>
		<m:msub>
		  <m:mi>N</m:mi>
		  <m:mn>2</m:mn>
		</m:msub>
	      </m:ci>
	    </m:apply>
	  </m:math>,
	  <m:math>
	    <m:apply>
	      <m:eq/>
	      <m:ci>
		<m:msub>
		  <m:mi>K</m:mi>
		  <m:mn>2</m:mn>
		</m:msub>
	      </m:ci>
	      <m:ci>
		<m:msub>
		  <m:mi>N</m:mi>
		  <m:mn>1</m:mn>
		</m:msub>
	      </m:ci>
	    </m:apply>
	  </m:math>,
	  <m:math>
	    <m:apply>
	      <m:eq/>
	      <m:ci>
		<m:msub>
		  <m:mi>K</m:mi>
		  <m:mn>3</m:mn>
		</m:msub>
	      </m:ci>
	      <m:apply>
		<m:times/>
		<m:ci>
		  <m:msub>
		    <m:mi>N</m:mi>
		    <m:mn>2</m:mn>
		  </m:msub>
		</m:ci>
		<m:apply>
		  <m:rem/>
		  <m:apply>
		    <m:rem/>
		    <m:apply>
		      <m:power/>
		      <m:ci>
			<m:msub>
			  <m:mi>N</m:mi>
			  <m:mn>2</m:mn>
			</m:msub>
		      </m:ci>
		      <m:apply>
			<m:minus/>
			<m:cn>1</m:cn>
		      </m:apply>
		    </m:apply>
		    <m:ci>
		      <m:msub>
			<m:mi>N</m:mi>
			<m:mn>1</m:mn>
		      </m:msub>
		    </m:ci>
		  </m:apply>
		  <m:ci>
		    <m:msub>
		      <m:mi>N</m:mi>
		      <m:mn>1</m:mn>
		    </m:msub>
		  </m:ci>
		</m:apply>
	      </m:apply>
	    </m:apply>
	  </m:math>,
	  <m:math>
	    <m:apply>
	      <m:eq/>
	      <m:ci>
		<m:msub>
		  <m:mi>K</m:mi>
		  <m:mn>4</m:mn>
		</m:msub>
	      </m:ci>
	      <m:apply>
		<m:times/>
		<m:ci>
		  <m:msub>
		    <m:mi>N</m:mi>
		    <m:mn>1</m:mn>
		  </m:msub>
		</m:ci>
		<m:apply>
		  <m:rem/>
		  <m:apply>
		    <m:rem/>
		    <m:apply>
		      <m:power/>
		      <m:ci>
			<m:msub>
			  <m:mi>N</m:mi>
			  <m:mn>1</m:mn>
			</m:msub>
		      </m:ci>
		      <m:apply>
			<m:minus/>
			<m:cn>1</m:cn>
		      </m:apply>
		    </m:apply>
		    <m:ci>
		      <m:msub>
			<m:mi>N</m:mi>
			<m:mn>2</m:mn>
		      </m:msub>
		    </m:ci>
		  </m:apply>
		  <m:ci>
		    <m:msub>
		      <m:mi>N</m:mi>
		      <m:mn>2</m:mn>
		    </m:msub>
		  </m:ci>
		</m:apply>
	      </m:apply>
	    </m:apply>
	  </m:math> where
	  <m:math>
	    <m:apply>
	      <m:rem/>
	      <m:apply>
		<m:power/>
		<m:ci>
		  <m:msub>
		    <m:mi>N</m:mi>
		    <m:mn>1</m:mn>
		  </m:msub>
		</m:ci>
		<m:apply>
		  <m:minus/>
		  <m:cn>1</m:cn>
		</m:apply>
	      </m:apply>
	      <m:ci>
		<m:msub>
		  <m:mi>N</m:mi>
		  <m:mn>2</m:mn>
		</m:msub>
	      </m:ci>
	    </m:apply>
	  </m:math> is an integer such that 
	  <m:math>
	    <m:apply>
	      <m:eq/>
	      <m:apply>
		<m:rem/>
		<m:apply>
		  <m:times/>
		  <m:ci>
		    <m:msub>
		      <m:mi>N</m:mi>
		      <m:mn>1</m:mn>
		    </m:msub>
		  </m:ci>
		  <m:apply>
		    <m:power/>
		    <m:ci>
		      <m:msub>
			<m:mi>N</m:mi>
			<m:mn>1</m:mn>
		      </m:msub>
		    </m:ci>
		    <m:apply>
		      <m:minus/>
		      <m:cn>1</m:cn>
		    </m:apply>
		  </m:apply>
		</m:apply>
	      </m:apply>
	      <m:cn>1</m:cn>
	    </m:apply>
	  </m:math>
	</para>
      </section>
      <example id="exam1">
	<para id="para114">
	  <m:math>
	    <m:apply>
	      <m:eq/>
	      <m:ci>
		<m:msub>
		  <m:mi>N</m:mi>
		  <m:mn>1</m:mn>
		</m:msub>
	      </m:ci>
	      <m:cn>3</m:cn>
	    </m:apply>
	  </m:math>,
	  <m:math>
	    <m:apply>
	      <m:eq/>
	      <m:ci>
		<m:msub>
		  <m:mi>N</m:mi>
		  <m:mn>2</m:mn>
		</m:msub>
	      </m:ci>
	      <m:cn>5</m:cn>
	    </m:apply>
	  </m:math>
	  <m:math>
	    <m:apply>
	      <m:eq/>
	      <m:ci>N</m:ci>
	      <m:cn>15</m:cn>
	    </m:apply>
	  </m:math>
	  <m:math display="block">
	    <m:apply>
	      <m:eq/>
	      <m:cn>n</m:cn>
	      <m:apply>
		<m:rem/>
		<m:apply>
		  <m:plus/>
		  <m:apply>
		    <m:times/>
		    <m:cn>5</m:cn>
		    <m:ci>
		      <m:msub>
			<m:mi>n</m:mi>
			<m:mn>1</m:mn>
		      </m:msub>
		    </m:ci>
		  </m:apply>
		  <m:apply>
		    <m:times/>
		    <m:cn>3</m:cn>
		    <m:ci>
		      <m:msub>
			<m:mi>n</m:mi>
			<m:mn>2</m:mn>
		      </m:msub>
		    </m:ci>
		  </m:apply>
		</m:apply>
		<m:cn>15</m:cn>
	      </m:apply>
	    </m:apply>
	  </m:math>
	  <m:math display="block">
	    <m:apply>
	      <m:eq/>
	      <m:ci>k</m:ci>
	      <m:apply>
		<m:rem/>
		<m:apply>
		  <m:plus/>
		  <m:apply>
		    <m:times/>
		    <m:cn>10</m:cn>
		    <m:ci>
		      <m:msub>
			<m:mi>k</m:mi>
			<m:mn>1</m:mn>
		      </m:msub>
		    </m:ci>
		  </m:apply>
		  <m:apply>
		    <m:times/>
		    <m:cn>6</m:cn>
		    <m:ci>
		      <m:msub>
			<m:mi>k</m:mi>
			<m:mn>2</m:mn>
		      </m:msub>
		    </m:ci>
		  </m:apply>
		</m:apply>
		<m:cn>15</m:cn>
	      </m:apply>
	    </m:apply>
	  </m:math>
	  <list id="list5" type="enumerated">
	    <item>
	      <name>Checking Conditions for one-to-oneness</name>
	      <m:math display="block">
		<m:apply>
		  <m:eq/>
		  <m:cn>5</m:cn>
		  <m:ci>
		    <m:msub>
		      <m:mi>K</m:mi>
		      <m:mn>1</m:mn>
		    </m:msub>
		  </m:ci>
		  <m:apply>
		    <m:times/>
		    <m:ci>a</m:ci>
		    <m:ci>
		      <m:msub>
			<m:mi>N</m:mi>
			<m:mn>2</m:mn>
		      </m:msub>
		    </m:ci>
		  </m:apply>
		  <m:apply>
		    <m:times/>
		    <m:cn>5</m:cn>
		    <m:ci>a</m:ci>
		  </m:apply>
		</m:apply>
	      </m:math>
	       <m:math display="block">
		<m:apply>
		  <m:eq/>
		  <m:cn>3</m:cn>
		  <m:ci>
		    <m:msub>
		      <m:mi>K</m:mi>
		      <m:mn>2</m:mn>
		    </m:msub>
		  </m:ci>
		  <m:apply>
		    <m:times/>
		    <m:ci>b</m:ci>
		    <m:ci>
		      <m:msub>
			<m:mi>N</m:mi>
			<m:mn>1</m:mn>
		      </m:msub>
		    </m:ci>
		  </m:apply>
		  <m:apply>
		    <m:times/>
		    <m:cn>3</m:cn>
		    <m:ci>b</m:ci>
		  </m:apply>
		</m:apply>
	      </m:math>
	      <m:math display="block">
		<m:apply>
		  <m:eq/>
		  <m:apply>
		    <m:gcd/>
		    <m:cn>5</m:cn>
		    <m:cn>3</m:cn>
		  </m:apply>
		  <m:cn>1</m:cn>
		</m:apply>
	      </m:math>
	      <m:math display="block">
		<m:apply>
		  <m:eq/>
		  <m:apply>
		    <m:gcd/>
		    <m:cn>3</m:cn>
		    <m:cn>5</m:cn>
		  </m:apply>
		  <m:cn>1</m:cn>
		</m:apply>
	      </m:math>
	      <m:math display="block">
		<m:apply>
		  <m:eq/>
		  <m:cn>10</m:cn>
		  <m:ci>
		    <m:msub>
		      <m:mi>K</m:mi>
		      <m:mn>3</m:mn>
		    </m:msub>
		  </m:ci>
		  <m:apply>
		    <m:times/>
		    <m:ci>a</m:ci>
		    <m:ci>
		      <m:msub>
			<m:mi>N</m:mi>
			<m:mn>2</m:mn>
		      </m:msub>
		    </m:ci>
		  </m:apply>
		  <m:apply>
		    <m:times/>
		    <m:cn>5</m:cn>
		    <m:ci>a</m:ci>
		  </m:apply>
		</m:apply>
	      </m:math>
	       <m:math display="block">
		<m:apply>
		  <m:eq/>
		  <m:cn>6</m:cn>
		  <m:ci>
		    <m:msub>
		      <m:mi>K</m:mi>
		      <m:mn>4</m:mn>
		    </m:msub>
		  </m:ci>
		  <m:apply>
		    <m:times/>
		    <m:ci>b</m:ci>
		    <m:ci>
		      <m:msub>
			<m:mi>N</m:mi>
			<m:mn>1</m:mn>
		      </m:msub>
		    </m:ci>
		  </m:apply>
		  <m:apply>
		    <m:times/>
		    <m:cn>3</m:cn>
		    <m:ci>b</m:ci>
		  </m:apply>
		</m:apply>
	      </m:math>
	      <m:math display="block">
		<m:apply>
		  <m:eq/>
		  <m:apply>
		    <m:gcd/>
		    <m:cn>10</m:cn>
		    <m:cn>3</m:cn>
		  </m:apply>
		  <m:cn>1</m:cn>
		</m:apply>
	      </m:math>
	      <m:math display="block">
		<m:apply>
		  <m:eq/>
		  <m:apply>
		    <m:gcd/>
		    <m:cn>6</m:cn>
		    <m:cn>5</m:cn>
		  </m:apply>
		  <m:cn>1</m:cn>
		</m:apply>
	      </m:math>
	    </item>
	    <item>
	      <name>Checking conditions for reduced computation</name>
	      <m:math display="block">
		<m:apply>
		  <m:eq/>
		  <m:apply>
		    <m:rem/>
		    <m:apply>
		      <m:times/>
		      <m:ci>
			<m:msub>
			  <m:mi>K</m:mi>
			  <m:mn>1</m:mn>
			</m:msub>
		      </m:ci>
		      <m:ci>
			<m:msub>
			  <m:mi>K</m:mi>
			  <m:mn>4</m:mn>
			</m:msub>
		      </m:ci>
		    </m:apply>
		    <m:cn>15</m:cn>
		  </m:apply>
		  <m:apply>
		    <m:rem/>
		    <m:apply>
		      <m:times/>
		      <m:cn>5</m:cn>
		      <m:cn>6</m:cn>
		    </m:apply>
		    <m:cn>15</m:cn>
		  </m:apply>
		  <m:cn>0</m:cn>
		</m:apply>
	      </m:math>
	      <m:math display="block">
		<m:apply>
		  <m:eq/>
		  <m:apply>
		    <m:rem/>
		    <m:apply>
		      <m:times/>
		      <m:ci>
			<m:msub>
			  <m:mi>K</m:mi>
			  <m:mn>2</m:mn>
			</m:msub>
		      </m:ci>
		      <m:ci>
			<m:msub>
			  <m:mi>K</m:mi>
			  <m:mn>3</m:mn>
			</m:msub>
		      </m:ci>
		    </m:apply>
		    <m:cn>15</m:cn>
		  </m:apply>
		  <m:apply>
		    <m:rem/>
		    <m:apply>
		      <m:times/>
		      <m:cn>3</m:cn>
		      <m:cn>10</m:cn>
		    </m:apply>
		    <m:cn>15</m:cn>
		  </m:apply>
		  <m:cn>0</m:cn>
		</m:apply>
	      </m:math>
	    </item>
	    <item>
	      <name>Checking Conditions for making the short-length
	      transforms be DFTS</name>
	      <m:math display="block">
		<m:apply>
		  <m:eq/>
		  <m:apply>
		    <m:rem/>
		    <m:apply>
		      <m:times/>
		      <m:ci>
			<m:msub>
			  <m:mi>K</m:mi>
			  <m:mn>1</m:mn>
			</m:msub>
		      </m:ci>
		      <m:ci>
			<m:msub>
			  <m:mi>K</m:mi>
			  <m:mn>3</m:mn>
			</m:msub>
		      </m:ci>
		    </m:apply>
		    <m:cn>15</m:cn>
		  </m:apply>
		  <m:apply>
		    <m:rem/>
		    <m:apply>
		      <m:times/>
		      <m:cn>5</m:cn>
		      <m:cn>10</m:cn>
		    </m:apply>
		    <m:cn>15</m:cn>
		  </m:apply>
		  <m:cn>5</m:cn>
		  <m:ci>
		    <m:msub>
		      <m:mi>N</m:mi>
		      <m:mn>2</m:mn>
		    </m:msub>
		  </m:ci>
		</m:apply>
	      </m:math>
	      <m:math display="block">
		<m:apply>
		  <m:eq/>
		  <m:apply>
		    <m:rem/>
		    <m:apply>
		      <m:times/>
		      <m:ci>
			<m:msub>
			  <m:mi>K</m:mi>
			  <m:mn>2</m:mn>
			</m:msub>
		      </m:ci>
		      <m:ci>
			<m:msub>
			  <m:mi>K</m:mi>
			  <m:mn>4</m:mn>
			</m:msub>
		      </m:ci>
		    </m:apply>
		    <m:cn>15</m:cn>
		  </m:apply>
		  <m:apply>
		    <m:rem/>
		    <m:apply>
		      <m:times/>
		      <m:cn>3</m:cn>
		      <m:cn>6</m:cn>
		    </m:apply>
		    <m:cn>15</m:cn>
		  </m:apply>
		  <m:cn>3</m:cn>
		  <m:ci>
		    <m:msub>
		      <m:mi>N</m:mi>
		      <m:mn>1</m:mn>
		    </m:msub>
		  </m:ci>
		</m:apply>
	      </m:math>
	    </item>
	  </list>
	  Therefore, this is a prime factor map.
	</para>
	<figure id="fig1">
	  <name>2-D map</name>
	  <media type="image/png" src="figures15.png"/>
	  <caption>
	    <m:math>
	      <m:apply>
		<m:eq/>
		<m:ci>n</m:ci>
		<m:apply>
		  <m:rem/>
		  <m:apply>
		    <m:plus/>
		    <m:apply>
		      <m:times/>
		      <m:cn>5</m:cn>
		      <m:ci>
			<m:msub>
			  <m:mi>n</m:mi>
			  <m:mn>1</m:mn>
			</m:msub>
		      </m:ci>
		    </m:apply>
		    <m:apply>
		      <m:times/>
		      <m:cn>3</m:cn>
		      <m:ci>
			<m:msub>
			  <m:mi>n</m:mi>
			  <m:mn>2</m:mn>
			</m:msub>
		      </m:ci>
		    </m:apply>
		  </m:apply>
		  <m:cn>15</m:cn>
		</m:apply>
	      </m:apply>
	    </m:math>
	    and 
	    <m:math>
	      <m:apply>
		<m:eq/>
		<m:ci>k</m:ci>
		<m:apply>
		  <m:rem/>
		  <m:apply>
		    <m:plus/>
		    <m:apply>
		      <m:times/>
		      <m:cn>10</m:cn>
		      <m:ci>
			<m:msub>
			  <m:mi>k</m:mi>
			  <m:mn>1</m:mn>
			</m:msub>
		      </m:ci>
		    </m:apply>
		    <m:apply>
		      <m:times/>
		      <m:cn>6</m:cn>
		      <m:ci>
			<m:msub>
			  <m:mi>k</m:mi>
			  <m:mn>2</m:mn>
			</m:msub>
		      </m:ci>
		    </m:apply>
		  </m:apply>
		  <m:cn>15</m:cn>
		</m:apply>
	      </m:apply>
	    </m:math>
	  </caption>
	</figure>
      </example>
      <list id="list18" type="bulleted">
	<name>Operation Counts</name>
	<item>
	  <m:math>
	    <m:ci>
	      <m:msub>
		<m:mi>N</m:mi>
		<m:mn>2</m:mn>
	      </m:msub>
	    </m:ci>
	  </m:math>
	  length-
	  <m:math>
	    <m:ci>
	      <m:msub>	
		<m:mi>N</m:mi>
		<m:mn>1</m:mn>
	      </m:msub>
	    </m:ci>
	  </m:math> DFTs
	  <m:math>
	    <m:apply>
	      <m:plus/>
	      <m:ci>
		<m:msub>
		  <m:mi>N</m:mi>
		  <m:mn>1</m:mn>
		</m:msub>
	      </m:ci>
	    </m:apply>
	  </m:math> length-
	  <m:math>
	    <m:ci>
	      <m:msub>
		<m:mi>N</m:mi>
		<m:mn>2</m:mn>
	      </m:msub>
	    </m:ci>
	  </m:math> DFTs
	  <m:math display="block">
	    <m:apply>
	      <m:eq/>
	      <m:apply>
		<m:plus/>
		<m:apply>
		  <m:times/>
		  <m:ci>
		    <m:msub>
		      <m:mi>N</m:mi>
		      <m:mn>2</m:mn>
		    </m:msub>
		  </m:ci>
		  <m:apply>
		    <m:power/>
		    <m:ci>
		      <m:msub>
			<m:mi>N</m:mi>
			<m:mn>1</m:mn>
		      </m:msub>
		    </m:ci>
		    <m:cn>2</m:cn>
		  </m:apply>
		</m:apply>
		<m:apply>
		  <m:times/>
		  <m:ci>
		    <m:msub>
		      <m:mi>N</m:mi>
		      <m:mn>1</m:mn>
		    </m:msub>
		  </m:ci>
		  <m:apply>
		    <m:power/>
		    <m:ci>
		      <m:msub>
			<m:mi>N</m:mi>
			<m:mn>2</m:mn>
		      </m:msub>
		    </m:ci>
		    <m:cn>2</m:cn>
		  </m:apply>
		</m:apply>
	      </m:apply>
	      <m:apply>
		<m:times/>
		<m:ci>N</m:ci>
		<m:apply>
		  <m:plus/>
		  <m:ci>
		    <m:msub>
		      <m:mi>N</m:mi>
		      <m:mn>1</m:mn>
		    </m:msub>
		  </m:ci>
		  <m:ci>
		    <m:msub>
		      <m:mi>N</m:mi>
		      <m:mn>2</m:mn>
		    </m:msub>
		  </m:ci>
		</m:apply>
	      </m:apply>
	    </m:apply>
	  </m:math>
	  complex multiplies
	</item>
	<item>
	  Suppose 
	  <m:math>
	    <m:apply>
	      <m:eq/>
	      <m:ci>N</m:ci>
	      <m:apply>
		<m:times/>
		<m:ci>
		  <m:msub>
		    <m:mi>N</m:mi>
		    <m:mn>1</m:mn>
		  </m:msub>
		</m:ci>
		<m:ci>
		  <m:msub>
		    <m:mi>N</m:mi>
		    <m:mn>2</m:mn>
		  </m:msub>
		</m:ci>
		<m:ci>
		  <m:msub>
		    <m:mi>N</m:mi>
		    <m:mn>3</m:mn>
		  </m:msub>
		</m:ci>
		<m:ci>…</m:ci>
		<m:ci>
		  <m:msub>
		    <m:mi>N</m:mi>
		    <m:mn>M</m:mn>
		  </m:msub>
		</m:ci>
	      </m:apply>
	    </m:apply>
	  </m:math>
	  <m:math display="block">
	    <m:apply>
	      <m:times/>
	      <m:ci>N</m:ci>
	      <m:apply>
		<m:plus/>
		<m:ci>
		  <m:msub>
		    <m:mi>N</m:mi>
		    <m:mn>1</m:mn>
		  </m:msub>
		</m:ci>
		<m:ci>
		  <m:msub>
		    <m:mi>N</m:mi>
		    <m:mn>2</m:mn>
		  </m:msub>
		</m:ci>
		<m:ci>…</m:ci>
		<m:ci>
		  <m:msub>
		    <m:mi>N</m:mi>
		    <m:mi>M</m:mi>
		  </m:msub>
		</m:ci>
	      </m:apply>
	    </m:apply>
	  </m:math>
	  Complex multiplies
	</item>
      </list>
      <note type="Different Strategies">
	<cnxn document="m12016">radix-2</cnxn>, <cnxn document="m12027">radix-4</cnxn> eliminate all multiplies in short-length
	DFTs, but have twiddle factors: PFA eliminates all twiddle
	factors, but ends up with multiplies in short-length <cnxn document="m12032" target="DFTequation">DFTs</cnxn>.
	Surprisingly, total operation counts end up being very similar
	for similar lengths.
      </note>
    </section>
  </content>

  <bib:file>
    <bib:entry id="Burrus">
      <bib:article>
	<bib:author>C.S. Burrus</bib:author>
	<bib:title>Index Mappings for Multidimensional Formulation of
	the DFT and Convolution</bib:title>
	<bib:journal>ASSP</bib:journal>
	<bib:year>1977</bib:year>
	<bib:volume>25</bib:volume>
	<bib:pages>239-242</bib:pages>
	<bib:month>June</bib:month>
      </bib:article>
    </bib:entry>
  </bib:file>
  
</document>
