1#ifndef PRDC_CPU_R_FIELD_DFT_COMPARISON_TPP
2#define PRDC_CPU_R_FIELD_DFT_COMPARISON_TPP
11#include "RFieldDftComparison.h"
12#include <prdc/cpu/RFieldDft.h>
13#include <util/containers/DArray.h>
39 double diffSq, diff, d0, d1;
42 for (
int i = 0; i < n; ++i) {
43 d0 = a[i][0] - b[i][0];
44 d1 = a[i][1] - b[i][1];
45 diffSq = d0*d0 + d1*d1;
47 if (std::isnan(diff)) {
53 }
else if (diff > maxDiff_) {
62 rmsDiff_ = rmsDiff_/double(n);
63 rmsDiff_ = sqrt(rmsDiff_);
79 double diffSq, diff, d0, d1;
83 for (i = 0; i < m; ++i) {
87 for (j = 0; j < n; ++j) {
88 d0 = a[i][j][0] - b[i][j][0];
89 d1 = a[i][j][1] - b[i][j][1];
90 diffSq = d0*d0 + d1*d1;
92 if (std::isnan(diff)) {
98 }
else if (diff > maxDiff_) {
104 rmsDiff_ = rmsDiff_/double(m*n);
105 rmsDiff_ = sqrt(rmsDiff_);
RFieldDftComparison()
Default constructor.
double compare(RFieldDft< D > const &a, RFieldDft< D > const &b)
Compare individual fields.
Fourier transform of a real field on an FFT mesh.
int capacity() const
Return allocated size.
Dynamically allocatable contiguous array template.
#define UTIL_CHECK(condition)
Assertion macro suitable for serial or parallel production code.
Fields and FFTs for periodic boundary conditions (CPU)
Periodic fields and crystallography.
PSCF package top-level namespace.