⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 section2.html

📁 FFTW, a collection of fast C routines to compute the Discrete Fourier Transform in one or more dime
💻 HTML
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"><html><head><title>FFTW FAQ - Section 2</title><link rev="made" href="mailto:fftw@fftw.org"><link rel="Contents" href="index.html"><link rel="Start" href="index.html"><link rel="Next" href="section3.html"><link rel="Previous" href="section1.html"><link rel="Bookmark" title="FFTW FAQ" href="index.html"></head><body text="#000000" bgcolor="#FFFFFF"><h1>FFTW FAQ - Section 2 <br>Installing FFTW</h1><ul><li><a href="#systems" rel=subdocument>Q2.1. Which systems does FFTW run on?</a><li><a href="#runOnDOS" rel=subdocument>Q2.2. Does FFTW run on DOS/Windows?</a><li><a href="#compilerCrashes" rel=subdocument>Q2.3. My compiler has trouble with FFTW.</a><li><a href="#solarisSucks" rel=subdocument>Q2.4. FFTW does not compile on Solaris, complaining about<code>const</code>.</a><li><a href="#languages" rel=subdocument>Q2.5. Which language is FFTW written in?</a><li><a href="#fortran" rel=subdocument>Q2.6. Can I call FFTW from FORTRAN?</a><li><a href="#cplusplus" rel=subdocument>Q2.7. Can I call FFTW from C++?</a><li><a href="#whynotfortran" rel=subdocument>Q2.8. Why isn't FFTW written in FORTRAN/C++?</a><li><a href="#singleprec" rel=subdocument>Q2.9. How do I compile FFTW to run in single precision?</a></ul><hr><h2><A name="systems">Question 2.1.  Which systems does FFTW runon?</A></h2>FFTW is written in ANSI C, and should work on any system witha decent C compiler.  (See also <A href="#runOnDOS">Q2.2 `Does FFTW run on DOS/Windows?'</A> and  <A href="#compilerCrashes">Q2.3 `My compiler has trouble with FFTW.'</A>.) <h2><A name="runOnDOS">Question 2.2.  Does FFTW run on DOS/Windows?</A></h2>It should.  FFTW was not developed on DOS or Windows, but the sourcecode is straight ANSI C.  Some users have reported using FFTW onDOS/Windows using various compilers.  See also the<A href="http://www.fftw.org/install/install-Windows.html">FFTW Windows installation notes</A> and <A href="#compilerCrashes">Q2.3 `My compiler has trouble with FFTW.'</A> <h2><A name="compilerCrashes">Question 2.3.  My compiler has trouble withFFTW.</A></h2>Complain fiercely to the vendor of the compiler. <p>FFTW is a heavily-optimized piece of software that is likely to pushcompilers to their limits.  We had no problems with, for example,<code>gcc 2.7.2</code>, <code>egcs 1.1.x</code>, Sun's <code>SC4.0</code>, and IBM's <code>XLC</code>.  Users have also reported successful compilations of FFTW using Borland's C/C++ compilers on Windows. <p>The Portland Group PGCC compiler, version 4.0 for Linux/x86,reportedly produces incorrect code for FFTW 2.1.3. <p>Visual C++ 4.0 crashes when compiling FFTW 1.2 with all optimizationsturned on.  Visual C++ 5.0 reportedly produces incorrect code for thereal transforms in FFTW 2.x when the option &quot;Maximize speed&quot;is set.  We are told that Service Pack 3 fixes the bug. <p>Metrowerks CodeWarrior Pro 4 reportedly generates incorrect code forthe PowerPC when compiling FFTW at optimization level 4.  Supposedly,this bug is fixed in CW Pro 5 with all the latest updates applied. (No problems were reported for previous versions.)<p>Various problems have also been observed with SGI's MIPSpro compilers,versions 7.2.0 and 7.2.1 (you may have to lower the optimization levelfor some files to get them to compile); the bug seems to be fixed inversion 7.3.  The test program in earlier versions of FFTW hadproblems with the <code>-xO5</code> option in Sun's <code>SC4.0</code> C compiler.  <code>egcs 1.0.2</code> produced incorrect code for FFTW on the PowerPC (corrected in <code>egcs 1.1</code>).  <p>The DEC C compiler, V5.8-009 on Digital UNIX V4.0 (Rev. 1091) is knownto have bugs with its EV6 tuning.  Specifically, compiling FFTW with<code>-arch host</code> (the default) or <code>-arch ev6</code> on an Alpha EV6 can cause FFTW (e.g. <code>fftw_test -s 256</code>) to crash.  <h2><A name="solarisSucks">Question 2.4.  FFTW does not compile on Solaris, complaining about<code>const</code>.</A></h2>We know that at least on Solaris 2.5.x with Sun's compilers 4.2 youmight get error messages from <code>make</code> such as <p><code>&quot;./fftw.h&quot;, line 88: warning: const is a keyword in ANSIC</code> <p>This is the case when the <code>configure</code> script reports that <code>const</code> does not work: <p><code>checking for working const... (cached) no</code> <p>You should be aware that Solaris comes with two compilers, namely,<code>/opt/SUNWspro/SC4.2/bin/cc</code> and <code>/usr/ucb/cc</code>.  The latter compiler is non-ANSI.  Indeed, it is a perverse shell scriptthat calls the real compiler in non-ANSI mode.  In orderto compile FFTW, change your path so that the right<code>cc</code> is used.  <p>To know whether your compiler is the right one,  type<code>cc -V</code>.  If the compiler prints ``<code>ucbcc</code>'', as in  <p><code>ucbcc: WorkShop Compilers 4.2 30 Oct 1996 C4.2</code> <p>then the compiler is wrong.  The right message is something like<p><code>cc: WorkShop Compilers 4.2 30 Oct 1996 C4.2</code> <h2><A name="languages">Question 2.5.  Which language is FFTW writtenin?</A></h2>FFTW is written in ANSI C.  Most of the code, however, wasautomatically generated by a program called<code>genfft</code>, written in the Objective Caml dialect of ML.  You do not need to know ML or tohave an Objective Caml compiler in order to use FFTW. <p><code>genfft</code> is provided with the FFTW sources, which means thatyou can play with the code generator if you want.  In this case, youneed a working Objective Caml system.  Objective Caml is availablefrom <code>ftp.inria.fr</code> in the directory <A href="ftp://ftp.inria.fr/lang/caml-light"><code>/lang/caml-light</code></A>.  <h2><A name="fortran">Question 2.6.  Can I call FFTW from FORTRAN?</A></h2>Yes, but not directly.  The main problem is that Fortran cannot passparameters by value.  However, FFTW can be called indirectly fromFortran through the use of special C &quot;wrapper&quot; routines. Appropriate wrapper code, documented in the FFTW manual, is included with FFTW(versions 1.3 and higher).  <p>By default, FFTW configures its wrapper routines to work with thefirst compiler it finds, e.g. <code>g77</code>.  To configure for a different, incompatible Fortran compiler<code>foobar</code>, use <code>./configure F77=foobar</code> when installing FFTW.  <h2><A name="cplusplus">Question 2.7.  Can I call FFTW from C++?</A></h2>Most definitely.  FFTW should compile and run under any C++ compiler. <h2><A name="whynotfortran">Question 2.8.  Why isn't FFTW written inFORTRAN/C++?</A></h2>Because we don't like those languages, and neither approaches theportability of C.  <h2><A name="singleprec">Question 2.9.  How do I compile FFTW to run in singleprecision?</A></h2>On a Unix system: <code>configure --enable-float</code>.  On a non-Unix system: edit <code>fftw/fftw.h</code> to <code>#define</code> the symbol <code>FFTW_ENABLE_FLOAT</code>.  In both cases, you must then recompileFFTW.  <hr>Next: <a href="section3.html" rel=precedes>Using FFTW</a>.<br>Back: <a href="section1.html" rev=precedes>Introduction and General Information</a>.<br><a href="index.html" rev=subdocument>Return to contents</a>.<p><address><A href="http://www.fftw.org">Matteo Frigo and Steven G. Johnson</A> / <A href="mailto:fftw@fftw.org">fftw@fftw.org</A>- 24 March 2003</address><br>Extracted from FFTW Frequently Asked Questions with Answers,Copyright &copy; 2003 Massachusetts Institute of Technology.</body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -