Skip to content

Commit 06b4a5b

Browse files
authored
Make Parser CI less sensitive to roundoff errors (#4321)
Replace `1-cos(x)` with `2*sin(x/2)**2` to reduce roundoff errors for small x's.
1 parent f3e4bec commit 06b4a5b

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

Tests/Parser/main.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -318,14 +318,14 @@ int main (int argc, char* argv[])
318318
{-149.e-6}, {1.e-6}, 1000,
319319
1.e-12, 1.e-15);
320320

321-
nerror += test1("if(z<lramp, 0.5*(1-cos(pi*z/lramp))*dens, dens)",
321+
nerror += test1("if(z<lramp, sin(pi/2*z/lramp)**2*dens, dens)",
322322
{{"lramp",8.e-3},{"pi",3.14},{"dens",1.e23}},
323323
{"z"},
324324
[=] (Real z) -> Real {
325325
Real lramp=8.e-3, pi=3.14, dens=1.e23;
326326
if (z < lramp) {
327-
//return 0.5*(1-std::cos(pi*z/lramp))*dens;
328-
return 0.5*dens-0.5*dens*std::cos(pi*z/lramp);
327+
auto x = std::sin(pi/2*z/lramp);
328+
return x*x*dens;
329329
} else {
330330
return dens;
331331
}

0 commit comments

Comments
 (0)