úÎ`v[é+      !"#$%&'()*None !"9;T ?A transform which may be applied to vectors of different sizes.A  can be used to run an fftw, algorithm for a specific input/output size.+,Marshal the Transform flags for use by fftw.*The (only) valid input size for this plan.+The (only) valid output size for this plan. Run a plan on the given ,.If  p /= length v, then calling  execute p v will throw an exception. aRun 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.  Create a ' of a specific size for this transform.  Create a 6 of a specific size. This function is equivalent to   . Create and run a  for the given transform.-AHelper function; seems like it should be in the vector package....[Calls to the FFTW planner are non-reentrant. Here we take a mutex to ensure thread safety.2/0123456789:;<=>?@ABCDE+FG The plan to run.The input vector.The output vector.H IJKL-M.NO/0123456;> IJKL-./0123456789:;<=>?@ABCDE+FG H IJKL-M.NONone !"9;T    None !"9;TP)The type of the cosine or sine transform.Q1Whether the complex fft is forwards or backwards.PA 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).#A type-1 discrete cosine transform. Dy_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. 4y_k = x_0 + 2 sum_(j=1)^(n-1) x_j cos(pi j(k+1/2)/n)#A type-4 discrete cosine transform. 3y_k = 2 sum_(j=0)^(n-1) x_j cos(pi(j+1/2)(k+1/2)/n)!A type-1 discrete sine transform. 3y_k = 2 sum_(j=0)^(n-1) x_j sin(pi(j+1)(k+1)/(n+1))!A type-2 discrete sine transform. 1y_k = 2 sum_(j=0)^(n-1) x_j sin(pi(j+1/2)(k+1)/n)!A type-3 discrete sine transform. By_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. 1y_k = sum_(j=0)^(n-1) x_j sin(pi(j+1/2)(k+1/2)/n)PQRSTUVW  PQRSTUVWNone !"9;T >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)OA 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 . Ry_k = (1/(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 . 1y_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 . 7y_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 . My_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 . 5y_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)  !"#  !"#  !"#  !"#None !"9;T$GA discrete Fourier transform. The output and input sizes are the same (n). 5y_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). 4y_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.'OA 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-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.1y_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 ).Oy_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.$%&'X()* $%&'()* $%&')*($%&'X()*Y      !"#$%&'!()*+,-./01234567889:;<=>?@ABCDEFGHIJKLMNOPQRSTU*vector-fftw-0.1.3.6-BrrEbbn6hBc2X8sKTKMAMxNumeric.FFT.Vector.PlanNumeric.FFT.Vector.UnnormalizedNumeric.FFT.Vector.InvertibleNumeric.FFT.Vector.UnitaryNumeric.FFT.Vector.Base TransformPlanPlanTypeEstimateMeasurePatient Exhaustive planInputSizeplanOutputSizeexecuteexecuteM planOfTypeplanrundftidftdftR2CdftC2Rdct1dct2dct3dct4dst1dst2dst3dst4idct1idct2idct3idct4idst1idst2idst3idst4 planInitFlags&vector-0.11.0.0-6uB77qGCxR6GPLxI2sqsX3Data.Vector.Generic.BaseVector unsafeModify withPlannerScalablescaleByD inputSize outputSizecreationSizeFromInputmakePlan normalization planInput planOutput planExecuteCPlanunCPlanCFlags Preservation PreserveInput DestroyInput fftw_free fftw_mallocfftw_destroy_plan fftw_executewithPlannewPlan newFFTVector modifyInput modifyOutputconstMultOutputmultC plannerLock$fScalableComplex$fScalableDoubleCKind CDirectionfftw_plan_r2r_1dfftw_plan_dft_c2r_1dfftw_plan_dft_r2c_1dfftw_plan_dft_1ddft1D r2rTransformcomplexR2CScaling