ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_fftpack::getFFTF Interface Reference

Generate and return the Forward Fourier Transform (a.k.a. Fourier Analysis) of a periodic sequence of type complex or real of arbitrary kind type parameter. More...

Detailed Description

Generate and return the Forward Fourier Transform (a.k.a. Fourier Analysis) of a periodic sequence of type complex or real of arbitrary kind type parameter.

See the documentation of setFFTF for more details.

Parameters
[in]data: The input contiguous vector of arbitrary size of,
  1. type complex of kind any supported by the processor (e.g., CK, CK32, CK64, or CK128),
  2. type real of kind any supported by the processor (e.g., RK, RK32, RK64, or RK128),
containing the periodic sequence whose FFT is to be computed.
Returns
fft : The output vector of the same type, kind, and size as the input data, containing the FFT result.


Possible calling interfaces

use pm_fftpack, only: getFFTF
fft = getFFTF(data(:))
Generate and return the Forward Fourier Transform (a.k.a. Fourier Analysis) of a periodic sequence of...
Definition: pm_fftpack.F90:746
This module contains procedures and generic interfaces for computing the Discrete Fourier Transform o...
Definition: pm_fftpack.F90:205
Remarks
The procedures under discussion are impure.
Note
This functional generic interface is simply a more flexible but slower wrapper around the subroutine generic interface setFFTF.
As such, this functional interface can be significantly slower than the corresponding subroutine interface.
See also
getFFTF
getFFTR
getFFTI
setFFTF
setFFTR
setFFTI


Example usage

