Chris@10: <html lang="en">
Chris@10: <head>
Chris@10: <title>Column-major Format - FFTW 3.3.3</title>
Chris@10: <meta http-equiv="Content-Type" content="text/html">
Chris@10: <meta name="description" content="FFTW 3.3.3">
Chris@10: <meta name="generator" content="makeinfo 4.13">
Chris@10: <link title="Top" rel="start" href="index.html#Top">
Chris@10: <link rel="up" href="Multi_002ddimensional-Array-Format.html#Multi_002ddimensional-Array-Format" title="Multi-dimensional Array Format">
Chris@10: <link rel="prev" href="Row_002dmajor-Format.html#Row_002dmajor-Format" title="Row-major Format">
Chris@10: <link rel="next" href="Fixed_002dsize-Arrays-in-C.html#Fixed_002dsize-Arrays-in-C" title="Fixed-size Arrays in C">
Chris@10: <link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
Chris@10: <!--
Chris@10: This manual is for FFTW
Chris@10: (version 3.3.3, 25 November 2012).
Chris@10: 
Chris@10: Copyright (C) 2003 Matteo Frigo.
Chris@10: 
Chris@10: Copyright (C) 2003 Massachusetts Institute of Technology.
Chris@10: 
Chris@10:      Permission is granted to make and distribute verbatim copies of
Chris@10:      this manual provided the copyright notice and this permission
Chris@10:      notice are preserved on all copies.
Chris@10: 
Chris@10:      Permission is granted to copy and distribute modified versions of
Chris@10:      this manual under the conditions for verbatim copying, provided
Chris@10:      that the entire resulting derived work is distributed under the
Chris@10:      terms of a permission notice identical to this one.
Chris@10: 
Chris@10:      Permission is granted to copy and distribute translations of this
Chris@10:      manual into another language, under the above conditions for
Chris@10:      modified versions, except that this permission notice may be
Chris@10:      stated in a translation approved by the Free Software Foundation.
Chris@10:    -->
Chris@10: <meta http-equiv="Content-Style-Type" content="text/css">
Chris@10: <style type="text/css"><!--
Chris@10:   pre.display { font-family:inherit }
Chris@10:   pre.format  { font-family:inherit }
Chris@10:   pre.smalldisplay { font-family:inherit; font-size:smaller }
Chris@10:   pre.smallformat  { font-family:inherit; font-size:smaller }
Chris@10:   pre.smallexample { font-size:smaller }
Chris@10:   pre.smalllisp    { font-size:smaller }
Chris@10:   span.sc    { font-variant:small-caps }
Chris@10:   span.roman { font-family:serif; font-weight:normal; } 
Chris@10:   span.sansserif { font-family:sans-serif; font-weight:normal; } 
Chris@10: --></style>
Chris@10: </head>
Chris@10: <body>
Chris@10: <div class="node">
Chris@10: <a name="Column-major-Format"></a>
Chris@10: <a name="Column_002dmajor-Format"></a>
Chris@10: <p>
Chris@10: Next:&nbsp;<a rel="next" accesskey="n" href="Fixed_002dsize-Arrays-in-C.html#Fixed_002dsize-Arrays-in-C">Fixed-size Arrays in C</a>,
Chris@10: Previous:&nbsp;<a rel="previous" accesskey="p" href="Row_002dmajor-Format.html#Row_002dmajor-Format">Row-major Format</a>,
Chris@10: Up:&nbsp;<a rel="up" accesskey="u" href="Multi_002ddimensional-Array-Format.html#Multi_002ddimensional-Array-Format">Multi-dimensional Array Format</a>
Chris@10: <hr>
Chris@10: </div>
Chris@10: 
Chris@10: <h4 class="subsection">3.2.2 Column-major Format</h4>
Chris@10: 
Chris@10: <p><a name="index-column_002dmajor-118"></a>
Chris@10: Readers from the Fortran world are used to arrays stored in
Chris@10: <dfn>column-major</dfn> order (sometimes called &ldquo;Fortran order&rdquo;).  This is
Chris@10: essentially the exact opposite of row-major order in that, here, the
Chris@10: <em>first</em> dimension's index varies most quickly.
Chris@10: 
Chris@10:    <p>If you have an array stored in column-major order and wish to
Chris@10: transform it using FFTW, it is quite easy to do.  When creating the
Chris@10: plan, simply pass the dimensions of the array to the planner in
Chris@10: <em>reverse order</em>.  For example, if your array is a rank three
Chris@10: <code>N x M x L</code> matrix in column-major order, you should pass the
Chris@10: dimensions of the array as if it were an <code>L x M x N</code> matrix
Chris@10: (which it is, from the perspective of FFTW).  This is done for you
Chris@10: <em>automatically</em> by the FFTW legacy-Fortran interface
Chris@10: (see <a href="Calling-FFTW-from-Legacy-Fortran.html#Calling-FFTW-from-Legacy-Fortran">Calling FFTW from Legacy Fortran</a>), but you must do it
Chris@10: manually with the modern Fortran interface (see <a href="Reversing-array-dimensions.html#Reversing-array-dimensions">Reversing array dimensions</a>). 
Chris@10: <a name="index-Fortran-interface-119"></a>
Chris@10: <!-- =========> -->
Chris@10: 
Chris@10:    </body></html>
Chris@10: