[prev in list] [next in list] [prev in thread] [next in thread] 

List:       freebsd-hackers
Subject:    [hackers] Re: x86-64 support
From:       David Gilbert <dgilbert () velocet ! ca>
Date:       2003-04-29 14:34:20
[Download RAW message or body]

> > > > > "Oliver" == Oliver Fromme <olli@secnetix.de> writes:

Oliver> Narvi <narvi@haldjas.folklore.ee> wrote:
> > On Sat, 26 Apr 2003, M. Warner Losh wrote: > In message:
> > <20030427064014.H40030-100000@haldjas.folklore.ee> > Narvi
> > <narvi@haldjas.folklore.ee> writes: > : option USE_PI_DIGITS 100
> > > 
> > > Only if you could implement it with integer math :-)
> > 
> > where's the problem in that ? most mp libs use integer arithmetic,
> > and x86-64 gives you 64x64->128 bit widening multiplies 8-)

Oliver> You don't need that; the digits of pi can be calculated quite
Oliver> easily with integer math.  This snippet is from my signature
Oliver> collection:

Oliver> int f[9800],b,c=9814,g,i;long
Oliver> a=1e4,d,e,h;main(){for(;b=c,c-=14;i=printf(
Oliver> "%04d",e+d/a),e=d%a)while(g=--b*2)d=h*b+a*(i?f[b]:a/5),h=d/--g,f[b]=d%g;}

With gcc -o pi pi.c, the output is:

[2:19:319]dgilbert@canoe:~/devel> ./pi
18770000000000000000000000000000000000000000000000000000000000000000000000000000000000 \
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000


and so on.  All Zeros.

With gcc -O -o pi pi.c, the output is:

[2:21:321]dgilbert@canoe:~/devel> ./pi
50185926535897932384626433832795028841971693993751058209749445923078164062862089986280 \
3482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196442881097566593344612847564823378678316


... and so on for many digits.  Neither matches:

echo "scale=200; 4*a(1)" | bc -l
3.141592653589793238462643383279502884197169399375105820974944592307\
81640628620899862803482534211706798214808651328230664709384460955058\
223172535940812848111745028410270193852110555964462294895493038196

Dave.

-- 
============================================================================
> David Gilbert, Velocet Communications.       | Two things can only be     |
> Mail:       dgilbert@velocet.net             |  equal if and only if they |
> http://daveg.ca                              |   are precisely opposite.  |
=========================================================GLO================
_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org"


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic