[Ironpython-users] IronPython float_info values (was: IronPython always in 32-bit mode on 64bit machine even when running ipy64.exe)

Curt Hagenlocher curt at hagenlocher.org
Wed May 8 18:09:02 CEST 2013


You may be able to avoid endian-ness issues by using BitConverter.ToDouble
with a byte array instead. (I'm never sure how endian-ness and IEEE-754
interact.)


On Wed, May 8, 2013 at 9:06 AM, Markus Schaber <m.schaber at codesys.com>wrote:

>  Hi,****
>
> ** **
>
> I tried to find a way to calculate it reliably, but did not find an easy,
> nice and fast way.****
>
> ** **
>
> I guess setting the IEC bits directly is the best way for now, together
> with a comment why we don't use the false friends provided by .NET.****
>
> ** **
>
> However, as far as I read the docs of DoubleToInt64Bits() and
> Int64BitsToDouble(), the conversion may be subject to endianess issues…***
> *
>
> ** **
>
> Best regards
>
> Markus Schaber
>
> *CODESYS®* a trademark of 3S-Smart Software Solutions GmbH
> *
> **Inspiring Automation Solutions *****
>  ------------------------------
>
> 3S-Smart Software Solutions GmbH
> Dipl.-Inf. Markus Schaber | Product Development Core Technology
> Memminger Str. 151 | 87439 Kempten | Germany
> Tel. +49-831-54031-979 | Fax +49-831-54031-50
>
> E-Mail: m.schaber at codesys.com | Web: codesys.com <http://www.codesys.com>| CODESYS store:
> store.codesys.com
> CODESYS forum: forum.codesys.com
>
> *Managing Directors: Dipl.Inf. Dieter Hess, Dipl.Inf. Manfred Werner* | *Trade
> register: Kempten HRB 6186* | *Tax ID No.: DE 167014915** *****
>
> *Von:* Curt Hagenlocher [mailto:curt at hagenlocher.org]
> *Gesendet:* Mittwoch, 8. Mai 2013 17:34
> *An:* Jeff Hardy
> *Cc:* Markus Schaber; ironpython-users at python.org
> *Betreff:* Re: [Ironpython-users] IronPython float_info values (was:
> IronPython always in 32-bit mode on 64bit machine even when running
> ipy64.exe)****
>
> ** **
>
> You can get precise values of these without depending on the compiler's
> ability to convert text to floating point values by saying****
>
>  ****
>
> sys.float_info.min =
> System.BitConverter.Int64BitsToDouble(0x0010000000000000)  # i.e. 2^-1023*
> ***
>
> sys.float_info.epsilon =
> System.BitConverter.Int64BitsToDouble(0x3cb0000000000000) # i.e. 2^-53****
>
>  ****
>
> ** **
>
> On Wed, May 8, 2013 at 8:10 AM, Jeff Hardy <jdhardy at gmail.com> wrote:****
>
> On Wed, May 8, 2013 at 4:07 AM, Markus Schaber <m.schaber at codesys.com>
> wrote:****
>
>  Hi,****
>
>  ****
>
> http://www.johndcook.com/blog/2010/06/08/c-math-gotchas/ explains the
> problem: The double.MinValue and double.Epsilon in C# have different
> meanings thant DBL_MIN and DBL_EPSILON in C.****
>
>  ****
>
> I'm looking for a way how to get the wanted values… J****
>
>  ** **
>
> So am I! .NET does not provide them as constants as far as I can tell. I'm
> pretty sure .NET requires the use of IEEE-854 floats so they could probably
> just be hardcoded to match the C constants but ... ick. Maybe there's a way
> to calculate the C versions from what .NET provides?****
>
> ** **
>
> The relevant issue is https://ironpython.codeplex.com/workitem/27840. ****
>
> ** **
>
> - Jeff****
>
>
> _______________________________________________
> Ironpython-users mailing list
> Ironpython-users at python.org
> http://mail.python.org/mailman/listinfo/ironpython-users****
>
> ** **
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20130508/8ba4dbab/attachment.html>


More information about the Ironpython-users mailing list