POV-Ray : Newsgroups : povray.beta-test : Differences in calculations Windows-Linux : Re: Differences in calculations Windows-Linux Server Time
1 Jun 2024 14:53:18 EDT (-0400)
  Re: Differences in calculations Windows-Linux  
From: clipka
Date: 16 Feb 2012 10:27:04
Message: <4f3d2048$1@news.povray.org>
Am 14.02.2012 20:49, schrieb Jos leys:
> I'm working on a large animation project.
> One of the scenes has a large number of spheres that move and collide.
> The positions and velocity vectors are written to a file in each frame to be
> read by the next frame.
>
> The same file produces a different constellation of the spheres after a few
> hundred frames in Linux as compared to the same under Windows.
>
> Is there a logical explanation? If one of the two uses one decimal more for
> storing the intermediate situations, then I can well believe that the situations
> become very different.

A 32-bit non-SSE2 version of POV-Ray might produce different results as 
a 32-bit SSE2 or 64-bit version; the latter two use the true "double 
precision" (64 bit) floating point arithmetics of the SSE2 instructions, 
while the former uses the older x87 instructions, wich have a slightly 
higher internal precision (72 bit IIRC). There are mechanisms available 
to automatically trim x87 interim results to double precision, but those 
might be disabled; the compiler probably has a say in this.

Another difference might arise if the two platforms use different 
default rounding modes for floating point operations (which might also 
differ between compilers); AFAIK POV-Ray doesn't explicitly specify a 
rounding mode to use.

Darren already mentioned the possible implementation differences in the 
internal function used to convert floating point numbers to text 
strings; as this is a runtime library function, i.e. one that is 
supplied by the compiler, its implementation details are beyond 
POV-Ray's control.


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.