1program example
2
3 use pm_kind, only: SK, IK, LK
4 use pm_io, only: display_type
5 use pm_fftpack, only: getfactorFFT
6 use pm_fftpack, only: getFFTF, getFFTI
7 use pm_distUnif, only: getUnifRand
8 use pm_mathCompare, only: isClose
9 use pm_err, only: setAsserted
10
11 implicit none
12
13 integer(IK) :: i
14 integer(IK) :: lenData
15 type(display_type) :: disp
16 disp = display_type(file = "main.out.F90")
17
18 do i = 1, 5
19 block
20 use pm_kind, only: TKG => CKS
21 real(TKG) :: reltol
22 complex(TKG), allocatable :: data(:)
23 call disp%show("lenData = getUnifRand(5, 11)")
24 lenData = getUnifRand(5, 11)
25 call disp%show("lenData")
26 call disp%show( lenData )
27 call disp%show("data = 1._TKG + getUnifRand((0._TKG, 0._TKG), (1._TKG, 1._TKG), lenData)")
28 data = 1._TKG + getUnifRand((0._TKG, 0._TKG), (1._TKG, 1._TKG), lenData)
29 call disp%show("data")
30 call disp%show( data )
31 call disp%show("getFFTI(getFFTF(data))")
32 call disp%show( getFFTI(getFFTF(data)) )
33 call disp%show("reltol = sqrt(epsilon(1._TKG))")
34 reltol = sqrt(epsilon(1._TKG))
35 call disp%show("reltol")
36 call disp%show( reltol )
37 call disp%show("isClose(data, getFFTI(getFFTF(data)), reltol = reltol)")
38 call disp%show( isClose(data, getFFTI(getFFTF(data)), reltol = reltol) )
39 call disp%show("call setAsserted(all(isClose(data, getFFTI(getFFTF(data)), reltol = reltol)))")
40 call setAsserted(all(isClose(data, getFFTI(getFFTF(data)), reltol = reltol)))
41 call disp%skip()
42 end block
43
44 block
45 use pm_kind, only: TKG => CKD
46 real(TKG) :: reltol
47 complex(TKG), allocatable :: data(:)
48 call disp%show("lenData = getUnifRand(5, 11)")
49 lenData = getUnifRand(5, 11)
50 call disp%show("lenData")
51 call disp%show( lenData )
52 call disp%show("data = 1._TKG + getUnifRand((0._TKG, 0._TKG), (1._TKG, 1._TKG), lenData)")
53 data = 1._TKG + getUnifRand((0._TKG, 0._TKG), (1._TKG, 1._TKG), lenData)
54 call disp%show("data")
55 call disp%show( data )
56 call disp%show("getFFTI(getFFTF(data))")
57 call disp%show( getFFTI(getFFTF(data)) )
58 call disp%show("reltol = sqrt(epsilon(1._TKG))")
59 reltol = sqrt(epsilon(1._TKG))
60 call disp%show("reltol")
61 call disp%show( reltol )
62 call disp%show("isClose(data, getFFTI(getFFTF(data)), reltol = reltol)")
63 call disp%show( isClose(data, getFFTI(getFFTF(data)), reltol = reltol) )
64 call disp%show("call setAsserted(all(isClose(data, getFFTI(getFFTF(data)), reltol = reltol)))")
65 call setAsserted(all(isClose(data, getFFTI(getFFTF(data)), reltol = reltol)))
66 call disp%skip()
67 end block
68
69 block
70 use pm_kind, only: TKG => CKH
71 real(TKG) :: reltol
72 complex(TKG), allocatable :: data(:)
73 call disp%show("lenData = getUnifRand(5, 11)")
74 lenData = getUnifRand(5, 11)
75 call disp%show("lenData")
76 call disp%show( lenData )
77 call disp%show("data = 1._TKG + getUnifRand((0._TKG, 0._TKG), (1._TKG, 1._TKG), lenData)")
78 data = 1._TKG + getUnifRand((0._TKG, 0._TKG), (1._TKG, 1._TKG), lenData)
79 call disp%show("data")
80 call disp%show( data )
81 call disp%show("getFFTI(getFFTF(data))")
82 call disp%show( getFFTI(getFFTF(data)) )
83 call disp%show("reltol = sqrt(epsilon(1._TKG))")
84 reltol = sqrt(epsilon(1._TKG))
85 call disp%show("reltol")
86 call disp%show( reltol )
87 call disp%show("isClose(data, getFFTI(getFFTF(data)), reltol = reltol)")
88 call disp%show( isClose(data, getFFTI(getFFTF(data)), reltol = reltol) )
89 call disp%show("call setAsserted(all(isClose(data, getFFTI(getFFTF(data)), reltol = reltol)))")
90 call setAsserted(all(isClose(data, getFFTI(getFFTF(data)), reltol = reltol)))
91 call disp%skip()
92 end block
93
94 block
95 use pm_kind, only: TKG => RKS
96 real(TKG) :: reltol
97 real(TKG), allocatable :: data(:)
98 call disp%show("lenData = getUnifRand(5, 11)")
99 lenData = getUnifRand(5, 11)
100 call disp%show("lenData")
101 call disp%show( lenData )
102 call disp%show("data = 1._TKG + getUnifRand(0._TKG, 1._TKG, lenData)")
103 data = 1._TKG + getUnifRand(0._TKG, 1._TKG, lenData)
104 call disp%show("data")
105 call disp%show( data )
106 call disp%show("getFFTF(data)")
107 call disp%show( getFFTF(data) )
108 call disp%show("getFFTF(cmplx(data, kind = TKG))")
109 call disp%show( getFFTF(cmplx(data, kind = TKG)) )
110 call disp%show("getFFTI(getFFTF(data))")
111 call disp%show( getFFTI(getFFTF(data)) )
112 call disp%show("getFFTI(getFFTF(cmplx(data, kind = TKG)))")
113 call disp%show( getFFTI(getFFTF(cmplx(data, kind = TKG))) )
114 call disp%show("reltol = sqrt(epsilon(1._TKG))")
115 reltol = sqrt(epsilon(1._TKG))
116 call disp%show("reltol")
117 call disp%show( reltol )
118 call disp%show("isClose(data, getFFTI(getFFTF(data)), reltol = reltol)")
119 call disp%show( isClose(data, getFFTI(getFFTF(data)), reltol = reltol) )
120 call disp%show("call setAsserted(all(isClose(data, getFFTI(getFFTF(data)), reltol = reltol)))")
121 call setAsserted(all(isClose(data, getFFTI(getFFTF(data)), reltol = reltol)))
122 call disp%skip()
123 end block
124
125 block
126 use pm_kind, only: TKG => RKD
127 real(TKG) :: reltol
128 real(TKG), allocatable :: data(:)
129 call disp%show("lenData = getUnifRand(5, 11)")
130 lenData = getUnifRand(5, 11)
131 call disp%show("lenData")
132 call disp%show( lenData )
133 call disp%show("data = 1._TKG + getUnifRand(0._TKG, 1._TKG, lenData)")
134 data = 1._TKG + getUnifRand(0._TKG, 1._TKG, lenData)
135 call disp%show("data")
136 call disp%show( data )
137 call disp%show("getFFTF(data)")
138 call disp%show( getFFTF(data) )
139 call disp%show("getFFTF(cmplx(data, kind = TKG))")
140 call disp%show( getFFTF(cmplx(data, kind = TKG)) )
141 call disp%show("getFFTI(getFFTF(data))")
142 call disp%show( getFFTI(getFFTF(data)) )
143 call disp%show("getFFTI(getFFTF(cmplx(data, kind = TKG)))")
144 call disp%show( getFFTI(getFFTF(cmplx(data, kind = TKG))) )
145 call disp%show("reltol = sqrt(epsilon(1._TKG))")
146 reltol = sqrt(epsilon(1._TKG))
147 call disp%show("reltol")
148 call disp%show( reltol )
149 call disp%show("isClose(data, getFFTI(getFFTF(data)), reltol = reltol)")
150 call disp%show( isClose(data, getFFTI(getFFTF(data)), reltol = reltol) )
151 call disp%show("call setAsserted(all(isClose(data, getFFTI(getFFTF(data)), reltol = reltol)))")
152 call setAsserted(all(isClose(data, getFFTI(getFFTF(data)), reltol = reltol)))
153 call disp%skip()
154 end block
155
156 block
157 use pm_kind, only: TKG => RKH
158 real(TKG) :: reltol
159 real(TKG), allocatable :: data(:)
160 call disp%show("lenData = getUnifRand(5, 11)")
161 lenData = getUnifRand(5, 11)
162 call disp%show("lenData")
163 call disp%show( lenData )
164 call disp%show("data = 1._TKG + getUnifRand(0._TKG, 1._TKG, lenData)")
165 data = 1._TKG + getUnifRand(0._TKG, 1._TKG, lenData)
166 call disp%show("data")
167 call disp%show( data )
168 call disp%show("getFFTF(data)")
169 call disp%show( getFFTF(data) )
170 call disp%show("getFFTF(cmplx(data, kind = TKG))")
171 call disp%show( getFFTF(cmplx(data, kind = TKG)) )
172 call disp%show("getFFTI(getFFTF(data))")
173 call disp%show( getFFTI(getFFTF(data)) )
174 call disp%show("getFFTI(getFFTF(cmplx(data, kind = TKG)))")
175 call disp%show( getFFTI(getFFTF(cmplx(data, kind = TKG))) )
176 call disp%show("reltol = sqrt(epsilon(1._TKG))")
177 reltol = sqrt(epsilon(1._TKG))
178 call disp%show("reltol")
179 call disp%show( reltol )
180 call disp%show("isClose(data, getFFTI(getFFTF(data)), reltol = reltol)")
181 call disp%show( isClose(data, getFFTI(getFFTF(data)), reltol = reltol) )
182 call disp%show("call setAsserted(all(isClose(data, getFFTI(getFFTF(data)), reltol = reltol)))")
183 call setAsserted(all(isClose(data, getFFTI(getFFTF(data)), reltol = reltol)))
184 call disp%skip()
185 end block
186 end do
187
188end program example
Generate and return a scalar or a contiguous array of rank 1 of length s1 of randomly uniformly distr...
Verify the input assertion holds and if it does not, print the (optional) input message on stdout and...
Definition: pm_err.F90:735
Generate and return an object of type stop_type with the user-specified input attributes.
Definition: pm_err.F90:1618
Generate and return the Inverse (normalized) Fourier Transform of a periodic sequence of type complex...
This is a generic method of the derived type display_type with pass attribute.
Definition: pm_io.F90:11508
Generate and return .true. if the two input values are sufficiently close to each other within the sp...
This module contains classes and procedures for computing various statistical quantities related to t...
This module contains classes and procedures for reporting and handling errors.
Definition: pm_err.F90:52
This module contains classes and procedures for input/output (IO) or generic display operations on st...
Definition: pm_io.F90:252
type(display_type) disp
This is a scalar module variable an object of type display_type for general display.
Definition: pm_io.F90:11393
This module defines the relevant Fortran kind type-parameters frequently used in the ParaMonte librar...
Definition: pm_kind.F90:268
integer, parameter LK
The default logical kind in the ParaMonte library: kind(.true.) in Fortran, kind(....
Definition: pm_kind.F90:541
integer, parameter CKH
The scalar integer constant of intrinsic default kind, representing the highest-precision complex kin...
Definition: pm_kind.F90:843
integer, parameter CKS
The single-precision complex kind in Fortran mode. On most platforms, this is a 32-bit real kind.
Definition: pm_kind.F90:570
integer, parameter IK
The default integer kind in the ParaMonte library: int32 in Fortran, c_int32_t in C-Fortran Interoper...
Definition: pm_kind.F90:540
integer, parameter CKD
The double precision complex kind in Fortran mode. On most platforms, this is a 64-bit real kind.
Definition: pm_kind.F90:571
integer, parameter RKD
The double precision real kind in Fortran mode. On most platforms, this is an 64-bit real kind.
Definition: pm_kind.F90:568
integer, parameter SK
The default character kind in the ParaMonte library: kind("a") in Fortran, c_char in C-Fortran Intero...
Definition: pm_kind.F90:539
integer, parameter RKH
The scalar integer constant of intrinsic default kind, representing the highest-precision real kind t...
Definition: pm_kind.F90:858
integer, parameter RKS
The single-precision real kind in Fortran mode. On most platforms, this is an 32-bit real kind.
Definition: pm_kind.F90:567
This module contains the procedures and interfaces for evaluating the relative or absolute proximity ...
Generate and return an object of type display_type.
Definition: pm_io.F90:10282

Example Unix compile command via Intel ifort compiler
1#!/usr/bin/env sh
2rm main.exe
3ifort -fpp -standard-semantics -O3 -Wl,-rpath,../../../lib -I../../../inc main.F90 ../../../lib/libparamonte* -o main.exe
4./main.exe

Example Windows Batch compile command via Intel ifort compiler
1del main.exe
2set PATH=..\..\..\lib;%PATH%
3ifort /fpp /standard-semantics /O3 /I:..\..\..\include main.F90 ..\..\..\lib\libparamonte*.lib /exe:main.exe
4main.exe

Example Unix / MinGW compile command via GNU gfortran compiler
1#!/usr/bin/env sh
2rm main.exe
3gfortran -cpp -ffree-line-length-none -O3 -Wl,-rpath,../../../lib -I../../../inc main.F90 ../../../lib/libparamonte* -o main.exe
4./main.exe

Example output
1lenData = getUnifRand(5, 11)
2lenData
3+6
4data = 1._TKG + getUnifRand((0._TKG, 0._TKG), (1._TKG, 1._TKG), lenData)
5data
6(+1.19457352, +0.899243534), (+1.26713157, +0.388968110), (+1.05580366, +0.298061907), (+1.98453188, +0.436399817), (+1.24905014, +0.621896863), (+1.60571480, +0.891956508)
7getFFTI(getFFTF(data))
8(+1.19457352, +0.899243534), (+1.26713169, +0.388968110), (+1.05580366, +0.298061937), (+1.98453188, +0.436399788), (+1.24905014, +0.621896863), (+1.60571504, +0.891956508)
9reltol = sqrt(epsilon(1._TKG))
10reltol
11+0.345266977E-3
12isClose(data, getFFTI(getFFTF(data)), reltol = reltol)
13T, T, T, T, T, T
14call setAsserted(all(isClose(data, getFFTI(getFFTF(data)), reltol = reltol)))
15
16lenData = getUnifRand(5, 11)
17lenData
18+9
19data = 1._TKG + getUnifRand((0._TKG, 0._TKG), (1._TKG, 1._TKG), lenData)
20data
21(+1.5729426488355385, +0.15140502614901152), (+1.3723988062739116, +0.31789403034770436), (+1.3868883823019567, +0.41987457981822018), (+1.8361330281955546, +0.60092864546980196), (+1.4571518144544886, +0.75727988649490940), (+1.1870633594298834, +0.10868756698159776), (+1.2349354476246868, +0.20310556743935382), (+1.7474544343666936, +0.86386629622676403E-1), (+1.5784452697935043, +0.17470289686919571)
22getFFTI(getFFTF(data))
23(+1.5729426488355382, +0.15140502614901144), (+1.3723988062739116, +0.31789403034770436), (+1.3868883823019569, +0.41987457981822018), (+1.8361330281955546, +0.60092864546980185), (+1.4571518144544890, +0.75727988649490929), (+1.1870633594298836, +0.10868756698159779), (+1.2349354476246865, +0.20310556743935382), (+1.7474544343666936, +0.86386629622676389E-1), (+1.5784452697935045, +0.17470289686919574)
24reltol = sqrt(epsilon(1._TKG))
25reltol
26+0.14901161193847656E-7
27isClose(data, getFFTI(getFFTF(data)), reltol = reltol)
28T, T, T, T, T, T, T, T, T
29call setAsserted(all(isClose(data, getFFTI(getFFTF(data)), reltol = reltol)))
30
31lenData = getUnifRand(5, 11)
32lenData
33+6
34data = 1._TKG + getUnifRand((0._TKG, 0._TKG), (1._TKG, 1._TKG), lenData)
35data
36(+1.79438398058695159624914794142441705, +0.121556171455496755441036355340291926), (+1.38493576413065797545166575055840589, +0.339876129447293368363662940702569822), (+1.22728857486374129168265379414825985, +0.982450231810145160237219745522474410), (+1.89642624476796014223292042406978600, +0.202234711041914822010834088701043947), (+1.22343671431239214396550865917683922, +0.477008438191706722610681153158083449), (+1.78932225043295708860982745527718614, +0.246096415197755942392517166024774450)
37getFFTI(getFFTF(data))
38(+1.79438398058695159624914794142441724, +0.121556171455496755441036355340291950), (+1.38493576413065797545166575055840569, +0.339876129447293368363662940702569822), (+1.22728857486374129168265379414825985, +0.982450231810145160237219745522474410), (+1.89642624476796014223292042406978619, +0.202234711041914822010834088701044043), (+1.22343671431239214396550865917683922, +0.477008438191706722610681153158083256), (+1.78932225043295708860982745527718594, +0.246096415197755942392517166024774450)
39reltol = sqrt(epsilon(1._TKG))
40reltol
41+0.138777878078144567552953958511352539E-16
42isClose(data, getFFTI(getFFTF(data)), reltol = reltol)
43T, T, T, T, T, T
44call setAsserted(all(isClose(data, getFFTI(getFFTF(data)), reltol = reltol)))
45
46lenData = getUnifRand(5, 11)
47lenData
48+6
49data = 1._TKG + getUnifRand(0._TKG, 1._TKG, lenData)
50data
51+1.28832769, +1.30951011, +1.42180097, +1.50890446, +1.03903723, +1.40946782
52getFFTF(data)
53+7.97704840, -0.915069282E-1, -0.244917259, +0.207323998, +0.418048978, -0.478716373
54getFFTF(cmplx(data, kind = TKG))
55(+7.97704840, +0.00000000), (-0.915069133E-1, -0.244917229), (+0.207324028, +0.418048918), (-0.478716493, +0.223517418E-7), (+0.207324028, -0.418048918), (-0.915068835E-1, +0.244917214)
56getFFTI(getFFTF(data))
57+1.28832769, +1.30951023, +1.42180109, +1.50890446, +1.03903735, +1.40946770
58getFFTI(getFFTF(cmplx(data, kind = TKG)))
59(+1.28832769, +0.372529030E-8), (+1.30951023, -0.111758709E-7), (+1.42180097, -0.576304338E-9), (+1.50890446, +0.430159464E-8), (+1.03903735, +0.802688582E-8), (+1.40946770, -0.430159464E-8)
60reltol = sqrt(epsilon(1._TKG))
61reltol
62+0.345266977E-3
63isClose(data, getFFTI(getFFTF(data)), reltol = reltol)
64T, T, T, T, T, T
65call setAsserted(all(isClose(data, getFFTI(getFFTF(data)), reltol = reltol)))
66
67lenData = getUnifRand(5, 11)
68lenData
69+6
70data = 1._TKG + getUnifRand(0._TKG, 1._TKG, lenData)
71data
72+1.5559499503106098, +1.1942089398418125, +1.0582917388715756, +1.8369993621377545, +1.2879970531875262, +1.2786226875530244
73getFFTF(data)
74+8.2120697319023019, -0.21777799415927701, +0.27203508752846239, +0.98338910272139479, -0.12582618763534270, -0.40759224716287923
75getFFTF(cmplx(data, kind = TKG))
76(+8.2120697319023019, +0.0000000000000000), (-0.21777799415927718, +0.27203508752846256), (+0.98338910272139524, -0.12582618763534273), (-0.40759224716287984, -0.55511151231257827E-16), (+0.98338910272139524, +0.12582618763534273), (-0.21777799415927707, -0.27203508752846250)
77getFFTI(getFFTF(data))
78+1.5559499503106093, +1.1942089398418123, +1.0582917388715756, +1.8369993621377543, +1.2879970531875260, +1.2786226875530242
79getFFTI(getFFTF(cmplx(data, kind = TKG)))
80(+1.5559499503106098, +0.92518585385429707E-17), (+1.1942089398418123, +0.27755575615628914E-16), (+1.0582917388715751, -0.50553095183478669E-16), (+1.8369993621377543, -0.64098756212785461E-16), (+1.2879970531875260, +0.13545661029306787E-16), (+1.2786226875530240, +0.64098756212785461E-16)
81reltol = sqrt(epsilon(1._TKG))
82reltol
83+0.14901161193847656E-7
84isClose(data, getFFTI(getFFTF(data)), reltol = reltol)
85T, T, T, T, T, T
86call setAsserted(all(isClose(data, getFFTI(getFFTF(data)), reltol = reltol)))
87
88lenData = getUnifRand(5, 11)
89lenData
90+10
91data = 1._TKG + getUnifRand(0._TKG, 1._TKG, lenData)
92data
93+1.08857093931822908584074112384501103, +1.61970845097224233961965421834051837, +1.80854411784915842308044788465509561, +1.80557625780446829239545586531272241, +1.49001874000576097665443303005890758, +1.81688065254168544714753426073575493, +1.82048175441342415249266283647776116, +1.76203886238297154653616252968232855, +1.77813474897325350757675570040359158, +1.19621481217746575097756241516066172
94getFFTF(data)
95+16.1861693364386595223214098646723518, -1.12254007666470734411711905532655661, -0.125009581070291424257838940265598276, -0.989324770554343958198005818910094894, -0.709338927637062626021863413874937134, -0.590899838734429943634199430004494003, -0.450125640296107587667671232219694755E-1, +0.159869081984800529507989348025833116, -0.455650096812465590865400831984628766, -0.214668735319007231031328713791619031
96getFFTF(cmplx(data, kind = TKG))
97(+16.1861693364386595223214098646723518, +0.00000000000000000000000000000000000), (-1.12254007666470734411711905532655642, -0.125009581070291424257838940265598372), (-0.989324770554343958198005818910095183, -0.709338927637062626021863413874937134), (-0.590899838734429943634199430004493907, -0.450125640296107587667671232219696500E-1), (+0.159869081984800529507989348025833308, -0.455650096812465590865400831984629103), (-0.214668735319007231031328713791619031, +0.00000000000000000000000000000000000), (+0.159869081984800529507989348025833308, +0.455650096812465590865400831984629103), (-0.590899838734429943634199430004493810, +0.450125640296107587667671232219696560E-1), (-0.989324770554343958198005818910095183, +0.709338927637062626021863413874937134), (-1.12254007666470734411711905532655623, +0.125009581070291424257838940265598396)
98getFFTI(getFFTF(data))
99+1.08857093931822908584074112384501083, +1.61970845097224233961965421834051837, +1.80854411784915842308044788465509561, +1.80557625780446829239545586531272241, +1.49001874000576097665443303005890758, +1.81688065254168544714753426073575473, +1.82048175441342415249266283647776116, +1.76203886238297154653616252968232855, +1.77813474897325350757675570040359119, +1.19621481217746575097756241516066172
100getFFTI(getFFTF(cmplx(data, kind = TKG)))
101(+1.08857093931822908584074112384501083, +0.481482486096808963263994485646231853E-35), (+1.61970845097224233961965421834051837, +0.00000000000000000000000000000000000), (+1.80854411784915842308044788465509561, -0.550848734580349902410561846015192493E-35), (+1.80557625780446829239545586531272260, -0.183166822353744338800961434714344842E-34), (+1.49001874000576097665443303005890758, -0.335322895554294135524066409109482068E-34), (+1.81688065254168544714753426073575473, -0.113203321825928016886658967252881407E-34), (+1.82048175441342415249266283647776116, +0.257417392805050575851174394824970453E-34), (+1.76203886238297154653616252968232855, +0.113203321825928016886658967252881407E-34), (+1.77813474897325350757675570040359196, +0.848421275975976535875487503214076216E-35), (+1.19621481217746575097756241516066172, +0.183166822353744338800961434714344842E-34)
102reltol = sqrt(epsilon(1._TKG))
103reltol
104+0.138777878078144567552953958511352539E-16
105isClose(data, getFFTI(getFFTF(data)), reltol = reltol)
106T, T, T, T, T, T, T, T, T, T
107call setAsserted(all(isClose(data, getFFTI(getFFTF(data)), reltol = reltol)))
108
109lenData = getUnifRand(5, 11)
110lenData
111+11
112data = 1._TKG + getUnifRand((0._TKG, 0._TKG), (1._TKG, 1._TKG), lenData)
113data
114(+1.64291525, +0.351856947), (+1.15496945, +0.209568799), (+1.15238428, +0.675723612), (+1.45247149, +0.278319180), (+1.66935694, +0.399748266), (+1.74758351, +0.393566847), (+1.72124922, +0.121472657), (+1.80703926, +0.132749021), (+1.53421068, +0.990053475), (+1.33188629, +0.764987230), (+1.56437159, +0.276693463)
115getFFTI(getFFTF(data))
116(+1.64291525, +0.351857036), (+1.15496933, +0.209568709), (+1.15238404, +0.675723553), (+1.45247138, +0.278319180), (+1.66935706, +0.399748117), (+1.74758410, +0.393566847), (+1.72124994, +0.121472776), (+1.80703914, +0.132748976), (+1.53421056, +0.990053475), (+1.33188593, +0.764987290), (+1.56437135, +0.276693285)
117reltol = sqrt(epsilon(1._TKG))
118reltol
119+0.345266977E-3
120isClose(data, getFFTI(getFFTF(data)), reltol = reltol)
121T, T, T, T, T, T, T, T, T, T, T
122call setAsserted(all(isClose(data, getFFTI(getFFTF(data)), reltol = reltol)))
123
124lenData = getUnifRand(5, 11)
125lenData
126+5
127data = 1._TKG + getUnifRand((0._TKG, 0._TKG), (1._TKG, 1._TKG), lenData)
128data
129(+1.2764387264172714, +0.18841686431348237), (+1.9571359135998274, +0.84227248870041938), (+1.7976737681160391, +0.81315778071878642), (+1.5763622468074430, +0.54573373696821847), (+1.9752331701781545, +0.52232038940986969)
130getFFTI(getFFTF(data))
131(+1.2764387264172719, +0.18841686431348240), (+1.9571359135998276, +0.84227248870041938), (+1.7976737681160395, +0.81315778071878642), (+1.5763622468074434, +0.54573373696821847), (+1.9752331701781547, +0.52232038940986958)
132reltol = sqrt(epsilon(1._TKG))
133reltol
134+0.14901161193847656E-7
135isClose(data, getFFTI(getFFTF(data)), reltol = reltol)
136T, T, T, T, T
137call setAsserted(all(isClose(data, getFFTI(getFFTF(data)), reltol = reltol)))
138
139lenData = getUnifRand(5, 11)
140lenData
141+7
142data = 1._TKG + getUnifRand((0._TKG, 0._TKG), (1._TKG, 1._TKG), lenData)
143data
144(+1.11324279772132416490849437617272283, +0.489819759616164010035238779154415062E-1), (+1.00320368367091803943534183970373392, +0.339422038089864639544595665047818921), (+1.58916916517148274023009560130121469, +0.888790683551233101152321972801658995), (+1.75404356054957417745614442627531215, +0.227648835811339009584924857105926126), (+1.12713807857330750248088220875804977, +0.208650273855759035292379987102704807), (+1.56171265407963885862184172319966900, +0.607712677452378813247143399493334431), (+1.28460194871538226476847271748434100, +0.109010910081752431505218554358067362)
145getFFTI(getFFTF(data))
146(+1.11324279772132416490849437617272263, +0.489819759616164010035238779154414339E-1), (+1.00320368367091803943534183970373392, +0.339422038089864639544595665047818873), (+1.58916916517148274023009560130121469, +0.888790683551233101152321972801658995), (+1.75404356054957417745614442627531157, +0.227648835811339009584924857105926077), (+1.12713807857330750248088220875804919, +0.208650273855759035292379987102704734), (+1.56171265407963885862184172319966881, +0.607712677452378813247143399493334527), (+1.28460194871538226476847271748434100, +0.109010910081752431505218554358067338)
147reltol = sqrt(epsilon(1._TKG))
148reltol
149+0.138777878078144567552953958511352539E-16
150isClose(data, getFFTI(getFFTF(data)), reltol = reltol)
151T, T, T, T, T, T, T
152call setAsserted(all(isClose(data, getFFTI(getFFTF(data)), reltol = reltol)))
153
154lenData = getUnifRand(5, 11)
155lenData
156+8
157data = 1._TKG + getUnifRand(0._TKG, 1._TKG, lenData)
158data
159+1.25993276, +1.23278761, +1.26255751, +1.40433741, +1.94975960, +1.09550500, +1.21244669, +1.84226441
160getFFTF(data)
161+11.2595911, -0.283092231, +0.162476867, +0.734688282, +0.918309212, -1.09656143, +0.262698501, +0.109802246
162getFFTF(cmplx(data, kind = TKG))
163(+11.2595911, +0.00000000), (-0.283092231, +0.162476867), (+0.734688282, +0.918309212), (-1.09656143, +0.262698501), (+0.109802246, +0.00000000), (-1.09656143, -0.262698501), (+0.734688282, -0.918309212), (-0.283092231, -0.162476867)
164getFFTI(getFFTF(data))
165+1.25993276, +1.23278761, +1.26255751, +1.40433741, +1.94975972, +1.09550500, +1.21244669, +1.84226441
166getFFTI(getFFTF(cmplx(data, kind = TKG)))
167(+1.25993276, +0.00000000), (+1.23278761, -0.100351425E-7), (+1.26255751, +0.00000000), (+1.40433741, +0.100351425E-7), (+1.94975972, +0.00000000), (+1.09550500, -0.100351425E-7), (+1.21244669, +0.00000000), (+1.84226441, +0.100351425E-7)
168reltol = sqrt(epsilon(1._TKG))
169reltol
170+0.345266977E-3
171isClose(data, getFFTI(getFFTF(data)), reltol = reltol)
172T, T, T, T, T, T, T, T
173call setAsserted(all(isClose(data, getFFTI(getFFTF(data)), reltol = reltol)))
174
175lenData = getUnifRand(5, 11)
176lenData
177+8
178data = 1._TKG + getUnifRand(0._TKG, 1._TKG, lenData)
179data
180+1.7420245298209509, +1.2116253654962101, +1.6143672577739954, +1.8435797416580848, +1.0399042680788444, +1.8055473026162354, +1.1654216895527012, +1.8937590280340526
181getFFTF(data)
182+12.316229183031075, +0.31763614618063490, +0.65027746832745370E-2, +0.21398505730987338E-2, +0.72016610157969163, +1.0866043773035781, +0.90439391112586287, -1.1927936925780909
183getFFTF(cmplx(data, kind = TKG))
184(+12.316229183031075, +0.0000000000000000), (+0.31763614618063490, +0.65027746832745370E-2), (+0.21398505730987338E-2, +0.72016610157969163), (+1.0866043773035781, +0.90439391112586298), (-1.1927936925780909, +0.0000000000000000), (+1.0866043773035781, -0.90439391112586287), (+0.21398505730987338E-2, -0.72016610157969163), (+0.31763614618063496, -0.65027746832745925E-2)
185getFFTI(getFFTF(data))
186+1.7420245298209509, +1.2116253654962104, +1.6143672577739954, +1.8435797416580846, +1.0399042680788444, +1.8055473026162354, +1.1654216895527012, +1.8937590280340524
187getFFTI(getFFTF(cmplx(data, kind = TKG)))
188(+1.7420245298209509, +0.0000000000000000), (+1.2116253654962104, +0.11024363889424962E-16), (+1.6143672577739954, +0.0000000000000000), (+1.8435797416580846, -0.11024363889424962E-16), (+1.0399042680788444, +0.0000000000000000), (+1.8055473026162354, +0.11024363889424962E-16), (+1.1654216895527012, +0.0000000000000000), (+1.8937590280340524, -0.11024363889424962E-16)
189reltol = sqrt(epsilon(1._TKG))
190reltol
191+0.14901161193847656E-7
192isClose(data, getFFTI(getFFTF(data)), reltol = reltol)
193T, T, T, T, T, T, T, T
194call setAsserted(all(isClose(data, getFFTI(getFFTF(data)), reltol = reltol)))
195
196lenData = getUnifRand(5, 11)
197lenData
198+5
199data = 1._TKG + getUnifRand(0._TKG, 1._TKG, lenData)
200data
201+1.66848982485043688324098965157508814, +1.30060908797294225660509683527475192, +1.15345390475904224531617488696263386, +1.01269752289767950815713509063979787, +1.03646221639721649871174801751930679
202getFFTF(data)
203+6.17171255687731739203114448197157819, +0.638231257602998875723981036520754347, -0.333953128895229847160359652236387272, +0.447137026084434636362920851431176415, -0.213943613720274750568429204301933604E-1
204getFFTF(cmplx(data, kind = TKG))
205(+6.17171255687731739203114448197157819, +0.00000000000000000000000000000000000), (+0.638231257602998875723981036520754347, -0.333953128895229847160359652236387272), (+0.447137026084434636362920851431176415, -0.213943613720274750568429204301933604E-1), (+0.447137026084434636362920851431176415, +0.213943613720274750568429204301933604E-1), (+0.638231257602998875723981036520754347, +0.333953128895229847160359652236387272)
206getFFTI(getFFTF(data))
207+1.66848982485043688324098965157508794, +1.30060908797294225660509683527475192, +1.15345390475904224531617488696263386, +1.01269752289767950815713509063979787, +1.03646221639721649871174801751930679
208getFFTI(getFFTF(cmplx(data, kind = TKG)))
209(+1.66848982485043688324098965157508794, +0.00000000000000000000000000000000000), (+1.30060908797294225660509683527475192, +0.00000000000000000000000000000000000), (+1.15345390475904224531617488696263386, +0.00000000000000000000000000000000000), (+1.01269752289767950815713509063979787, +0.00000000000000000000000000000000000), (+1.03646221639721649871174801751930679, +0.00000000000000000000000000000000000)
210reltol = sqrt(epsilon(1._TKG))
211reltol
212+0.138777878078144567552953958511352539E-16
213isClose(data, getFFTI(getFFTF(data)), reltol = reltol)
214T, T, T, T, T
215call setAsserted(all(isClose(data, getFFTI(getFFTF(data)), reltol = reltol)))
216
217lenData = getUnifRand(5, 11)
218lenData
219+11
220data = 1._TKG + getUnifRand((0._TKG, 0._TKG), (1._TKG, 1._TKG), lenData)
221data
222(+1.71488786, +0.928973854), (+1.95018291, +0.803508103), (+1.07395875, +0.900359035), (+1.60523164, +0.618797898), (+1.52032399, +0.164945722), (+1.94040489, +0.875520110), (+1.62138164, +0.957063138), (+1.64957738, +0.810143948), (+1.75245523, +0.622609258), (+1.62957549, +0.543514311), (+1.30285704, +0.878667355)
223getFFTI(getFFTF(data))
224(+1.71488798, +0.928973854), (+1.95018291, +0.803507984), (+1.07395852, +0.900359094), (+1.60523164, +0.618797839), (+1.52032423, +0.164945737), (+1.94040561, +0.875520408), (+1.62138247, +0.957063377), (+1.64957762, +0.810143948), (+1.75245535, +0.622609138), (+1.62957513, +0.543514371), (+1.30285692, +0.878667235)
225reltol = sqrt(epsilon(1._TKG))
226reltol
227+0.345266977E-3
228isClose(data, getFFTI(getFFTF(data)), reltol = reltol)
229T, T, T, T, T, T, T, T, T, T, T
230call setAsserted(all(isClose(data, getFFTI(getFFTF(data)), reltol = reltol)))
231
232lenData = getUnifRand(5, 11)
233lenData
234+10
235data = 1._TKG + getUnifRand((0._TKG, 0._TKG), (1._TKG, 1._TKG), lenData)
236data
237(+1.8627575213296854, +0.33372208908945411), (+1.9231321691344636, +0.59427386379335490), (+1.9968030165927528, +0.74206084828283614), (+1.4606066836806111, +0.72136388408924168), (+1.5432261479055898, +0.37049295206118826), (+1.9155194261312773, +0.82633813297452607), (+1.9327006366282538, +0.37806438438109680), (+1.5006199455814619, +0.47198063310358174), (+1.7084382375161491, +0.25547811414361821), (+1.5008909941874333, +0.76295904797529690)
238getFFTI(getFFTF(data))
239(+1.8627575213296859, +0.33372208908945428), (+1.9231321691344636, +0.59427386379335478), (+1.9968030165927528, +0.74206084828283614), (+1.4606066836806111, +0.72136388408924168), (+1.5432261479055898, +0.37049295206118837), (+1.9155194261312780, +0.82633813297452618), (+1.9327006366282533, +0.37806438438109691), (+1.5006199455814619, +0.47198063310358179), (+1.7084382375161493, +0.25547811414361832), (+1.5008909941874333, +0.76295904797529701)
240reltol = sqrt(epsilon(1._TKG))
241reltol
242+0.14901161193847656E-7
243isClose(data, getFFTI(getFFTF(data)), reltol = reltol)
244T, T, T, T, T, T, T, T, T, T
245call setAsserted(all(isClose(data, getFFTI(getFFTF(data)), reltol = reltol)))
246
247lenData = getUnifRand(5, 11)
248lenData
249+11
250data = 1._TKG + getUnifRand((0._TKG, 0._TKG), (1._TKG, 1._TKG), lenData)
251data
252(+1.00727689755935603783595972383645603, +0.442586255866502232322876517361756247), (+1.17078790205966545255085917898099763, +0.150610698962104625516495116316954660), (+1.83809341037751392174154242768612222, +0.426755604947451304440327582042644619), (+1.33287775714827471623513263507165264, +0.716211745849303418280719777285088158), (+1.23332656773101988279260995536334553, +0.515497634288232103217627217281251341), (+1.84411128535152906053375603124760123, +0.573916580674298019948898085720573792E-1), (+1.41046425484984457132370264951058327, +0.484047589023951025027096425724940943), (+1.55593562986398950291909487937079175, +0.686474152548928902098744510270828733), (+1.34136092076249417185791990632677288, +0.194887143927107682770701738282894027), (+1.81405312110761961754127345739265108, +0.575341099784119185859918110882061909E-1), (+1.36713759404581125572525577252818918, +0.376204625154533047774198846812316750)
253getFFTI(getFFTF(data))
254(+1.00727689755935603783595972383645565, +0.442586255866502232322876517361756247), (+1.17078790205966545255085917898099763, +0.150610698962104625516495116316954685), (+1.83809341037751392174154242768612260, +0.426755604947451304440327582042644667), (+1.33287775714827471623513263507165264, +0.716211745849303418280719777285088062), (+1.23332656773101988279260995536334534, +0.515497634288232103217627217281251341), (+1.84411128535152906053375603124760123, +0.573916580674298019948898085720572769E-1), (+1.41046425484984457132370264951058289, +0.484047589023951025027096425724940992), (+1.55593562986398950291909487937079155, +0.686474152548928902098744510270828733), (+1.34136092076249417185791990632677288, +0.194887143927107682770701738282893955), (+1.81405312110761961754127345739265127, +0.575341099784119185859918110882061669E-1), (+1.36713759404581125572525577252818918, +0.376204625154533047774198846812316750)
255reltol = sqrt(epsilon(1._TKG))
256reltol
257+0.138777878078144567552953958511352539E-16
258isClose(data, getFFTI(getFFTF(data)), reltol = reltol)
259T, T, T, T, T, T, T, T, T, T, T
260call setAsserted(all(isClose(data, getFFTI(getFFTF(data)), reltol = reltol)))
261
262lenData = getUnifRand(5, 11)
263lenData
264+5
265data = 1._TKG + getUnifRand(0._TKG, 1._TKG, lenData)
266data
267+1.91020596, +1.89551938, +1.53568435, +1.01076794, +1.91923857
268getFFTF(data)
269+8.27141571, +1.02890730, -0.285979778, -0.389101088, +0.513166964
270getFFTF(cmplx(data, kind = TKG))
271(+8.27141571, +0.00000000), (+1.02890730, -0.285979778), (-0.389101088, +0.513166964), (-0.389101088, -0.513166964), (+1.02890730, +0.285979778)
272getFFTI(getFFTF(data))
273+1.91020572, +1.89551926, +1.53568447, +1.01076794, +1.91923833
274getFFTI(getFFTF(cmplx(data, kind = TKG)))
275(+1.91020572, +0.00000000), (+1.89551926, +0.00000000), (+1.53568447, +0.00000000), (+1.01076794, +0.00000000), (+1.91923833, +0.00000000)
276reltol = sqrt(epsilon(1._TKG))
277reltol
278+0.345266977E-3
279isClose(data, getFFTI(getFFTF(data)), reltol = reltol)
280T, T, T, T, T
281call setAsserted(all(isClose(data, getFFTI(getFFTF(data)), reltol = reltol)))
282
283lenData = getUnifRand(5, 11)
284lenData
285+9
286data = 1._TKG + getUnifRand(0._TKG, 1._TKG, lenData)
287data
288+1.0489542493534239, +1.5477162797641979, +1.0487123630440103, +1.1581668968591141, +1.2140448498795089, +1.2372788481507009, +1.4481853201216310, +1.6780180256649131, +1.0568471911652755
289getFFTF(data)
290+11.437924024002776, -0.89009512689015163E-1, +0.56333034496362755, -0.48640968677275154, -0.53427431956404714, -0.23600231250013426, -0.94997855849994617, -0.18724637794907947, -0.34411469819513230
291getFFTF(cmplx(data, kind = TKG))
292(+11.437924024002776, +0.0000000000000000), (-0.89009512689015163E-1, +0.56333034496362755), (-0.48640968677275154, -0.53427431956404725), (-0.23600231250013426, -0.94997855849994617), (-0.18724637794907947, -0.34411469819513230), (-0.18724637794907950, +0.34411469819513235), (-0.23600231250013426, +0.94997855849994617), (-0.48640968677275154, +0.53427431956404714), (-0.89009512689015122E-1, -0.56333034496362755)
293getFFTI(getFFTF(data))
294+1.0489542493534239, +1.5477162797641977, +1.0487123630440101, +1.1581668968591141, +1.2140448498795089, +1.2372788481507007, +1.4481853201216310, +1.6780180256649129, +1.0568471911652755
295getFFTI(getFFTF(cmplx(data, kind = TKG)))
296(+1.0489542493534239, -0.12335811384723961E-16), (+1.5477162797641977, +0.0000000000000000), (+1.0487123630440101, +0.37007434154171883E-16), (+1.1581668968591141, +0.61679056923619804E-17), (+1.2140448498795089, -0.53415630177321215E-17), (+1.2372788481507007, -0.34528406130282310E-16), (+1.4481853201216310, +0.61679056923619804E-17), (+1.6780180256649129, +0.53415630177321215E-17), (+1.0568471911652755, -0.24790280238895758E-17)
297reltol = sqrt(epsilon(1._TKG))
298reltol
299+0.14901161193847656E-7
300isClose(data, getFFTI(getFFTF(data)), reltol = reltol)
301T, T, T, T, T, T, T, T, T
302call setAsserted(all(isClose(data, getFFTI(getFFTF(data)), reltol = reltol)))
303
304lenData = getUnifRand(5, 11)
305lenData
306+10
307data = 1._TKG + getUnifRand(0._TKG, 1._TKG, lenData)
308data
309+1.75311124855960360293928063544435323, +1.37690805035076185326781527102120728, +1.75544848670794401627162410709518163, +1.77956436976418278708894919234847872, +1.39953179307513485225636421629000363, +1.60852965555810319512213140425766314, +1.26486011175252005601049188437552951, +1.20220018623876087876243703651046463, +1.06372902355516187905171840597324648, +1.79276327076320180232941415471565878
310getFFTF(data)
311+14.9966461963253749231002263080317880, +0.503119067486151001637943460447985373, -1.04169473443251892669404794303133090, +0.471404872197839059428325967967204539, +0.456365850404161258030230891303764541, +0.119977349529923072925563522356318199, +1.01337008856931124000852429008404648, +0.434374289933740474175090977271942763, +0.432349927692488083187054996418976193, -0.523284869024646110041267809675157883
312getFFTF(cmplx(data, kind = TKG))
313(+14.9966461963253749231002263080317865, +0.00000000000000000000000000000000000), (+0.503119067486151001637943460447985855, -1.04169473443251892669404794303133148), (+0.471404872197839059428325967967204251, +0.456365850404161258030230891303764589), (+0.119977349529923072925563522356318391, +1.01337008856931124000852429008404628), (+0.434374289933740474175090977271942955, +0.432349927692488083187054996418976096), (-0.523284869024646110041267809675158076, +0.962964972193617926527988971292463659E-34), (+0.434374289933740474175090977271942955, -0.432349927692488083187054996418976096), (+0.119977349529923072925563522356318271, -1.01337008856931124000852429008404648), (+0.471404872197839059428325967967204251, -0.456365850404161258030230891303764589), (+0.503119067486151001637943460447986047, +1.04169473443251892669404794303133148)
314getFFTI(getFFTF(data))
315+1.75311124855960360293928063544435323, +1.37690805035076185326781527102120728, +1.75544848670794401627162410709518202, +1.77956436976418278708894919234847892, +1.39953179307513485225636421629000402, +1.60852965555810319512213140425766333, +1.26486011175252005601049188437552971, +1.20220018623876087876243703651046502, +1.06372902355516187905171840597324668, +1.79276327076320180232941415471565878
316getFFTI(getFFTF(cmplx(data, kind = TKG)))
317(+1.75311124855960360293928063544435323, -0.962964972193617926527988971292463706E-35), (+1.37690805035076185326781527102120709, -0.192592994438723585305597794258492741E-34), (+1.75544848670794401627162410709518163, +0.123390194511405647542920073574839301E-35), (+1.77956436976418278708894919234847892, -0.376632189950160726986671506137774810E-34), (+1.39953179307513485225636421629000363, +0.151620782911806184736355157937606548E-35), (+1.60852965555810319512213140425766295, +0.798733365141800931560603264299489771E-35), (+1.26486011175252005601049188437552951, +0.584018995892923134459920155851786289E-35), (+1.20220018623876087876243703651046463, -0.116655325454416559115874092119418603E-34), (+1.06372902355516187905171840597324648, +0.491875985984557259242873844039055060E-34), (+1.79276327076320180232941415471565878, +0.124524687232311814988088580439505301E-34)
318reltol = sqrt(epsilon(1._TKG))
319reltol
320+0.138777878078144567552953958511352539E-16
321isClose(data, getFFTI(getFFTF(data)), reltol = reltol)
322T, T, T, T, T, T, T, T, T, T
323call setAsserted(all(isClose(data, getFFTI(getFFTF(data)), reltol = reltol)))
324
325lenData = getUnifRand(5, 11)
326lenData
327+9
328data = 1._TKG + getUnifRand((0._TKG, 0._TKG), (1._TKG, 1._TKG), lenData)
329data
330(+1.72573566, +0.631911874), (+1.29637837, +0.266031802), (+1.70401263, +0.990314126), (+1.05213857, +0.158481598E-1), (+1.56242597, +0.844476581), (+1.95274758, +0.130578995), (+1.17009890, +0.909243226E-1), (+1.40007782, +0.969898880), (+1.62306118, +0.500850439)
331getFFTI(getFFTF(data))
332(+1.72573566, +0.631911933), (+1.29637849, +0.266031802), (+1.70401263, +0.990314066), (+1.05213857, +0.158481468E-1), (+1.56242621, +0.844476521), (+1.95274758, +0.130579025), (+1.17009890, +0.909243003E-1), (+1.40007794, +0.969898880), (+1.62306106, +0.500850499)
333reltol = sqrt(epsilon(1._TKG))
334reltol
335+0.345266977E-3
336isClose(data, getFFTI(getFFTF(data)), reltol = reltol)
337T, T, T, T, T, T, T, T, T
338call setAsserted(all(isClose(data, getFFTI(getFFTF(data)), reltol = reltol)))
339
340lenData = getUnifRand(5, 11)
341lenData
342+6
343data = 1._TKG + getUnifRand((0._TKG, 0._TKG), (1._TKG, 1._TKG), lenData)
344data
345(+1.1642654174582638, +0.47781462139161068), (+1.9753668583519173, +0.63645875289269171), (+1.4408038185239112, +0.25968522730557397), (+1.3446554575424390, +0.10713056356321804), (+1.3314489447450528, +0.47300466068617197), (+1.2690315651128419, +0.38173825563643771)
346getFFTI(getFFTF(data))
347(+1.1642654174582638, +0.47781462139161068), (+1.9753668583519171, +0.63645875289269149), (+1.4408038185239109, +0.25968522730557397), (+1.3446554575424385, +0.10713056356321801), (+1.3314489447450526, +0.47300466068617186), (+1.2690315651128417, +0.38173825563643760)
348reltol = sqrt(epsilon(1._TKG))
349reltol
350+0.14901161193847656E-7
351isClose(data, getFFTI(getFFTF(data)), reltol = reltol)
352T, T, T, T, T, T
353call setAsserted(all(isClose(data, getFFTI(getFFTF(data)), reltol = reltol)))
354
355lenData = getUnifRand(5, 11)
356lenData
357+7
358data = 1._TKG + getUnifRand((0._TKG, 0._TKG), (1._TKG, 1._TKG), lenData)
359data
360(+1.87639679474190728073193753173267621, +0.341687088777965522724662634471730703), (+1.03319163865771341367639617302018009, +0.646115703471495897822914228283806035), (+1.91466496399629140580933998089976800, +0.697761400375000955464383040578591791), (+1.25509015964035074357739685209072791, +0.904819814491926401572690752712297764), (+1.64897364450882688005989801892791394, +0.331644063595757147198881416598891844E-1), (+1.54282998539739471671474613580243762, +0.588511110235834093887408856398112758), (+1.22699932534725448001005785153418255, +0.246870221499562318319707212450962239)
361getFFTI(getFFTF(data))
362(+1.87639679474190728073193753173267621, +0.341687088777965522724662634471730703), (+1.03319163865771341367639617302018029, +0.646115703471495897822914228283806035), (+1.91466496399629140580933998089976820, +0.697761400375000955464383040578591791), (+1.25509015964035074357739685209072791, +0.904819814491926401572690752712297571), (+1.64897364450882688005989801892791375, +0.331644063595757147198881416598890881E-1), (+1.54282998539739471671474613580243762, +0.588511110235834093887408856398112854), (+1.22699932534725448001005785153418255, +0.246870221499562318319707212450962263)
363reltol = sqrt(epsilon(1._TKG))
364reltol
365+0.138777878078144567552953958511352539E-16
366isClose(data, getFFTI(getFFTF(data)), reltol = reltol)
367T, T, T, T, T, T, T
368call setAsserted(all(isClose(data, getFFTI(getFFTF(data)), reltol = reltol)))
369
370lenData = getUnifRand(5, 11)
371lenData
372+5
373data = 1._TKG + getUnifRand(0._TKG, 1._TKG, lenData)
374data
375+1.12602627, +1.91002893, +1.48219991, +1.21398425, +1.96828151
376getFFTF(data)
377+7.70052099, +0.143231153, -0.102251694, -1.17842627, +0.289328247
378getFFTF(cmplx(data, kind = TKG))
379(+7.70052099, +0.00000000), (+0.143231153, -0.102251694), (-1.17842627, +0.289328247), (-1.17842627, -0.289328247), (+0.143231153, +0.102251694)
380getFFTI(getFFTF(data))
381+1.12602615, +1.91002882, +1.48220003, +1.21398437, +1.96828163
382getFFTI(getFFTF(cmplx(data, kind = TKG)))
383(+1.12602615, +0.00000000), (+1.91002882, +0.00000000), (+1.48220003, +0.00000000), (+1.21398437, +0.00000000), (+1.96828163, +0.00000000)
384reltol = sqrt(epsilon(1._TKG))
385reltol
386+0.345266977E-3
387isClose(data, getFFTI(getFFTF(data)), reltol = reltol)
388T, T, T, T, T
389call setAsserted(all(isClose(data, getFFTI(getFFTF(data)), reltol = reltol)))
390
391lenData = getUnifRand(5, 11)
392lenData
393+5
394data = 1._TKG + getUnifRand(0._TKG, 1._TKG, lenData)
395data
396+1.3553931717379295, +1.7610106593357544, +1.8238469264776205, +1.2099859487404181, +1.8451183338631756
397getFFTF(data)
398+7.9953550401548981, +0.15325960399815486E-1, -0.28082727774202998, -0.62452055113244076, +0.63325373366811399
399getFFTF(cmplx(data, kind = TKG))
400(+7.9953550401548981, +0.0000000000000000), (+0.15325960399815486E-1, -0.28082727774202998), (-0.62452055113244076, +0.63325373366811399), (-0.62452055113244076, -0.63325373366811399), (+0.15325960399815486E-1, +0.28082727774202998)
401getFFTI(getFFTF(data))
402+1.3553931717379297, +1.7610106593357544, +1.8238469264776207, +1.2099859487404183, +1.8451183338631758
403getFFTI(getFFTF(cmplx(data, kind = TKG)))
404(+1.3553931717379297, +0.0000000000000000), (+1.7610106593357544, +0.0000000000000000), (+1.8238469264776207, +0.0000000000000000), (+1.2099859487404183, +0.0000000000000000), (+1.8451183338631758, +0.0000000000000000)
405reltol = sqrt(epsilon(1._TKG))
406reltol
407+0.14901161193847656E-7
408isClose(data, getFFTI(getFFTF(data)), reltol = reltol)
409T, T, T, T, T
410call setAsserted(all(isClose(data, getFFTI(getFFTF(data)), reltol = reltol)))
411
412lenData = getUnifRand(5, 11)
413lenData
414+7
415data = 1._TKG + getUnifRand(0._TKG, 1._TKG, lenData)
416data
417+1.18228255885010867679073670054756697, +1.95783745803684184422203886044395251, +1.65693511515323431100172770574526419, +1.43266740531113772990234533617627183, +1.03222379554591030235868322696841891, +1.47386740830837340435371751288211223, +1.82519627234760682567587639615823589
418getFFTF(data)
419+10.5610100135532130943051257389218237, +0.623506173540142295861774629718825145, -0.455926842776575403765607509713144857, -0.943442718786824006791385451674195665, +0.263193927991794740138636838046676084, -0.822579505554544467455373595589057119, -0.304826409388257427515224430223155455
420getFFTF(cmplx(data, kind = TKG))
421(+10.5610100135532130943051257389218237, +0.00000000000000000000000000000000000), (+0.623506173540142295861774629718825530, -0.455926842776575403765607509713144857), (-0.943442718786824006791385451674195857, +0.263193927991794740138636838046676035), (-0.822579505554544467455373595589056926, -0.304826409388257427515224430223155311), (-0.822579505554544467455373595589056926, +0.304826409388257427515224430223155311), (-0.943442718786824006791385451674195857, -0.263193927991794740138636838046676035), (+0.623506173540142295861774629718825530, +0.455926842776575403765607509713144857)
422getFFTI(getFFTF(data))
423+1.18228255885010867679073670054756697, +1.95783745803684184422203886044395270, +1.65693511515323431100172770574526419, +1.43266740531113772990234533617627202, +1.03222379554591030235868322696841871, +1.47386740830837340435371751288211223, +1.82519627234760682567587639615823589
424getFFTI(getFFTF(cmplx(data, kind = TKG)))
425(+1.18228255885010867679073670054756697, +0.00000000000000000000000000000000000), (+1.95783745803684184422203886044395290, +0.00000000000000000000000000000000000), (+1.65693511515323431100172770574526419, +0.00000000000000000000000000000000000), (+1.43266740531113772990234533617627183, +0.00000000000000000000000000000000000), (+1.03222379554591030235868322696841891, +0.00000000000000000000000000000000000), (+1.47386740830837340435371751288211223, +0.00000000000000000000000000000000000), (+1.82519627234760682567587639615823609, +0.00000000000000000000000000000000000)
426reltol = sqrt(epsilon(1._TKG))
427reltol
428+0.138777878078144567552953958511352539E-16
429isClose(data, getFFTI(getFFTF(data)), reltol = reltol)
430T, T, T, T, T, T, T
431call setAsserted(all(isClose(data, getFFTI(getFFTF(data)), reltol = reltol)))
432
433lenData = getUnifRand(5, 11)
434lenData
435+7
436data = 1._TKG + getUnifRand((0._TKG, 0._TKG), (1._TKG, 1._TKG), lenData)
437data
438(+1.39163971, +0.321796715), (+1.12627244, +0.443365932), (+1.84652817, +0.984597087), (+1.10877919, +0.642339349), (+1.84668636, +0.271652341), (+1.92189717, +0.677692890), (+1.90886056, +0.335052967)
439getFFTI(getFFTF(data))
440(+1.39164019, +0.321796834), (+1.12627208, +0.443365902), (+1.84652829, +0.984597087), (+1.10877931, +0.642339230), (+1.84668636, +0.271652371), (+1.92189741, +0.677693009), (+1.90886033, +0.335052878)
441reltol = sqrt(epsilon(1._TKG))
442reltol
443+0.345266977E-3
444isClose(data, getFFTI(getFFTF(data)), reltol = reltol)
445T, T, T, T, T, T, T
446call setAsserted(all(isClose(data, getFFTI(getFFTF(data)), reltol = reltol)))
447
448lenData = getUnifRand(5, 11)
449lenData
450+10
451data = 1._TKG + getUnifRand((0._TKG, 0._TKG), (1._TKG, 1._TKG), lenData)
452data
453(+1.7697942193747127, +0.77250928854014811), (+1.8754877586560499, +0.81153564092022423), (+1.6156755978895423, +0.38012478367624980), (+1.9024166619103045, +0.51186144859520633), (+1.3298000952060072, +0.58347683464217059), (+1.3169841762216361, +0.87661053462844052), (+1.1439488067548405, +0.87446267793617427), (+1.4157345472597180, +0.54915472607733107), (+1.8270433144123444, +0.25587596021328995), (+1.7105314307537169, +0.72985323077408093)
454getFFTI(getFFTF(data))
455(+1.7697942193747129, +0.77250928854014833), (+1.8754877586560501, +0.81153564092022445), (+1.6156755978895423, +0.38012478367624986), (+1.9024166619103040, +0.51186144859520633), (+1.3298000952060072, +0.58347683464217082), (+1.3169841762216361, +0.87661053462844074), (+1.1439488067548407, +0.87446267793617438), (+1.4157345472597180, +0.54915472607733118), (+1.8270433144123441, +0.25587596021328995), (+1.7105314307537167, +0.72985323077408126)
456reltol = sqrt(epsilon(1._TKG))
457reltol
458+0.14901161193847656E-7
459isClose(data, getFFTI(getFFTF(data)), reltol = reltol)
460T, T, T, T, T, T, T, T, T, T
461call setAsserted(all(isClose(data, getFFTI(getFFTF(data)), reltol = reltol)))
462
463lenData = getUnifRand(5, 11)
464lenData
465+8
466data = 1._TKG + getUnifRand((0._TKG, 0._TKG), (1._TKG, 1._TKG), lenData)
467data
468(+1.56341325927628043932227146811637915, +0.163167610023694910637479472268705865), (+1.18643505221177011718462648414106511, +0.553745222518381292984624733293886640), (+1.19606630307907492214438213278084425, +0.688850525165623702718341933519748265), (+1.54619794584089975159179624831834418, +0.546906466372541846583757179014195806), (+1.43150081067810289685159022343272965, +0.410332374721613366366690743900149614), (+1.22057122678907185873509909765993775, +0.733258342682778966727221700984991450), (+1.16712871216890347127443342936910896, +0.919918501613145658954521882985768486), (+1.88922369265093059557847207404867065, +0.394966468832158243269311469108988833)
469getFFTI(getFFTF(data))
470(+1.56341325927628043932227146811637934, +0.163167610023694910637479472268705913), (+1.18643505221177011718462648414106530, +0.553745222518381292984624733293886640), (+1.19606630307907492214438213278084444, +0.688850525165623702718341933519748168), (+1.54619794584089975159179624831834418, +0.546906466372541846583757179014195806), (+1.43150081067810289685159022343272984, +0.410332374721613366366690743900149663), (+1.22057122678907185873509909765993795, +0.733258342682778966727221700984991450), (+1.16712871216890347127443342936910896, +0.919918501613145658954521882985768486), (+1.88922369265093059557847207404867046, +0.394966468832158243269311469108988785)
471reltol = sqrt(epsilon(1._TKG))
472reltol
473+0.138777878078144567552953958511352539E-16
474isClose(data, getFFTI(getFFTF(data)), reltol = reltol)
475T, T, T, T, T, T, T, T
476call setAsserted(all(isClose(data, getFFTI(getFFTF(data)), reltol = reltol)))
477
478lenData = getUnifRand(5, 11)
479lenData
480+9
481data = 1._TKG + getUnifRand(0._TKG, 1._TKG, lenData)
482data
483+1.18561018, +1.01591444, +1.02425778, +1.80962133, +1.25898576, +1.65955520, +1.24916351, +1.77301049, +1.17405331
484getFFTF(data)
485+12.1501722, -0.922960520, +0.490659416, -0.356338590, +0.639714599, +0.291506767, -0.164583281, +0.247952193, -1.30705690
486getFFTF(cmplx(data, kind = TKG))
487(+12.1501722, +0.00000000), (-0.922960520, +0.490659416), (-0.356338620, +0.639714479), (+0.291506767, -0.164583281), (+0.247952193, -1.30705690), (+0.247952342, +1.30705690), (+0.291506767, +0.164583281), (-0.356338590, -0.639714599), (-0.922960639, -0.490659297)
488getFFTI(getFFTF(data))
489+1.18561029, +1.01591456, +1.02425766, +1.80962145, +1.25898576, +1.65955520, +1.24916363, +1.77301049, +1.17405343
490getFFTI(getFFTF(cmplx(data, kind = TKG)))
491(+1.18561029, +0.00000000), (+1.01591456, +0.00000000), (+1.02425778, +0.00000000), (+1.80962145, +0.00000000), (+1.25898576, -0.114709193E-7), (+1.65955520, -0.229418387E-7), (+1.24916363, +0.00000000), (+1.77301049, +0.114709193E-7), (+1.17405343, +0.229418387E-7)
492reltol = sqrt(epsilon(1._TKG))
493reltol
494+0.345266977E-3
495isClose(data, getFFTI(getFFTF(data)), reltol = reltol)
496T, T, T, T, T, T, T, T, T
497call setAsserted(all(isClose(data, getFFTI(getFFTF(data)), reltol = reltol)))
498
499lenData = getUnifRand(5, 11)
500lenData
501+11
502data = 1._TKG + getUnifRand(0._TKG, 1._TKG, lenData)
503data
504+1.0519732938105320, +1.2669811877649957, +1.3584823430700261, +1.6977719527678898, +1.9571309547141731, +1.2532249477734578, +1.6183437525865536, +1.3576106475873606, +1.0124272417472771, +1.6422422579039753, +1.9462260418232600
505getFFTF(data)
506+16.162414621549502, -0.31000439327566998, -0.40324566186223504, -0.23470558303075828, +1.4214181302740512, -0.25057001349978103, +1.1676114238901878, -1.1868914678642251, -0.63908609948593997, -0.31318273714638845, +0.42674949856374850
507getFFTF(cmplx(data, kind = TKG))
508(+16.162414621549502, +0.0000000000000000), (-0.31000439327567086, -0.40324566186223509), (-0.23470558303075739, +1.4214181302740514), (-0.25057001349978192, +1.1676114238901878), (-1.1868914678642257, -0.63908609948594042), (-0.31318273714639056, +0.42674949856374894), (-0.31318273714639056, -0.42674949856374894), (-1.1868914678642257, +0.63908609948594042), (-0.25057001349978192, -1.1676114238901878), (-0.23470558303075739, -1.4214181302740514), (-0.31000439327567086, +0.40324566186223509)
509getFFTI(getFFTF(data))
510+1.0519732938105324, +1.2669811877649957, +1.3584823430700266, +1.6977719527678898, +1.9571309547141731, +1.2532249477734574, +1.6183437525865529, +1.3576106475873606, +1.0124272417472773, +1.6422422579039755, +1.9462260418232602
511getFFTI(getFFTF(cmplx(data, kind = TKG)))
512(+1.0519732938105315, +0.0000000000000000), (+1.2669811877649961, +0.0000000000000000), (+1.3584823430700264, +0.0000000000000000), (+1.6977719527678898, +0.0000000000000000), (+1.9571309547141731, +0.0000000000000000), (+1.2532249477734578, +0.0000000000000000), (+1.6183437525865536, +0.0000000000000000), (+1.3576106475873606, +0.0000000000000000), (+1.0124272417472773, +0.0000000000000000), (+1.6422422579039755, +0.0000000000000000), (+1.9462260418232606, +0.0000000000000000)
513reltol = sqrt(epsilon(1._TKG))
514reltol
515+0.14901161193847656E-7
516isClose(data, getFFTI(getFFTF(data)), reltol = reltol)
517T, T, T, T, T, T, T, T, T, T, T
518call setAsserted(all(isClose(data, getFFTI(getFFTF(data)), reltol = reltol)))
519
520lenData = getUnifRand(5, 11)
521lenData
522+11
523data = 1._TKG + getUnifRand(0._TKG, 1._TKG, lenData)
524data
525+1.48355199055018462839966642186256263, +1.59478264267658504183890847262793761, +1.38926674662581120748508784085131455, +1.59459080158867549507067728215092420, +1.93898314295497754664418134062178921, +1.28081994650310103007888789571875725, +1.46224683334655754414328219634886867, +1.01690382339300230486879045609127024, +1.94976020116522108643021821105421505, +1.06067279450102131944926304436365632, +1.34545145124570667912880030178897685
526getFFTF(data)
527+16.1170303745508438835377634634802728, -0.972853736596715208904027739961119684E-1, -0.727891096853865522595202635488978112, -0.413231670513798143710262005925299766, +0.239409949532334797737040268734623057, +0.877113521765375658359549261098707838, -0.838691619317461925867558822058035528, +0.494501533925675588281669389976453364, -0.959749931905080983474181871204880617E-1, -0.760077250766988067611270282649788958, +1.39415878543885746194758087157950066
528getFFTF(cmplx(data, kind = TKG))
529(+16.1170303745508438835377634634802728, +0.00000000000000000000000000000000000), (-0.972853736596715208904027739961127388E-1, -0.727891096853865522595202635488978112), (-0.413231670513798143710262005925298995, +0.239409949532334797737040268734622913), (+0.877113521765375658359549261098706490, -0.838691619317461925867558822058035720), (+0.494501533925675588281669389976453942, -0.959749931905080983474181871204874839E-1), (-0.760077250766988067611270282649791654, +1.39415878543885746194758087157950008), (-0.760077250766988067611270282649791654, -1.39415878543885746194758087157950008), (+0.494501533925675588281669389976453942, +0.959749931905080983474181871204874839E-1), (+0.877113521765375658359549261098706490, +0.838691619317461925867558822058035720), (-0.413231670513798143710262005925298995, -0.239409949532334797737040268734622913), (-0.972853736596715208904027739961127388E-1, +0.727891096853865522595202635488978112)
530getFFTI(getFFTF(data))
531+1.48355199055018462839966642186256302, +1.59478264267658504183890847262793722, +1.38926674662581120748508784085131494, +1.59459080158867549507067728215092381, +1.93898314295497754664418134062178998, +1.28081994650310103007888789571875648, +1.46224683334655754414328219634886828, +1.01690382339300230486879045609127063, +1.94976020116522108643021821105421505, +1.06067279450102131944926304436365671, +1.34545145124570667912880030178897646
532getFFTI(getFFTF(cmplx(data, kind = TKG)))
533(+1.48355199055018462839966642186256263, +0.00000000000000000000000000000000000), (+1.59478264267658504183890847262793780, +0.00000000000000000000000000000000000), (+1.38926674662581120748508784085131494, +0.00000000000000000000000000000000000), (+1.59459080158867549507067728215092439, +0.00000000000000000000000000000000000), (+1.93898314295497754664418134062178902, +0.00000000000000000000000000000000000), (+1.28081994650310103007888789571875725, +0.00000000000000000000000000000000000), (+1.46224683334655754414328219634886886, +0.00000000000000000000000000000000000), (+1.01690382339300230486879045609126986, +0.00000000000000000000000000000000000), (+1.94976020116522108643021821105421505, +0.00000000000000000000000000000000000), (+1.06067279450102131944926304436365652, +0.00000000000000000000000000000000000), (+1.34545145124570667912880030178897704, +0.00000000000000000000000000000000000)
534reltol = sqrt(epsilon(1._TKG))
535reltol
536+0.138777878078144567552953958511352539E-16
537isClose(data, getFFTI(getFFTF(data)), reltol = reltol)
538T, T, T, T, T, T, T, T, T, T, T
539call setAsserted(all(isClose(data, getFFTI(getFFTF(data)), reltol = reltol)))
540
541
Test:
test_pm_fftpack


Final Remarks


If you believe this algorithm or its documentation can be improved, we appreciate your contribution and help to edit this page's documentation and source file on GitHub.
For details on the naming abbreviations, see this page.
For details on the naming conventions, see this page.
This software is distributed under the MIT license with additional terms outlined below.

  1. If you use any parts or concepts from this library to any extent, please acknowledge the usage by citing the relevant publications of the ParaMonte library.
  2. If you regenerate any parts/ideas from this library in a programming environment other than those currently supported by this ParaMonte library (i.e., other than C, C++, Fortran, MATLAB, Python, R), please also ask the end users to cite this original ParaMonte library.

This software is available to the public under a highly permissive license.
Help us justify its continued development and maintenance by acknowledging its benefit to society, distributing it, and contributing to it.

Author:
Fatemeh Bagheri, Tuesday 11:34 PM, August 10, 2021, Dallas, TX

Definition at line 746 of file pm_fftpack.F90.


The documentation for this interface was generated from the following file: