亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? fftw.texi

?? FFTW, a collection of fast C routines to compute the Discrete Fourier Transform in one or more dime
?? TEXI
?? 第 1 頁 / 共 5 頁
字號:
its input array.  (The real-to-complex transform, on the other hand,leaves its input array untouched.)  If you use RFFTWND for a rank-onetransform, however, this side-effect does not occur.  Because of thisfact (and the simpler output format), users may find the RFFTWNDinterface more convenient than RFFTW for one-dimensional transforms.However, RFFTWND in one dimension is slightly slower than RFFTW becauseRFFTWND uses an extra buffer array internally.@c ------------------------------------------------------------@node Multi-dimensional Array Format, Words of Wisdom, Real Multi-dimensional Transforms Tutorial, Tutorial@section Multi-dimensional Array FormatThis section describes the format in which multi-dimensional arrays arestored.  We felt that a detailed discussion of this topic was necessary,since it is often a source of confusion among users and severaldifferent formats are common.  Although the comments below refer to@code{fftwnd}, they are also applicable to the @code{rfftwnd} routines.@menu* Row-major Format::            * Column-major Format::         * Static Arrays in C::          * Dynamic Arrays in C::         * Dynamic Arrays in C-The Wrong Way::  @end menu@node Row-major Format, Column-major Format, Multi-dimensional Array Format, Multi-dimensional Array Format@subsection Row-major Format@cindex row-majorThe multi-dimensional arrays passed to @code{fftwnd} are expected to bestored as a single contiguous block in @dfn{row-major} order (sometimescalled ``C order'').  Basically, this means that as you step throughadjacent memory locations, the first dimension's index varies mostslowly and the last dimension's index varies most quickly.To be more explicit, let us consider an array of rank @mathdbbjljt whosedimensions are@tex$n_1 \times n_2 \times n_3 \times \cdots \times n_d$.@end tex@ifinfon1 x n2 x n3 x ... x nd.@end ifinfo@ifhtmln<sub>1</sub> x n<sub>2</sub> x n<sub>3</sub> x ... x n<sub>d</sub>.@end ifhtmlNow, we specify a location in the array by a sequence of (zero-based) indices,one for each dimension:@tex$(i_1, i_2, i_3, \ldots, i_d)$.@end tex@ifinfo(i1, i2, ..., id).@end ifinfo@ifhtml(i<sub>1</sub>, i<sub>2</sub>, i<sub>3</sub>,..., i<sub>d</sub>).@end ifhtmlIf the array is stored in row-majororder, then this element is located at the position@tex$i_d + n_d (i_{d-1} + n_{d-1} (\ldots + n_2 i_1))$.@end tex@ifinfoid + nd * (id-1 + nd-1 * (... + n2 * i1)).@end ifinfo@ifhtmli<sub>d</sub> + n<sub>d</sub> * (i<sub>d-1</sub> + n<sub>d-1</sub> * (... + n<sub>2</sub> * i<sub>1</sub>)).@end ifhtmlNote that each element of the array must be of type @code{fftw_complex};i.e. a (real, imaginary) pair of (double-precision) numbers. Note alsothat, in @code{fftwnd}, the expression above is multiplied by the strideto get the actual array index---this is useful in situations where eachelement of the multi-dimensional array is actually a data structure oranother array, and you just want to transform a single field. In mostcases, however, you use a stride of 1.@cindex stride@node Column-major Format, Static Arrays in C, Row-major Format, Multi-dimensional Array Format@subsection Column-major Format@cindex column-majorReaders from the Fortran world are used to arrays stored in@dfn{column-major} order (sometimes called ``Fortran order'').  This isessentially the exact opposite of row-major order in that, here, the@emph{first} dimension's index varies most quickly.If you have an array stored in column-major order and wish to transformit using @code{fftwnd}, it is quite easy to do.  When creating the plan,simply pass the dimensions of the array to @code{fftwnd_create_plan} in@emph{reverse order}.  For example, if your array is a rank three@code{N x M x L} matrix in column-major order, you should pass thedimensions of the array as if it were an @code{L x M x N} matrix (whichit is, from the perspective of @code{fftwnd}).  This is done for youautomatically by the FFTW Fortran wrapper routines (@pxref{Calling FFTWfrom Fortran}).@cindex Fortran-callable wrappers@node Static Arrays in C, Dynamic Arrays in C, Column-major Format, Multi-dimensional Array Format@subsection Static Arrays in C@cindex C multi-dimensional arraysMulti-dimensional arrays declared statically (that is, at compile time,not necessarily with the @code{static} keyword) in C are @emph{already}in row-major order.  You don't have to do anything special to transformthem.  (@xref{Complex Multi-dimensional Transforms Tutorial}, for anexample of this sort of code.)@node Dynamic Arrays in C, Dynamic Arrays in C-The Wrong Way, Static Arrays in C, Multi-dimensional Array Format@subsection Dynamic Arrays in COften, especially for large arrays, it is desirable to allocate thearrays dynamically, at runtime.  This isn't too hard to do, although itis not as straightforward for multi-dimensional arrays as it is forone-dimensional arrays.Creating the array is simple: using a dynamic-allocation routine like@code{malloc}, allocate an array big enough to store N @code{fftw_complex}values, where N is the product of the sizes of the array dimensions(i.e. the total number of complex values in the array).  For example,here is code to allocate a 5x12x27 rank 3 array:@ffindex malloc@examplefftw_complex *an_array;an_array = (fftw_complex *) malloc(5 * 12 * 27 * sizeof(fftw_complex));@end exampleAccessing the array elements, however, is more tricky---you can't simplyuse multiple applications of the @samp{[]} operator like you could forstatic arrays.  Instead, you have to explicitly compute the offset intothe array using the formula given earlier for row-major arrays.  Forexample, to reference the @math{(i,j,k)}-th element of the arrayallocated above, you would use the expression @code{an_array[k + 27 * (j+ 12 * i)]}.This pain can be alleviated somewhat by defining appropriate macros, or,in C++, creating a class and overloading the @samp{()} operator.@node Dynamic Arrays in C-The Wrong Way,  , Dynamic Arrays in C, Multi-dimensional Array Format@subsection Dynamic Arrays in C---The Wrong WayA different method for allocating multi-dimensional arrays in C is oftensuggested that is incompatible with @code{fftwnd}: @emph{using it willcause FFTW to die a painful death}.  We discuss the technique here,however, because it is so commonly known and used.  This method is tocreate arrays of pointers of arrays of pointers of @dots{}etcetera.  Forexample, the analogue in this method to the example above is:@exampleint i,j;fftw_complex ***a_bad_array;  /* another way to make a 5x12x27 array */a_bad_array = (fftw_complex ***) malloc(5 * sizeof(fftw_complex **));for (i = 0; i < 5; ++i) @{     a_bad_array[i] =         (fftw_complex **) malloc(12 * sizeof(fftw_complex *));     for (j = 0; j < 12; ++j)          a_bad_array[i][j] =                (fftw_complex *) malloc(27 * sizeof(fftw_complex));@}@end exampleAs you can see, this sort of array is inconvenient to allocate (anddeallocate).  On the other hand, it has the advantage that the@math{(i,j,k)}-th element can be referenced simply by@code{a_bad_array[i][j][k]}.If you like this technique and want to maximize convenience in accessingthe array, but still want to pass the array to FFTW, you can use ahybrid method.  Allocate the array as one contiguous block, but alsodeclare an array of arrays of pointers that point to appropriate placesin the block.  That sort of trick is beyond the scope of thisdocumentation; for more information on multi-dimensional arrays in C,see the @code{comp.lang.c}@uref{http://www.eskimo.com/~scs/C-faq/s6.html, FAQ}.@c ------------------------------------------------------------@node Words of Wisdom,  , Multi-dimensional Array Format, Tutorial@section Words of Wisdom@cindex wisdom@cindex saving plans to diskFFTW implements a method for saving plans to disk and restoring them.In fact, what FFTW does is more general than just saving and loadingplans.  The mechanism is called @dfn{@code{wisdom}}.  Here, we describethis feature at a high level. @xref{FFTW Reference}, for a less casual(but more complete) discussion of how to use @code{wisdom} in FFTW.Plans created with the @code{FFTW_MEASURE} option produce near-optimalFFT performance, but it can take a long time to compute a plan becauseFFTW must actually measure the runtime of many possible plans and selectthe best one.  This is designed for the situations where so manytransforms of the same size must be computed that the start-up time isirrelevant.  For short initialization times but slightly slowertransforms, we have provided @code{FFTW_ESTIMATE}.  The @code{wisdom}mechanism is a way to get the best of both worlds.  There are, however,certain caveats that the user must be aware of in using @code{wisdom}.For this reason, @code{wisdom} is an optional feature which is notenabled by default.At its simplest, @code{wisdom} provides a way of saving plans to disk sothat they can be reused in other program runs.  You create a plan withthe flags @code{FFTW_MEASURE} and @code{FFTW_USE_WISDOM}, and then savethe @code{wisdom} using @code{fftw_export_wisdom}:@ctindex FFTW_USE_WISDOM@example     plan = fftw_create_plan(..., ... | FFTW_MEASURE | FFTW_USE_WISDOM);     fftw_export_wisdom(...);@end example@findex fftw_export_wisdomThe next time you run the program, you can restore the @code{wisdom}with @code{fftw_import_wisdom}, and then recreate the plan using thesame flags as before.  This time, however, the same optimal plan will becreated very quickly without measurements. (FFTW still needs some timeto compute trigonometric tables, however.)  The basic outline is:@example     fftw_import_wisdom(...);     plan = fftw_create_plan(..., ... | FFTW_USE_WISDOM);@end example@findex fftw_import_wisdomWisdom is more than mere rote memorization, however.  FFTW's@code{wisdom} encompasses all of the knowledge and measurements thatwere used to create the plan for a given size.  Therefore, existing@code{wisdom} is also applied to the creation of other plans ofdifferent sizes.Whenever a plan is created with the @code{FFTW_MEASURE} and@code{FFTW_USE_WISDOM} flags, @code{wisdom} is generated.  Thereafter,plans for any transform with a similar factorization will be computedmore quickly, so long as they use the @code{FFTW_USE_WISDOM} flag.  Infact, for transforms with the same factors and of equal or lesser size,no measurements at all need to be made and an optimal plan can becreated with negligible delay!For example, suppose that you create a plan for@tex$N = 2^{16}$.@end tex@ifinfoN = 2^16.@end ifinfo@ifhtmlN&nbsp;=&nbsp;2<sup>16</sup>.@end ifhtmlThen, for any equal or smaller power of two, FFTW can create aplan (with the same direction and flags) quickly, using theprecomputed @code{wisdom}. Even for larger powers of two, or sizes thatare a power of two times some other prime factors, plans will becomputed more quickly than they would otherwise (although somemeasurements still have to be made).The @code{wisdom} is cumulative, and is stored in a global, private datastructure managed internally by FFTW.  The storage space required isminimal, proportional to the logarithm of the sizes the @code{wisdom} wasgenerated from.  The @code{wisdom} can be forgotten (and its associatedmemory freed) by a call to @code{fftw_forget_wisdom()}; otherwise, it isremembered until the program terminates.  It can also be exported to afile, a string, or any other medium using @code{fftw_export_wisdom} andrestored during a subsequent execution of the program (or a differentprogram) using @code{fftw_import_wisdom} (these functions are describedbelow).Because @code{wisdom} is incorporated into FFTW at a very low level, thesame @code{wisdom} can be used for one-dimensional transforms,multi-dimensional transforms, and even the parallel extensions to FFTW.Just include @code{FFTW_USE_WISDOM} in the flags for whatever plans youcreate (i.e., always plan wisely).Plans created with the @code{FFTW_ESTIMATE} plan can use @code{wisdom},but cannot generate it;  only @code{FFTW_MEASURE} plans actually produce@code{wisdom}.  Also, plans can only use @code{wisdom} generated fromplans created with the same direction and flags.  For example, a size@code{42} @code{FFTW_BACKWARD} transform will not use @code{wisdom}produced by a size @code{42} @code{FFTW_FORWARD} transform.  The onlyexception to this rule is that @code{FFTW_ESTIMATE} plans can use@code{wisdom} from @code{FFTW_MEASURE} plans.@menu* Caveats in Using Wisdom::     What you should worry about in using wisdom* Importing and Exporting Wisdom::  I/O of wisdom to disk and other media@end menu@node Caveats in Using Wisdom, Importing and Exporting Wisdom, Words of Wisdom, Words of Wisdom@subsection Caveats in Using Wisdom@cindex wisdom, problems with@quotation@ifhtml<i>@end ifhtmlFor in much wisdom is much grief, and he that increaseth knowledgeincreaseth sorrow.@ifhtml</i>@end ifhtml[Ecclesiastes 1:18]@cindex Ecclesiastes@end quotationThere are pitfalls to using @code{wisdom}, in that it can negate FFTW'sability to adapt to changing hardware and other conditions. For example,it would be perfectly possible to export @code{wisdom} from a programrunning on one processor and import it into a program running on anotherprocessor.  Doing so, however, would mean that the second program woulduse plans optimized for the first processor, instead of the one it isrunning on.It should be safe to reuse @code{wisdom} as long as the hardware andprogram binaries remain unchanged. (Actually, the optimal plan maychange even between runs of the same binary on identical hardware, dueto differences in the virtual memory environment, etcetera.  Usersseriously interested in performance should worry about this problem,too.)  It is likely that, if the same @code{wisdom} is used for twodifferent program binaries, even running on the same machine, the plansmay be sub-optimal because of differing code alignments.  It istherefore wise to recreate @code{wisdom} every time an application isrecompiled.  The more the underlying hardware and software changesbetween the creation of @code{wisdom} and its use, the greater grows therisk of sub-optimal plans.@node Importing and Exporting Wisdom,  , Caveats in Using Wisdom, Words of Wisdom

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
www.欧美.com| 在线成人av网站| 久草中文综合在线| 日本视频一区二区三区| 亚洲伊人色欲综合网| 亚洲视频免费观看| 亚洲欧洲一区二区在线播放| 欧美高清在线精品一区| 国产精品激情偷乱一区二区∴| 色综合久久久久综合体| 一本大道久久a久久综合| 91美女精品福利| 欧美三区免费完整视频在线观看| 极品美女销魂一区二区三区免费| 中文字幕欧美一区| 亚洲精品一二三| 伊人性伊人情综合网| 亚洲国产aⅴ天堂久久| 午夜激情综合网| 精品一区二区三区欧美| 亚洲精品一卡二卡| 国产精品素人视频| 一区二区免费在线播放| 日韩高清中文字幕一区| 国产一区二区伦理片| 99久久精品国产一区二区三区| 久久电影国产免费久久电影| 国产精品亚洲视频| 日本中文字幕不卡| 国产成人综合在线观看| 色噜噜狠狠一区二区三区果冻| 国产成人在线视频免费播放| 99久久久久久| 日韩三级中文字幕| 91精品免费在线| 中文字幕的久久| 日韩黄色片在线观看| 国产91对白在线观看九色| 美腿丝袜亚洲综合| 91视频你懂的| 精品少妇一区二区三区免费观看| 欧美日韩高清不卡| 国产精品色噜噜| 免费视频一区二区| 色综合一区二区| 日韩一区二区三区视频在线观看| 91麻豆.com| 欧美xfplay| 亚洲国产精品一区二区久久| 一区二区三区中文在线观看| 国产一区二区影院| 欧美日韩国产成人在线免费| 91麻豆精品国产91久久久久久久久| 亚洲国产高清aⅴ视频| 午夜免费欧美电影| 色婷婷综合五月| 国产欧美一区二区三区在线看蜜臀| 精品国产一区二区精华| 亚洲主播在线观看| 一本久久综合亚洲鲁鲁五月天| 色综合亚洲欧洲| 一区二区中文视频| 国产.精品.日韩.另类.中文.在线.播放| 日韩一区在线播放| 国产高清在线精品| 99热在这里有精品免费| 久久久久久久网| 精品亚洲成av人在线观看| 3atv在线一区二区三区| 午夜国产不卡在线观看视频| 成人aa视频在线观看| 色综合久久综合网97色综合| 国产精品久久久久婷婷 | 日韩欧美的一区| 亚洲一区二区三区视频在线播放 | 国产精品一区二区三区四区| 精品视频在线免费看| 亚洲精品成人少妇| 久久精品噜噜噜成人88aⅴ| 欧美剧在线免费观看网站| 一区二区三区在线观看视频| 日本在线不卡一区| 欧美一区二区三区婷婷月色| 日韩成人一区二区三区在线观看| 国产一区二区在线观看免费| 久久影院视频免费| 亚洲乱码精品一二三四区日韩在线| 午夜国产精品一区| 欧美一区二区三区小说| 国产一区二区视频在线播放| 国产日韩欧美精品电影三级在线| 亚洲一区免费在线观看| 国产乱国产乱300精品| 欧美激情一区在线| 波多野结衣中文字幕一区 | 福利一区二区在线| 欧美福利电影网| 精品一区二区三区蜜桃| 欧美国产视频在线| 欧美网站大全在线观看| 美女视频黄a大片欧美| 国产精品你懂的在线欣赏| 欧美在线观看禁18| 国内精品久久久久影院薰衣草 | 亚洲一级在线观看| 日韩三级精品电影久久久| 国产一区二区主播在线| 亚洲柠檬福利资源导航| 欧美一区二区日韩一区二区| 国产一区久久久| 亚洲永久精品大片| 精品国产亚洲在线| 色就色 综合激情| 久久99深爱久久99精品| 亚洲欧美韩国综合色| 日韩免费在线观看| 免费黄网站欧美| 国产精品久久久久久久久免费桃花| 国产麻豆一精品一av一免费| 中文字幕亚洲视频| 日韩一区二区三| 91豆麻精品91久久久久久| 极品少妇xxxx精品少妇偷拍| 亚洲国产日韩一区二区| 欧美性高清videossexo| 一区二区三区在线不卡| 久久精品无码一区二区三区| 欧美日韩另类国产亚洲欧美一级| 洋洋av久久久久久久一区| 91论坛在线播放| 国产盗摄女厕一区二区三区| 午夜电影网一区| 亚洲综合久久久久| 综合精品久久久| 国产欧美一区二区精品仙草咪| 国产在线精品一区二区三区不卡 | 国产三级精品三级在线专区| 欧美军同video69gay| 色婷婷av一区二区三区软件| 精品一区二区三区免费毛片爱 | av激情综合网| 国产呦精品一区二区三区网站| 久久免费偷拍视频| 日韩免费高清电影| 69堂亚洲精品首页| 欧美日韩一区不卡| 欧美专区日韩专区| 卡一卡二国产精品| 日av在线不卡| 午夜欧美视频在线观看| 国产色一区二区| 久久精品夜夜夜夜久久| ww久久中文字幕| 国产区在线观看成人精品| 日本乱人伦aⅴ精品| 色嗨嗨av一区二区三区| 91在线精品一区二区| 99久精品国产| 91成人网在线| 国产一区二区精品久久91| 国产乱码精品一品二品| 亚洲欧洲综合另类在线| 中文字幕亚洲欧美在线不卡| 欧美一区二区在线免费播放| 日韩亚洲欧美综合| 不卡的看片网站| 色婷婷狠狠综合| 欧美日韩一卡二卡三卡| 91麻豆精品国产自产在线观看一区| 国产成人在线视频播放| 成人av在线一区二区三区| 日韩成人一区二区| 久久精品国内一区二区三区| 国精产品一区一区三区mba视频| 一区二区三区四区不卡在线 | 久久美女艺术照精彩视频福利播放 | 国产九色精品成人porny| 国产91精品免费| 91麻豆国产香蕉久久精品| 欧美日韩不卡在线| 色网综合在线观看| 91精品国产综合久久小美女| 91婷婷韩国欧美一区二区| 欧美在线免费视屏| 成人精品小蝌蚪| 韩国在线一区二区| 色婷婷av一区二区三区大白胸| 国产成人综合视频| 日韩综合小视频| 亚洲国产日日夜夜| 亚洲人成7777| 日韩美女啊v在线免费观看| 香蕉久久夜色精品国产使用方法 | 色综合久久88色综合天天免费| 国产自产2019最新不卡| 一本大道av伊人久久综合| 国产成人av电影在线观看| 欧美日韩精品专区| 欧美唯美清纯偷拍| 久久精品综合网|