57 const unsigned int integrationIntervals = 10;
58 const unsigned int tfs = 200;
59 const unsigned int rangeIDC = 200;
60 const unsigned int nFourierCoeff = rangeIDC + 2;
64 for (
int iType = 0; iType < 2; ++iType) {
65 const bool fft = iType == 0 ? false :
true;
67 FtType::setNThreads(2);
69 FtType idcFourierTransform{rangeIDC, nFourierCoeff};
71 idcFourierTransform.setIDCs(
get1DIDCs(intervalsPerTF), intervalsPerTF);
72 idcFourierTransform.setIDCs(
get1DIDCs(intervalsPerTF), intervalsPerTF);
73 idcFourierTransform.calcFourierCoefficients(tfs);
75 const std::vector<unsigned int> offsetIndex = idcFourierTransform.getLastIntervals();
76 const auto idcOneExpanded = idcFourierTransform.getExpandedIDCOne();
77 const auto inverseFourier = idcFourierTransform.inverseFourierTransform();
78 for (
unsigned int interval = 0; interval < idcFourierTransform.getNIntervals(); ++interval) {
80 const float origIDCOne = idcOneExpanded[
index + offsetIndex[interval]];
81 const float iFTIDCOne = inverseFourier[interval][
index];
82 if (std::fabs(origIDCOne) < ABSTOLERANCE) {
83 BOOST_CHECK_SMALL(iFTIDCOne - origIDCOne, ABSTOLERANCE);
85 BOOST_CHECK_CLOSE(iFTIDCOne, origIDCOne, TOLERANCE);
95 const int nIter = 100;
96 const unsigned int integrationIntervals = 10;
97 const unsigned int rangeIDC = 200;
98 const unsigned int tfs = rangeIDC / integrationIntervals;
99 const unsigned int nFourierCoeff = rangeIDC + 2;
103 for (
int iter = 0; iter < nIter; ++iter) {
104 for (
int iType = 0; iType < 2; ++iType) {
105 const bool fft = iType == 0 ? false :
true;
107 FtType idcFourierTransform{rangeIDC, nFourierCoeff};
109 idcFourierTransform.setIDCs(
get1DIDCs(intervalsPerTF));
110 idcFourierTransform.calcFourierCoefficients();
111 const auto offsetIndex = idcFourierTransform.getLastIntervals();
112 const auto idcOneExpanded = idcFourierTransform.getExpandedIDCOne();
113 const auto inverseFourier = idcFourierTransform.inverseFourierTransform();
114 for (
unsigned int interval = 0; interval < idcFourierTransform.getNIntervals(); ++interval) {
116 const float origIDCOne = idcOneExpanded[
index + offsetIndex[interval]];
117 const float iFTIDCOne = inverseFourier[interval][
index];
118 if (std::fabs(origIDCOne) < ABSTOLERANCE) {
119 BOOST_CHECK_SMALL(iFTIDCOne - origIDCOne, ABSTOLERANCE);
121 BOOST_CHECK_CLOSE(iFTIDCOne, origIDCOne, TOLERANCE);