#747: 9th order prolongation test fails with REAL_PRECISION=4 ---------------------+------------------------------------------------------ Reporter: hinder | Owner: eschnett Type: defect | Status: new Priority: major | Milestone: Component: Carpet | Version: Resolution: | Keywords: ---------------------+------------------------------------------------------
Comment (by eschnett):
I don't think changing things to an L1 warning is a good solution. Either 9th order prolongation works with single precision (then we fix it), or it doesn't because of lack of precision (then we disable it). Or maybe we just have to lower our expectations with single precision.
For example, the statement
if (not (good::abs (res - y0) < 1.0e-12))
may need adjusting. Replacing 1.0e-12 by eps^(3/4) where eps is the precision of CCTK_REAL may be a way.
RT is a type; it is the real type corresponding to T, which may be a complex type. In C++, eps = numeric_limits<RT>::min(). Can you check whether eps^(3/4) works for single precision? 1.5e-5 seems borderline for this.