úÎ_4ZÛ+      !"#$%&'()*.+,-./0@A transform which may be applied to vectors of different sizes. 123456A  can be used to run an fftw algorithm for a specific input/ output size. 789:;<=>?@AB-Marshal the Transform flags for use by fftw. CD+The (only) valid input size for this plan. ,The (only) valid output size for this plan. Run a plan on the given E. If  p / = length v, then calling   execute p v will throw an exception. ORun a plan on the given mutable vectors. The same vector may be used for both  input and output. If  p / = length vIn or  p / = length vOut,  then calling unsafeExecuteM p vIn vOut will throw an exception. The plan to run. The input vector. The output vector. F  Create a ( of a specific size for this transform.  Create a 5 of a specific size. This function is equivalent to    . Create and run a  for the given transform. GHIJKBHelper function; seems like it should be in the vector package... /0123456;> GHIJK/00123456123456;> GHIJK    LMNOP*The type of the cosine or sine transform. Q2Whether the complex fft is forwards or backwards. RPA forward discrete Fourier transform. The output and input sizes are the same (n). 'y_k = sum_(j=0)^(n-1) x_j e^(-2pi i j k/n)QA backward discrete Fourier transform. The output and input sizes are the same (n). &y_k = sum_(j=0)^(n-1) x_j e^(2pi i j k/n)KA forward discrete Fourier transform with real data. If the input size is n,  the output size will be n `div` 2 + 1. @A backward discrete Fourier transform which produces real data. This & behaves differently than the others:  Calling  plan dftC2R n creates a  whose output size is n , and whose  input size is n `div` 2 + 1.  If  length v == n, then  length (run dftC2R v) == 2*(n-1). S&A type-1 discrete cosine transform. =y_k = x_0 + (-1)^k x_(n-1) + 2 sum_(j=1)^(n-2) x_j cos(pi j k/(n-1))&A type-2 discrete cosine transform. &y_k = 2 sum_(j=0)^(n-1) x_j cos(pi(j+1/2)k/n)&A type-3 discrete cosine transform. .y_k = x_0 + 2 sum_(j=1)^(n-1) x_j cos(pi j(k+1/2)/n)&A type-4 discrete cosine transform. &y_k = 2 sum_(j=0)^(n-1) x_j cos(pi(j+1/2)(k+1/2)/n)"A type-1 discrete sine transform. ,y_k = 2 sum_(j=0)^(n-1) x_j sin(pi(j+1)(k+1)/(n+1))"A type-2 discrete sine transform. &y_k = 2 sum_(j=0)^(n-1) x_j sin(pi(j+1/2)(k+1)/n)$A type-3 discrete sine transform. <y_k = (-1)^k x_(n-1) + 2 sum_(j=0)^(n-2) x_j sin(pi(j+1)(k+1/2)/n)"A type-4 discrete sine transform. $y_k = sum_(j=0)^(n-1) x_j sin(pi(j+1/2)(k+1/2)/n)    >A backward discrete Fourier transform which is the inverse of ,. The output and input sizes are the same (n). y_k = (1/#n) sum_(j=0)^(n-1) x_j e^(2pi i j k/n)NA normalized backward discrete Fourier transform which is the left inverse of  . (Specifically, run dftC2R . run dftR2C == id.) This & behaves differently than the others:  Calling  plan dftC2R n creates a  whose output size is n , and whose  input size is n `div` 2 + 1.  If  length v == n, then  length (run dftC2R v) == 2*(n-1). ;A type-1 discrete cosine transform which is the inverse of . y_k = (1/A(2(n-1)) [x_0 + (-1)^k x_(n-1) + 2 sum_(j=1)^(n-2) x_j cos(pi j k/(n-1))];A type-3 discrete cosine transform which is the inverse of . y_k = (1//(2n)) [x_0 + 2 sum_(j=1)^(n-1) x_j cos(pi j(k+1/2)/n)];A type-2 discrete cosine transform which is the inverse of . y_k = (1/!n) sum_(j=0)^(n-1) x_j cos(pi(j+1/2)k/n);A type-4 discrete cosine transform which is the inverse of . y_k = (1/!n) sum_(j=0)^(n-1) x_j cos(pi(j+1/2)(k+1/2)/n) 9A type-1 discrete sine transform which is the inverse of . y_k = (1/+(n+1)) sum_(j=0)^(n-1) x_j sin(pi(j+1)(k+1)/(n+1))!9A type-3 discrete sine transform which is the inverse of . y_k = (1/=(2n)) [(-1)^k x_(n-1) + 2 sum_(j=0)^(n-2) x_j sin(pi(j+1)(k+1/2)/n)]"9A type-2 discrete sine transform which is the inverse of . y_k = (1/!n) sum_(j=0)^(n-1) x_j sin(pi(j+1/2)(k+1)/n)#9A type-4 discrete sine transform which is the inverse of . y_k = (1/$(2n)) sum_(j=0)^(n-1) x_j sin(pi(j+1/2)(k+1/2)/n)  !"#  !"#  !"#$GA discrete Fourier transform. The output and input sizes are the same (n). y_k = (1/)sqrt n) sum_(j=0)^(n-1) x_j e^(-2pi i j k/n)%QAn inverse discrete Fourier transform. The output and input sizes are the same (n). y_k = (1/(sqrt n) sum_(j=0)^(n-1) x_j e^(2pi i j k/n)&KA forward discrete Fourier transform with real data. If the input size is n,  the output size will be n `div` 2 + 1. 'NA normalized backward discrete Fourier transform which is the left inverse of  . (Specifically, run dftC2R . run dftR2C == id.) This & behaves differently than the others:  Calling  plan dftC2R n creates a  whose output size is n , and whose  input size is n `div` 2 + 1.  If  length v == n, then  length (run dftC2R v) == 2*(n-1). T(<A type-4 discrete cosine transform. It is its own inverse. y_k = (1/&sqrt n) sum_(j=0)^(n-1) x_j cos(pi(j+1/2)(k+1/2)/n))4A type-2 discrete cosine transform. Its inverse is dct3. )y_k = w(k) sum_(j=0)^(n-1) x_j cos(pi(j+1/2)k/n);  where  w(0)=1/sqrt n, and  w(k)=sqrt(2/n) for k>0. *;A type-3 discrete cosine transform which is the inverse of ). Hy_k = (-1)^k w(n-1) x_(n-1) + 2 sum_(j=0)^(n-2) w(j) x_j sin(pi(j+1)(k+1/2)/n);  where  w(0)=1/sqrt(n), and w(k)=1/sqrt(2n) for k>0. $%&'()* $%&')*($%&'()*U      !"#$%&'!()*+,-./01234566789:;<=>?@ABCDEFGHIJKLMNOPQvector-fftw-0.1Numeric.FFT.Vector.PlanNumeric.FFT.Vector.UnnormalizedNumeric.FFT.Vector.InvertibleNumeric.FFT.Vector.UnitaryNumeric.FFT.Vector.Base TransformPlanPlanType ExhaustivePatientMeasureEstimate planInputSizeplanOutputSizeexecuteexecuteM planOfTypeplanrundftidftdftR2CdftC2Rdct1dct2dct3dct4dst1dst2dst3dst4idct1idct2idct3idct4idst1idst2idst3idst4 fftw_free fftw_mallocfftw_destroy_plan fftw_executeScalablescaleByD inputSize outputSizecreationSizeFromInputmakePlan normalization planInput planOutput planExecuteCPlanunCPlanCFlags Preservation DestroyInput PreserveInput planInitFlagswithPlannewPlanvector-0.7.0.1Data.Vector.Generic.BaseVector newFFTVector modifyInput modifyOutputconstMultOutputmultC unsafeModifyfftw_plan_r2r_1dfftw_plan_dft_c2r_1dfftw_plan_dft_r2c_1dfftw_plan_dft_1dCKind CDirectiondft1D r2rTransformcomplexR2CScaling