Thanks Pascal -
for pointing that out: square root as (a C language double float)
will have a maximum precision of about that number of significant digits.
(I have become rusty - it's been a long time since.)
-M
At 2016-04-16 13:43, you wrote:
0j47": (+`%)/ 1000$1x
1.61803398874989484820458683436563811772030917981 0j35": %: 1r2
0.70710678118654757000000000000000000 The division approach
maintains a rational throughout the expression and so can do
unlimited precision when converting to display. Square root of a
rational is a floating point number that cuts off precision. -----
Original Message ----- From: Martin Kreuzer <[email protected]>
To: [email protected] Sent: Saturday, April 16, 2016 5:07
AM Subject: Re: [Jprogramming] Golden Ratio (sqrt approach) ...
Thanks Devon - I've experimented with extended precision in
different contexts and am able to reproduce your results here
(which use the "continued fraction" approach). Using the "continued
root" approach, and having set print precision to 20 digits (which
seems to be the maximum, as (9!:11 (21)) throws a limit error) I
get (+&%:)/ 0 ,1000#1 1.6180339887498949 which shows less than
20 digits; formatting this line shows where it breaks
off 0j35": 1-~ (+&%:)/ 1000#1x
1.61803398874989490000000000000000000 I then tried (not knowing
whether this makes any sense as the implementation might be the
same in the first place) -- square root defined via the primitive:
rtp=. %: -- square root defined via fractional exponent rtf=.
1r2^~] with the same result: 0j35": (+&rtp)/ 0 ,1000$1x
1.61803398874989490000000000000000000 0j35": (+&rtf)/ 0
,1000$1x 1.61803398874989490000000000000000000 Comparing 9!:10
'' 6 0j35": (+&rtf)/ 0 ,1000$1x
1.61803398874989490000000000000000000 0j35": 1-~(+&rtf)/
1000$1x 1.61803398874989490000000000000000000 0j35": (+`%)/
1000$1x 1.61803398874989484820458683436563812 seems to indicate
that the choice of print precision doesn't effect it. That's where
I got stuck ... -M At 2016-04-16 03:23, you wrote: > (+`%)/10$1
1.625 (+`%)/100$1 1.61803 (+`%)/100$1x >
32951280099r20365011074 0j25":(+`%)/100$1x >
1.6180339887498948482035085 0j25":(+`%)/1000$1x >
1.6180339887498948482045868 0j55":(+`%)/1000$1x >
1.6180339887498948482045868343656381177203091798057628621 >
0j55":(+`%)/2000$1x >
1.6180339887498948482045868343656381177203091798057628621 On Thu, >
Apr 14, 2016 at 7:02 PM, Martin Kreuzer <[email protected]> >
wrote: > Thanks Raul, Kip -- > > (1) Am now comfortable (again) >
with foreign print precision; just for the > record: > > def=. >
6 > ext=. 13 > 9!:10 '' NB. check > 6 > 9!:11
(ext) NB. > set > > 9!:10 '' NB. check > 13 > 9!:11 ]
def NB. > reset > > 9!:10 '' > 6 > > (2) The tacit version
looks pretty > straight forward (and works fine). > > (3) Will
follow up your > ideas/suggestions on "injection" and verb
(cr) -- > fodder for the > weekend perhaps (no chance to stay with
it on a regular > basis > yet, at least there's the habit of
reading through the posts). > > > (4) Meanwhile, looking at your
parameters of the (a cr b) call, I > did this > small modification,
getting rid of the "cleanup" > (1-~): > > ] v=. 0 ,13#1 > 0 1 1
1 1 1 1 1 1 1 1 1 1 > 1 > (+&%:)/ v > 1.618033473928 > > -M > >
At 2016-04-14 21:43, > you wrote: > >> The following is not simpler
but invents a > "continued root" in which >> dyadic root %: plays
the role > dyadic % plays in a continued fraction. >> Here is the
picture of > a "continued root": a1 >
b0 + %: >> b1 + a2 %: >
b2 + a3 >> %: b3 >
+ . >> . > . Verb cr >> below
produces "convergents" which stop with a > "diagonal"
element. The >> basic idea in verb cr belongs to Raul > Miller.
cr =: {.@] , {.@] + [: ([: >> %:`+/ ,)\ [: |: [ ,: }.@] NB. > Usage
a cr b (13#2) cr 0,13#1 NB. The 2 >> means square roots > are
used 0 1 1.414213562 1.553773974 1.598053182 >> 1.611847754 >
1.616121207 1.617442799 1.617851291 1.617977531 1.618016542 >> >
1.618028597 1.618032323 1.618033474 --Kip Murray On Thursday,
April > 14, >> 2016, Raul Miller <[email protected]> wrote: >
One thing > you could >> do is get rid of the intermediate names in
gr: > > > gr=: monad define > >> 1-~ (+&%:)/ y$1 > ) > > And you
might want > to make this tacit, for example: >> > > 13 :'1-~
(+&%:)/ y$1' > > 1 -~ [: +&%:/ 1 $~ ] > > Or, depending on >> your
preferences, you > might want to use induction > rather than
insertion: >> > > > gri=: 1-~(1+%:@])^:([-1:)&1 > > I guess it's
really a matter > of >> what your idea of "elegance" is... > >
Personally, when I am > fiddling with >> small expressions, I like
to set > up a line that > evaluates and then tweak >> the
expression and watch to > make sure > the result does not change.
For >> this example, I'd have lines > > like: > > gr 10 >
1.61798 > >> 1-~(1+%:)^:9]1 > 1.61798 > 13 > :'((+&%:)/ y$1) -
1' 10 > 1.61798 > >> (1-~(1+%:@])^:([-1:)&1) 10 > > 1.61798 > >
(with lots of other lines, >> including some errors, > mixed
in) > > But the precision issue you are seeing >> is really > the
print precision > global parameter. See > >> >
http://www.jsoftware.com/help/dictionary/dx009.htm for how to >
change > >> that. > > I hope this helps. > > -- > Raul > > On
Thu, > Apr 14, 2016 at 3:13 >> PM, Martin Kreuzer
<[email protected] > > <javascript:;>> wrote: > > >> Moving from
continued fraction to > continued square root, I arrived at > >>
this: > > > > NB. > modelling gr=.
rt(1+rt(1+rt(1+rt(1+...)))) > > > > >> gr=. monad > define > > ps=.
+ > > rt=. %: > > v=. y $ 1 > > r=. 1-~ (ps&rt)/ >> > v > >
) > > gr 10 > > 1.61798 > > gr 13 > > 1.61803 > > > > >
Q1: > > >> What would be (more elegant and/or concise) ways to do >
this, especially > >> the > > line with the return value
(r)..? > > > Q2: > > What should I do to >> get higher precision
(more digits) > in the result (and > > still having a >> floating
point number); > does that need a "foreign"..? > > (I'm sure that
I >> have seen > this before, but can't remember where.) > > > >
Thanks > > > -M > > >> > > >
----------------------------------------------------------------------
> >> > > For information about J forums see >> >
http://www.jsoftware.com/forums.htm > >> >
----------------------------------------------------------------------
> > >> For information about J forums see >
http://www.jsoftware.com/forums.htm >> -- Sent from Gmail
Mobile >> >
----------------------------------------------------------------------
> For >> information about J forums see >
http://www.jsoftware.com/forums.htm >> > > >
----------------------------------------------------------------------
> > For information about J forums see >
http://www.jsoftware.com/forums.htm > -- Devon McCormick, CFA >
Quantitative Consultant >
----------------------------------------------------------------------
> For information about J forums see
http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see
http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm