This file is indexed.

/usr/share/doc/libjuce/apiref/classFFT.html is in libjuce-doc 4.3.0~repack-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>JUCE: FFT Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">JUCE
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classFFT-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">FFT Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>A very minimal <a class="el" href="classFFT.html" title="A very minimal FFT class. ">FFT</a> class.  
 <a href="classFFT.html#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structFFT_1_1Complex.html">Complex</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A complex number, for the purposes of the <a class="el" href="classFFT.html" title="A very minimal FFT class. ">FFT</a> class.  <a href="structFFT_1_1Complex.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a4351b09df7fff4082f371b7f4753bd45"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFFT.html#a4351b09df7fff4082f371b7f4753bd45">FFT</a> (int order, bool isInverse)</td></tr>
<tr class="memdesc:a4351b09df7fff4082f371b7f4753bd45"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialises an object for performing either a forward or inverse <a class="el" href="classFFT.html" title="A very minimal FFT class. ">FFT</a> with the given size.  <a href="#a4351b09df7fff4082f371b7f4753bd45">More...</a><br /></td></tr>
<tr class="separator:a4351b09df7fff4082f371b7f4753bd45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69b8b0fb23ec45833952992d7f9ad2ad"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFFT.html#a69b8b0fb23ec45833952992d7f9ad2ad">~FFT</a> ()</td></tr>
<tr class="memdesc:a69b8b0fb23ec45833952992d7f9ad2ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#a69b8b0fb23ec45833952992d7f9ad2ad">More...</a><br /></td></tr>
<tr class="separator:a69b8b0fb23ec45833952992d7f9ad2ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae48bdedde84a2bd47f897945ba5a04f7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFFT.html#ae48bdedde84a2bd47f897945ba5a04f7">perform</a> (const <a class="el" href="structFFT_1_1Complex.html">Complex</a> *input, <a class="el" href="structFFT_1_1Complex.html">Complex</a> *output) const noexcept</td></tr>
<tr class="memdesc:ae48bdedde84a2bd47f897945ba5a04f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs an out-of-place <a class="el" href="classFFT.html" title="A very minimal FFT class. ">FFT</a>, either forward or inverse depending on the mode that was passed to this object's constructor.  <a href="#ae48bdedde84a2bd47f897945ba5a04f7">More...</a><br /></td></tr>
<tr class="separator:ae48bdedde84a2bd47f897945ba5a04f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a879d3e58058eb37b81f647fa8d9f63ff"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFFT.html#a879d3e58058eb37b81f647fa8d9f63ff">performRealOnlyForwardTransform</a> (float *inputOutputData) const noexcept</td></tr>
<tr class="memdesc:a879d3e58058eb37b81f647fa8d9f63ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs an in-place forward transform on a block of real data.  <a href="#a879d3e58058eb37b81f647fa8d9f63ff">More...</a><br /></td></tr>
<tr class="separator:a879d3e58058eb37b81f647fa8d9f63ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8713f9b3a469d255b21229904d78fd94"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFFT.html#a8713f9b3a469d255b21229904d78fd94">performRealOnlyInverseTransform</a> (float *inputOutputData) const noexcept</td></tr>
<tr class="memdesc:a8713f9b3a469d255b21229904d78fd94"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs a reverse operation to data created in <a class="el" href="classFFT.html#a879d3e58058eb37b81f647fa8d9f63ff" title="Performs an in-place forward transform on a block of real data. ">performRealOnlyForwardTransform()</a>.  <a href="#a8713f9b3a469d255b21229904d78fd94">More...</a><br /></td></tr>
<tr class="separator:a8713f9b3a469d255b21229904d78fd94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88d0d847721d5dfc1a3c583d3340f946"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFFT.html#a88d0d847721d5dfc1a3c583d3340f946">performFrequencyOnlyForwardTransform</a> (float *inputOutputData) const noexcept</td></tr>
<tr class="memdesc:a88d0d847721d5dfc1a3c583d3340f946"><td class="mdescLeft">&#160;</td><td class="mdescRight">Takes an array and simply transforms it to the frequency spectrum.  <a href="#a88d0d847721d5dfc1a3c583d3340f946">More...</a><br /></td></tr>
<tr class="separator:a88d0d847721d5dfc1a3c583d3340f946"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad31b8261ecd82dda721df4705b57940f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFFT.html#ad31b8261ecd82dda721df4705b57940f">getSize</a> () const noexcept</td></tr>
<tr class="memdesc:ad31b8261ecd82dda721df4705b57940f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of data points that this <a class="el" href="classFFT.html" title="A very minimal FFT class. ">FFT</a> was created to work with.  <a href="#ad31b8261ecd82dda721df4705b57940f">More...</a><br /></td></tr>
<tr class="separator:ad31b8261ecd82dda721df4705b57940f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>A very minimal <a class="el" href="classFFT.html" title="A very minimal FFT class. ">FFT</a> class. </p>
<p>This is only a simple low-footprint implementation and isn't tuned for speed - it may be useful for simple applications where one of the more complex <a class="el" href="classFFT.html" title="A very minimal FFT class. ">FFT</a> libraries would be overkill. (But in the future it may end up becoming optimised of course...)</p>
<p>The <a class="el" href="classFFT.html" title="A very minimal FFT class. ">FFT</a> class itself contains lookup tables, so there's some overhead in creating one, you should create and cache an <a class="el" href="classFFT.html" title="A very minimal FFT class. ">FFT</a> object for each size/direction of transform that you need, and re-use them to perform the actual operation. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a4351b09df7fff4082f371b7f4753bd45"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4351b09df7fff4082f371b7f4753bd45">&sect;&nbsp;</a></span>FFT()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FFT::FFT </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>order</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>isInverse</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initialises an object for performing either a forward or inverse <a class="el" href="classFFT.html" title="A very minimal FFT class. ">FFT</a> with the given size. </p>
<p>The the number of points the <a class="el" href="classFFT.html" title="A very minimal FFT class. ">FFT</a> will operate on will be 2 ^ order. </p>

