MCPcopy Create free account
hub / github.com/NanoComp/meep / Compare

Function Compare

tests/array-slice-ll.cpp:45–58  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

43const double RELTOL = sizeof(realnum) == sizeof(float) ? 1.0e-4 : 1.0e-6;
44
45double Compare(realnum *d1, realnum *d2, int N, const char *Name) {
46 double Norm1 = 0.0, Norm2 = 0.0, NormDelta = 0.0;
47 for (int n = 0; n < N; n++) {
48 Norm1 += d1[n] * d1[n];
49 Norm2 += d2[n] * d2[n];
50 NormDelta += (d1[n] - d2[n]) * (d1[n] - d2[n]);
51 };
52 Norm1 = sqrt(Norm1);
53 Norm2 = sqrt(Norm2);
54 NormDelta = sqrt(NormDelta);
55 double RelErr = NormDelta / (0.5 * (Norm1 + Norm2));
56 if (RelErr > RELTOL) meep::abort("fail: rel error in %s data = %e\n", Name, RelErr);
57 return RelErr;
58}
59
60double Compare(std::complex<realnum> *d1, std::complex<realnum> *d2, int N, const char *Name) {
61 double Norm1 = 0.0, Norm2 = 0.0, NormDelta = 0.0;

Callers 1

mainFunction · 0.85

Calls 1

abortFunction · 0.85

Tested by

no test coverage detected