Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.forth > #57584
| From | Paul Rubin <no.email@nospam.invalid> |
|---|---|
| Newsgroups | comp.lang.forth |
| Subject | Re: real to rational number |
| Date | 2017-04-19 00:41 -0700 |
| Organization | A noiseless patient Spider |
| Message-ID | <87zifcetey.fsf@nightsong.com> (permalink) |
| References | <d34926ea-ca84-4918-aa2f-82ebb21c6470@googlegroups.com> <87efwpf7cw.fsf@nightsong.com> <718428df-9808-4765-a9a1-48d43a971d24@googlegroups.com> |
krishna.myneni@ccreweb.org writes:
> Just so the problem is clear, I have a double precision value for r,
> which means I know it to about 16 significant digits. I know r, with
> infinite precision, is a rational number, but my machine
> representation is a rounded version to the limited precision. Now, I
> want to find "a" and "b" where r = a/b. Dividing the floating point
> representations of a and b, ra and rb, should give me a number equal
> to r in the machine representation.
For the r you gave, it's 8/105 in 64-bit gforth:
7.61904761904762e-02 fvariable r
8e 105e f/ fvariable q
q r f- f.
=> 0. ok
If you want to find the ratio by continued fractions, here's Haskell
code that I just wrote:
import Data.Ratio
import Control.Monad (forM_)
r = 7.61904761904762e-02
-- turn real number into continued fraction sequence
contFrac :: RealFrac a => a -> [Integer]
contFrac x = a : contFrac (1/b) where
(a,b) = properFraction x
-- turn truncated continued fraction into a rational number
unFrac :: Integral a => [a] -> Ratio Integer
unFrac [c] = fromIntegral c
unFrac (c:cs) = fromIntegral c + 1/unFrac cs
-- make rational from first n terms of cont frac of a real
approx :: RealFrac a => Int -> a -> Ratio Integer
approx n x = unFrac . take n . contFrac $ x
-- print first 4 rational approximations of r
main = forM_ [1..4] $ \i -> do
print (approx i r)
The output for the first 4 terms is:
*Main> main
0 % 1
1 % 13
8 % 105
70368744177665 % 923589767331853
You can see the 4th approximant is basically noise. The 5th is much
worse noise, several dozen digits.
Back to comp.lang.forth | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
real to rational number krishna.myneni@ccreweb.org - 2017-04-18 04:49 -0700
Re: real to rational number lehs <skydda.barnen@gmail.com> - 2017-04-18 06:48 -0700
Re: real to rational number krishna.myneni@ccreweb.org - 2017-04-18 19:09 -0700
Re: real to rational number lehs <skydda.barnen@gmail.com> - 2017-04-18 22:53 -0700
Re: real to rational number krishna.myneni@ccreweb.org - 2017-04-19 04:43 -0700
Re: real to rational number rickman <gnuarm@gmail.com> - 2017-04-19 15:41 -0400
Re: real to rational number Paul Rubin <no.email@nospam.invalid> - 2017-04-19 13:03 -0700
Re: real to rational number "Rudy Velthuis" <newsgroups@rvelthuis.de> - 2017-04-20 17:26 +0000
Re: real to rational number hughaguilar96@gmail.com - 2017-04-20 14:29 -0700
Re: real to rational number "Rudy Velthuis" <newsgroups@rvelthuis.de> - 2017-04-19 23:44 +0000
Re: real to rational number Paul Rubin <no.email@nospam.invalid> - 2017-04-19 19:30 -0700
Re: real to rational number "Rudy Velthuis" <newsgroups@rvelthuis.de> - 2017-04-20 17:08 +0000
Re: real to rational number Paul Rubin <no.email@nospam.invalid> - 2017-04-20 11:46 -0700
Re: real to rational number "Rudy Velthuis" <newsgroups@rvelthuis.de> - 2017-04-21 09:47 +0000
Re: real to rational number lehs <skydda.barnen@gmail.com> - 2017-04-20 20:49 -0700
Re: real to rational number rickman <gnuarm@gmail.com> - 2017-04-19 15:36 -0400
Re: real to rational number krishna.myneni@ccreweb.org - 2017-04-20 18:44 -0700
Re: real to rational number hughaguilar96@gmail.com - 2017-04-18 07:06 -0700
Re: real to rational number krishna.myneni@ccreweb.org - 2017-04-18 19:17 -0700
Re: real to rational number Paul Rubin <no.email@nospam.invalid> - 2017-04-18 19:45 -0700
Re: real to rational number krishna.myneni@ccreweb.org - 2017-04-18 19:57 -0700
Re: real to rational number anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-04-19 05:35 +0000
Re: real to rational number hughaguilar96@gmail.com - 2017-04-18 23:42 -0700
Re: real to rational number krishna.myneni@ccreweb.org - 2017-04-19 04:53 -0700
Re: real to rational number hughaguilar96@gmail.com - 2017-04-19 11:32 -0700
Re: real to rational number minforth@arcor.de - 2017-04-18 08:23 -0700
Re: real to rational number krishna.myneni@ccreweb.org - 2017-04-18 19:24 -0700
Re: real to rational number Paul Rubin <no.email@nospam.invalid> - 2017-04-18 19:48 -0700
Re: real to rational number krishna.myneni@ccreweb.org - 2017-04-18 20:01 -0700
Re: real to rational number Paul Rubin <no.email@nospam.invalid> - 2017-04-18 19:39 -0700
Re: real to rational number krishna.myneni@ccreweb.org - 2017-04-18 19:56 -0700
Re: real to rational number Paul Rubin <no.email@nospam.invalid> - 2017-04-19 00:41 -0700
Re: real to rational number krishna.myneni@ccreweb.org - 2017-04-19 04:48 -0700
Re: real to rational number hughaguilar96@gmail.com - 2017-04-19 11:30 -0700
Re: real to rational number albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2017-04-20 20:15 +0200
Re: real to rational number krishna.myneni@ccreweb.org - 2017-04-20 15:23 -0700
Re: real to rational number Paul Rubin <no.email@nospam.invalid> - 2017-04-20 18:52 -0700
Re: real to rational number Pablo Hugo Reda <pabloreda@gmail.com> - 2017-04-18 19:58 -0700
Re: real to rational number krishna.myneni@ccreweb.org - 2017-04-18 20:05 -0700
Re: real to rational number Pablo Hugo Reda <pabloreda@gmail.com> - 2017-04-19 05:30 -0700
Re: real to rational number Pablo Hugo Reda <pabloreda@gmail.com> - 2017-04-19 05:35 -0700
Re: real to rational number Pablo Hugo Reda <pabloreda@gmail.com> - 2017-04-19 05:41 -0700
Re: real to rational number krishna.myneni@ccreweb.org - 2017-04-19 19:39 -0700
Re: real to rational number "Rudy Velthuis" <newsgroups@rvelthuis.de> - 2017-04-19 23:16 +0000
Re: real to rational number krishna.myneni@ccreweb.org - 2017-04-19 19:42 -0700
Re: real to rational number "Rudy Velthuis" <newsgroups@rvelthuis.de> - 2017-04-20 17:15 +0000
Re: real to rational number krishna.myneni@ccreweb.org - 2017-04-20 15:11 -0700
Re: real to rational number hughaguilar96@gmail.com - 2017-04-20 15:49 -0700
Re: real to rational number Alex <alex@rivadpm.com> - 2017-04-21 00:20 +0100
Re: real to rational number krishna.myneni@ccreweb.org - 2017-04-20 18:49 -0700
Re: real to rational number The Beez <the.beez.speaks@gmail.com> - 2017-04-21 03:18 -0700
Re: real to rational number krishna.myneni@ccreweb.org - 2017-04-21 18:39 -0700
Re: real to rational number krishna.myneni@ccreweb.org - 2017-04-21 18:46 -0700
Re: real to rational number Paul Rubin <no.email@nospam.invalid> - 2017-04-21 21:55 -0700
Re: real to rational number krishna.myneni@ccreweb.org - 2017-04-22 08:33 -0700
Re: real to rational number Paul Rubin <no.email@nospam.invalid> - 2017-04-22 13:35 -0700
Re: real to rational number The Beez <the.beez.speaks@gmail.com> - 2017-04-24 00:58 -0700
Re: real to rational number minforth@arcor.de - 2017-04-24 01:08 -0700
Re: real to rational number minforth@arcor.de - 2017-04-23 02:28 -0700
Re: real to rational number hughaguilar96@gmail.com - 2017-04-21 18:43 -0700
rationalising reality, was Re: real to rational number Jan Coombs <jenfhaomndgfwutc@murmic.plus.com> - 2017-04-22 10:28 +0100
Re: rationalising reality, was Re: real to rational number Mark Wills <markwills1970@gmail.com> - 2017-04-22 02:33 -0700
Re: real to rational number krishna.myneni@ccreweb.org - 2017-04-20 16:22 -0700
Re: real to rational number hughaguilar96@gmail.com - 2017-04-20 22:02 -0700
Re: real to rational number Julian Fondren <julian.fondren@gmail.com> - 2017-04-21 00:12 -0700
Re: real to rational number "Rudy Velthuis" <newsgroups@rvelthuis.de> - 2017-04-21 09:55 +0000
Re: real to rational number hughaguilar96@gmail.com - 2017-04-25 10:52 -0700
Re: real to rational number "Rudy Velthuis" <newsgroups@rvelthuis.de> - 2017-04-29 03:16 +0000
Re: real to rational number "Rudy Velthuis" <newsgroups@rvelthuis.de> - 2017-04-21 09:52 +0000
Re: real to rational number lehs <skydda.barnen@gmail.com> - 2017-04-21 05:35 -0700
Re: real to rational number hughaguilar96@gmail.com - 2017-04-21 19:05 -0700
Re: real to rational number The Beez <the.beez.speaks@gmail.com> - 2017-04-24 01:14 -0700
Re: real to rational number Cecil Bayona <cbayona@cbayona.com> - 2017-04-24 11:31 -0500
Re: real to rational number The Beez <the.beez.speaks@gmail.com> - 2017-04-25 00:52 -0700
Re: real to rational number hughaguilar96@gmail.com - 2017-04-24 11:43 -0700
Re: real to rational number The Beez <the.beez.speaks@gmail.com> - 2017-04-25 00:35 -0700
Re: real to rational number The Beez <the.beez.speaks@gmail.com> - 2017-04-25 01:09 -0700
Re: real to rational number minforth@arcor.de - 2017-04-26 01:55 -0700
csiph-web