</div>
</div>
<a id="a69b8b0fb23ec45833952992d7f9ad2ad"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a69b8b0fb23ec45833952992d7f9ad2ad">&sect;&nbsp;</a></span>~FFT()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FFT::~FFT </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Destructor. </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="ae48bdedde84a2bd47f897945ba5a04f7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae48bdedde84a2bd47f897945ba5a04f7">&sect;&nbsp;</a></span>perform()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void FFT::perform </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structFFT_1_1Complex.html">Complex</a> *&#160;</td>
          <td class="paramname"><em>input</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structFFT_1_1Complex.html">Complex</a> *&#160;</td>
          <td class="paramname"><em>output</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Performs an out-of-place <a class="el" href="classFFT.html" title="A very minimal FFT class. ">FFT</a>, either forward or inverse depending on the mode that was passed to this object's constructor. </p>
<p>The arrays must contain at least <a class="el" href="classFFT.html#ad31b8261ecd82dda721df4705b57940f" title="Returns the number of data points that this FFT was created to work with. ">getSize()</a> elements. </p>

</div>
</div>
<a id="a879d3e58058eb37b81f647fa8d9f63ff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a879d3e58058eb37b81f647fa8d9f63ff">&sect;&nbsp;</a></span>performRealOnlyForwardTransform()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void FFT::performRealOnlyForwardTransform </td>
          <td>(</td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>inputOutputData</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Performs an in-place forward transform on a block of real data. </p>
<p>The size of the array passed in must be 2 * <a class="el" href="classFFT.html#ad31b8261ecd82dda721df4705b57940f" title="Returns the number of data points that this FFT was created to work with. ">getSize()</a>, and the first half should contain your raw input sample data. On return, the array will contain complex frequency + phase data, and can be passed to <a class="el" href="classFFT.html#a8713f9b3a469d255b21229904d78fd94" title="Performs a reverse operation to data created in performRealOnlyForwardTransform(). ">performRealOnlyInverseTransform()</a> in order to convert it back to reals. </p>

</div>
</div>
<a id="a8713f9b3a469d255b21229904d78fd94"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8713f9b3a469d255b21229904d78fd94">&sect;&nbsp;</a></span>performRealOnlyInverseTransform()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void FFT::performRealOnlyInverseTransform </td>
          <td>(</td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>inputOutputData</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Performs a reverse operation to data created in <a class="el" href="classFFT.html#a879d3e58058eb37b81f647fa8d9f63ff" title="Performs an in-place forward transform on a block of real data. ">performRealOnlyForwardTransform()</a>. </p>
<p>The size of the array passed in must be 2 * <a class="el" href="classFFT.html#ad31b8261ecd82dda721df4705b57940f" title="Returns the number of data points that this FFT was created to work with. ">getSize()</a>, containing complex frequency and phase data. On return, the first half of the array will contain the reconstituted samples. </p>

</div>
</div>
<a id="a88d0d847721d5dfc1a3c583d3340f946"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a88d0d847721d5dfc1a3c583d3340f946">&sect;&nbsp;</a></span>performFrequencyOnlyForwardTransform()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void FFT::performFrequencyOnlyForwardTransform </td>
          <td>(</td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>inputOutputData</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Takes an array and simply transforms it to the frequency spectrum. </p>
<p>This may be handy for things like frequency displays or analysis. </p>

</div>
</div>
<a id="ad31b8261ecd82dda721df4705b57940f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad31b8261ecd82dda721df4705b57940f">&sect;&nbsp;</a></span>getSize()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int FFT::getSize </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the number of data points that this <a class="el" href="classFFT.html" title="A very minimal FFT class. ">FFT</a> was created to work with. </p>

<p>References <a class="el" href="juce__PlatformDefs_8h.html#a851b02724a8158a7f746c66b5758b3dd">JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR</a>, and <a class="el" href="juce__StandardHeader_8h.html#a8d339dd1e85e6fbefaf7638692d085c2">JUCE_PUBLIC_IN_DLL_BUILD</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="juce__FFT_8h.html">juce_FFT.h</a></li>
</ul>
</div><!-- contents -->
<hr class="footer"/>
<address class="footer"><small>All content &copy ROLI Ltd.</small></address><br/>
</body>
</html>