So is there anything here we're not doing correctly?

On Fri, Dec 19, 2014 at 7:54 AM, Tamas Papp <[email protected]> wrote:

> On Fri, Dec 19 2014, Hans W Borchers <[email protected]> wrote:
>
> > The expression -0.0 means the floating point number that in memory has
> the
> > same
> > bit representation as 0.0, but the sign bit set to 1. One can see this
> > applying
> > the 'bits' function to 0.0 and -0.0.
> >
> > I seem to remember that the IEEE floating point convention says that for
> > `sqrt(-0.0)` the sign bit has to be reset, so that
> >
> >     julia> sqrt(-0.0)
> >     -0.0
> >
> > would be wrong while MATLAB, R,... returning 0.0 are correct.
>
> I don't think so. Section 6.3 of the IEEE Std 754TM-2008 says that
>
> "Except that squareRoot(−0) shall be −0, every numeric squareRoot result
> shall have a positive sign.
>
> Furthermore, you can't rely on R to display the sign bit, eg
>
> > 1/(-Inf)
> [1] 0
>
> Best,
>
> Tamas
>
>
> > The expression -0.0 means the floating point number that in memory has
> the
> > same
> > bit representation as 0.0, but the sign bit set to 1. One can see this
> > applying
> > the 'bits' function to 0.0 and -0.0.
> >
> > I seem to remember that the IEEE floating point convention says that for
> > `sqrt(-0.0)` the sign bit has to be reset, so that
> >
> >     julia> sqrt(-0.0)
> >     -0.0
> >
> > would be wrong while MATLAB, R,... returning 0.0 are correct.
> >
> > For `1/-Inf` the sign bit is not reset because this expression should be
> > the
> > limit of 1/-x for very large numbers x, i.e. approaching 0 from left.
> >
> >
> > On Friday, December 19, 2014 12:13:57 PM UTC+1, Tamas Papp wrote:
> >>
> >> Hmmm, did you read the whole blog post, including the update at the end?
> >> Julia does handle signed zeroes correctly when working with floats.
> >>
> >> As to what signed zeros "mean" -- they have some applications, including
> >> indicating the direction of underflow. Probably you don't need to worry
> >> about them much since 0.0 == -0.0 (unless you specifically want to use
> >> them).
> >>
> >> I usually think about -0.0 as equivalent to 0.0 except for +, -, *, and
> >> /, especially when Inf is involved. Thinking about it as some limit is
> >> not very intuitive for IEEE floats, eg
> >>
> >> julia> log(-0.0)
> >> -Inf
> >>
> >> julia> sqrt(-0.0)
> >> -0.0
> >>
> >> all of which are correct IEEE.
> >>
> >> Best,
> >>
> >> Tamas
> >>
> >>
> >> On Fri, Dec 19 2014, cdm <[email protected] <javascript:>> wrote:
> >>
> >> > i stumbled across a post and got to wondering what Julians thought of
> it
> >> ...
> >> >
> >> >   http://www.walkingrandomly.com/?p=5152
> >> >
> >> >
> >> > the author presents the case that Python is not IEEE compliant, but
> >> > MATLAB is and Julia is close:
> >> >
> >> > "From the wikipedia page on Division by Zero
> >> > <http://en.wikipedia.org/wiki/Division_by_zero>: *“The IEEE 754
> >> > standard specifies that every floating point arithmetic operation,
> >> > including division by zero, has a well-defined result”.*
> >> >
> >> >
> >> > the author reports that in Julia
> >> >
> >> > julia> 1/(-0)
> >> > Inf
> >> >
> >> >
> >> > but MATLAB "correctly" returns -Inf ...
> >> >
> >> >
> >> > i am not sure that signed zero (-0)
> >> > means anything to me ...
> >> >
> >> > should it?
> >> >
> >> > many thanks,
> >> >
> >> > cdm
> >>
>

Reply via email to