[ET Trac] [Einstein Toolkit] #747: 9th order prolongation test fails with REAL_PRECISION=4

Einstein Toolkit trac-noreply at einsteintoolkit.org
Thu Feb 2 21:54:25 CST 2012


#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 hinder):

 I looked up numeric_limits, and according to
 http://www.cplusplus.com/reference/std/limits/numeric_limits,
 numeric_limits<T>::min() is of type T and is the minimum positive value
 that T can take.  i.e. it would be 1.17549435e-38F for single precision
 and 2.2250738585072014e-308 for double precision.  Do you mean
 numeric_limits<T>::epsilon() instead?  This would be 1.19209290e-07F for
 single precision and  2.2204460492503131e-16 for double precision.
 eps^3/4^ would be correspondingly 6.4e-6 and 1.8e-12, which sound more
 like what we want.  In the code, with single precision, I see:

 INFO (CarpetLib): numeric_limits<RT>::min() = 1.1920928955078125e-07
 INFO (CarpetLib): good::abs (res - y0) = 1.52587890625e-05

 Is this what you mean by borderline?  Should we use eps^4/7^?  This gives
 (1.19209290e-07)^(4/7)^ = 1.1e-4 as the tolerance for single precision and
 1.13e-9 for double precision.

-- 
Ticket URL: <https://trac.einsteintoolkit.org/ticket/747#comment:2>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit


More information about the Trac mailing list