Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F84144462
test_fft.cc
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Fri, Sep 20, 23:54
Size
1 KB
Mime Type
text/x-c
Expires
Sun, Sep 22, 23:54 (1 d, 23 h)
Engine
blob
Format
Raw Data
Handle
20787093
Attached To
R7554 sp4e_exercices
test_fft.cc
View Options
#include "compute_temperature.hh"
#include "csv_writer.hh"
#include "fft.hh"
#include "material_points_factory.hh"
#include "my_types.hh"
#include "vector.hh"
#include <gtest/gtest.h>
/*****************************************************************/
TEST
(
FFT
,
transform
)
{
UInt
N
=
512
;
Matrix
<
complex
>
m
(
N
);
Real
k
=
2
*
M_PI
/
N
;
for
(
auto
&&
entry
:
index
(
m
))
{
int
i
=
std
::
get
<
0
>
(
entry
);
int
j
=
std
::
get
<
1
>
(
entry
);
auto
&
val
=
std
::
get
<
2
>
(
entry
);
val
=
cos
(
k
*
i
);
}
Matrix
<
complex
>
res
=
FFT
::
transform
(
m
);
for
(
auto
&&
entry
:
index
(
res
))
{
int
i
=
std
::
get
<
0
>
(
entry
);
int
j
=
std
::
get
<
1
>
(
entry
);
auto
&
val
=
std
::
get
<
2
>
(
entry
);
if
(
std
::
abs
(
val
)
>
1e-10
)
std
::
cout
<<
i
<<
","
<<
j
<<
" = "
<<
val
<<
std
::
endl
;
if
(
i
==
1
&&
j
==
0
)
ASSERT_NEAR
(
std
::
abs
(
val
),
N
*
N
/
2
,
1e-10
);
else
if
(
i
==
N
-
1
&&
j
==
0
)
ASSERT_NEAR
(
std
::
abs
(
val
),
N
*
N
/
2
,
1e-10
);
else
ASSERT_NEAR
(
std
::
abs
(
val
),
0
,
1e-10
);
}
}
/*****************************************************************/
TEST
(
FFT
,
inverse_transform
)
{
}
/*****************************************************************/
Event Timeline
Log In to Comment