~ubuntu-branches/ubuntu/maverick/blender/maverick

« back to all changes in this revision

Viewing changes to extern/fftw/doc/html/Complex-numbers.html

  • Committer: Bazaar Package Importer
  • Author(s): Khashayar Naderehvandi, Khashayar Naderehvandi, Alessio Treglia
  • Date: 2009-01-22 16:53:59 UTC
  • mfrom: (14.1.1 experimental)
  • Revision ID: james.westby@ubuntu.com-20090122165359-v0996tn7fbit64ni
Tags: 2.48a+dfsg-1ubuntu1
[ Khashayar Naderehvandi ]
* Merge from debian experimental (LP: #320045), Ubuntu remaining changes:
  - Add patch correcting header file locations.
  - Add libvorbis-dev and libgsm1-dev to Build-Depends.
  - Use avcodec_decode_audio2() in source/blender/src/hddaudio.c

[ Alessio Treglia ]
* Add missing previous changelog entries.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<html lang="en">
 
2
<head>
 
3
<title>Complex numbers - FFTW 3.1.2</title>
 
4
<meta http-equiv="Content-Type" content="text/html">
 
5
<meta name="description" content="FFTW 3.1.2">
 
6
<meta name="generator" content="makeinfo 4.8">
 
7
<link title="Top" rel="start" href="index.html#Top">
 
8
<link rel="up" href="Data-Types-and-Files.html#Data-Types-and-Files" title="Data Types and Files">
 
9
<link rel="prev" href="Data-Types-and-Files.html#Data-Types-and-Files" title="Data Types and Files">
 
10
<link rel="next" href="Precision.html#Precision" title="Precision">
 
11
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
 
12
<!--
 
13
This manual is for FFTW
 
14
(version 3.1.2, 23 June 2006).
 
15
 
 
16
Copyright (C) 2003 Matteo Frigo.
 
17
 
 
18
Copyright (C) 2003 Massachusetts Institute of Technology.
 
19
 
 
20
     Permission is granted to make and distribute verbatim copies of
 
21
     this manual provided the copyright notice and this permission
 
22
     notice are preserved on all copies.
 
23
 
 
24
     Permission is granted to copy and distribute modified versions of
 
25
     this manual under the conditions for verbatim copying, provided
 
26
     that the entire resulting derived work is distributed under the
 
27
     terms of a permission notice identical to this one.
 
28
 
 
29
     Permission is granted to copy and distribute translations of this
 
30
     manual into another language, under the above conditions for
 
31
     modified versions, except that this permission notice may be
 
32
     stated in a translation approved by the Free Software Foundation.
 
33
   -->
 
34
<meta http-equiv="Content-Style-Type" content="text/css">
 
35
<style type="text/css"><!--
 
36
  pre.display { font-family:inherit }
 
37
  pre.format  { font-family:inherit }
 
38
  pre.smalldisplay { font-family:inherit; font-size:smaller }
 
39
  pre.smallformat  { font-family:inherit; font-size:smaller }
 
40
  pre.smallexample { font-size:smaller }
 
41
  pre.smalllisp    { font-size:smaller }
 
42
  span.sc    { font-variant:small-caps }
 
43
  span.roman { font-family:serif; font-weight:normal; } 
 
44
  span.sansserif { font-family:sans-serif; font-weight:normal; } 
 
45
--></style>
 
46
</head>
 
47
<body>
 
48
<div class="node">
 
49
<p>
 
50
<a name="Complex-numbers"></a>
 
51
Next:&nbsp;<a rel="next" accesskey="n" href="Precision.html#Precision">Precision</a>,
 
52
Previous:&nbsp;<a rel="previous" accesskey="p" href="Data-Types-and-Files.html#Data-Types-and-Files">Data Types and Files</a>,
 
53
Up:&nbsp;<a rel="up" accesskey="u" href="Data-Types-and-Files.html#Data-Types-and-Files">Data Types and Files</a>
 
54
<hr>
 
55
</div>
 
56
 
 
57
<h4 class="subsection">4.1.1 Complex numbers</h4>
 
58
 
 
59
<p>The default FFTW interface uses <code>double</code> precision for all
 
60
floating-point numbers, and defines a <code>fftw_complex</code> type to hold
 
61
complex numbers as:
 
62
 
 
63
<pre class="example">     typedef double fftw_complex[2];
 
64
</pre>
 
65
   <p><a name="index-fftw_005fcomplex-136"></a>
 
66
Here, the <code>[0]</code> element holds the real part and the <code>[1]</code>
 
67
element holds the imaginary part.
 
68
 
 
69
   <p>Alternatively, if you have a C compiler (such as <code>gcc</code>) that
 
70
supports the C99 revision of the ANSI C standard, you can use C's new
 
71
native complex type (which is binary-compatible with the typedef above). 
 
72
In particular, if you <code>#include &lt;complex.h&gt;</code> <em>before</em>
 
73
<code>&lt;fftw3.h&gt;</code>, then <code>fftw_complex</code> is defined to be the native
 
74
complex type and you can manipulate it with ordinary arithmetic
 
75
(e.g. <code>x = y * (3+4*I)</code>, where <code>x</code> and <code>y</code> are
 
76
<code>fftw_complex</code> and <code>I</code> is the standard symbol for the
 
77
imaginary unit);
 
78
<a name="index-C99-137"></a>
 
79
C++ has its own <code>complex&lt;T&gt;</code> template class, defined in the
 
80
standard <code>&lt;complex&gt;</code> header file.  Reportedly, the C++ standards
 
81
committee has recently agreed to mandate that the storage format used
 
82
for this type be binary-compatible with the C99 type, i.e. an array
 
83
<code>T[2]</code> with consecutive real <code>[0]</code> and imaginary <code>[1]</code>
 
84
parts.  (See report
 
85
<a href="http://anubis.dkuug.dk/JTC1/SC22/WG21/docs/papers/2002/1388.pdf">WG21/N1388</a>.)  Although not part of the official standard as of this
 
86
writing, the proposal stated that: &ldquo;This solution has been tested with
 
87
all current major implementations of the standard library and shown to
 
88
be working.&rdquo;  To the extent that this is true, if you have a variable
 
89
<code>complex&lt;double&gt; *x</code>, you can pass it directly to FFTW via
 
90
<code>reinterpret_cast&lt;fftw_complex*&gt;(x)</code>. 
 
91
<a name="index-C_002b_002b-138"></a><a name="index-portability-139"></a>
 
92
<!-- =========> -->
 
93
 
 
94
   </body></html>
 
95