a worthy read, thanks I think I fell in love with J in part due to its notationally pleasant guise There are so many debates in notation. I personally prefer τ over π but I’m okay with o.1 and 1p1 meaning πª (I’d like to have 1t1 at my disposal); and I’m unsure about the Triangle of Power but I think it’s worth considering, at least in education; etc. etc.
As for parethesesº, I’m amoung those trying to avoid paren-noise as much as possible (in tex, for example, I build mostly commands taking single letters, symbols or commands as input so I may omit braces – but I agree this can render texts unreadable if applied excessively). This personal taste notwithstanding, I do appreciate your aesthetics-based plea for expressions like (x>0)-(x<0), but I’d rather say x (> - <) 0 instead. (DRY principle) And I forgot to mention I also think 3. is another important argument. When I taught J to pupils recently, they were overwhelmed by the way this actually is more readable and intuitive, e. g. append =: , product_of_items =: */ append_its_product =: append product_of_items when I had been talking about forks. ª now we’re back with this thread’s topic – in some way º in German, “Klammern” are any of ()[]{} Am 22.12.20 um 22:00 schrieb Roger Hui: > May I suggest that you read Conventions Governing Order of Evaluation > <https://www.jsoftware.com/papers/EvalOrder.htm> [Iverson 1966]. > > > On Tue, Dec 22, 2020 at 12:46 PM Hauke Rehr <hauke.r...@uni-jena.de> wrote: > >> IMO the value of right-to-left data flow is >> that it reflects the way math notation works. >> operatorD operatorC operatorB operatorA data >> is “evaluated” from right to left. >> -/ I used to consider merely a convenience. >> Having read Roger’s answers, I guess I might >> have been wrong. >> >> !warning: opinions/ranting ahead! >> Anyone objecting against this doesn’t know >> or doesn’t like maths. >> Sadly, even methematicians often don’t know >> their grammar, writing incomprehensible nonsense >> like (ℚ is dense in ℝ) >> ∃q∈ℚ: d(q,r)<ε ∀r∈ℝ, ε>0 >> instead of (my preferred way) >> ∀(r,R)∈ℝ²∩<: ∃q∈ℚ: ((r,q),(q,R))∈<² >> One might argue for “r<q<R” to be an okay alternative >> for the part after the last colon. I’d disagree still. >> What would “true<R” or “r<false” mean? >> >> Am 22.12.20 um 19:44 schrieb Devon McCormick: >>> Thanks everyone for the tips! >>> >>> Bob - your suggestions still stalls: >>> 20j18":%12x*-/chudSeriesa i.2 >>> 3.141592653589788641 >>> 20j18":%12x*-/chudSeriesa i.3 >>> 3.141592653589788641 >>> (Should be >>> 3.14159265358979323846... >>> as we all know :) ) >>> >>> Roger's suggestion will take me longer to translate. >>> >>> I got into this diversion from thinking about the array languages FAQ I >>> mentioned in the KEI Centenary discussion last Thursday. One of the >> first >>> objections a lot of people have is the right-to-left order of evaluation >>> and I wanted a good illustration of how this gives you alternating sum >> with >>> -/ . I found it discouraging to read a recent missive from Niklaus >> Wirth >>> where he takes a jab at this useful simplification as an example of an >>> unwarranted complication. It's sad that an eminent luminary like this >> has >>> failed to grasp, after all these years, how useful this convention is. >>> >>> The Chudnovsky formula is a good illustration because it includes a >> "_1^k" >>> term to force the alternating sum. >>> >>> >>> >>> >>> On Tue, Dec 22, 2020 at 12:56 PM Roger Hui <rogerhui.can...@gmail.com> >>> wrote: >>> >>>> In the J source, file vx.c, function jtxpi(), you find an >> implementation of >>>> the Chudnovsky algorithm using extended precision arithmetic. It is in >> C >>>> but it should not be too hard to figure out the J equivalent. >>>> >>>> static XF1(jtxpi){A e;B p;I i,n,n1,sk;X a,b,c,d,*ev,k,f,m,q,s,s0,t; >>>> RZ(w); >>>> if(!XDIG(w))R xzero; >>>> ASSERT(jt->xmode!=XMEXACT,EVDOMAIN); >>>> RZ(a=xc(545140134L)); >>>> RZ(b=XCUBE(xc(640320L))); >>>> RZ(c=xc(13591409L)); >>>> RZ(d=xplus(xc(541681608L),xtymes(xc(10L),xc(600000000L)))); >>>> n1=(13+AN(w)*XBASEN)/14; n=1+n1; >>>> RZ(e=piev(n,b)); ev=XAV(e); m=ev[n1]; >>>> f=xzero; s0=xone; sk=1; >>>> for(i=p=0;;++i,p=!p){ >>>> s=xtymes(s0,xplus(c,xtymes(a,xc(i)))); >>>> t=xdiv(xtymes(s,m),ev[i],XMEXACT); >>>> f=p?xminus(f,t):xplus(f,t); >>>> if(i==n1)break; >>>> DO(6, s0=xtymes(s0,xc(sk++));); RE(s0); /* s0 = ! 6*i */ >>>> } >>>> f=xtymes(d,f); >>>> q=xpow(xc(10L),xc(14*n1)); >>>> k=xtymes(xtymes(a,m),xsqrt(xtymes(b,xsq(q)))); >>>> R xdiv(xtymes(k,w),xtymes(f,q),jt->xmode); >>>> } /* Chudnovsky Bros. */ >>>> >>>> >>>> On Tue, Dec 22, 2020 at 9:30 AM Devon McCormick <devon...@gmail.com> >>>> wrote: >>>> >>>>> The Chudnovsky algorithm - >>>>> https://en.wikipedia.org/wiki/Chudnovsky_algorithm - is supposed to >> have >>>>> the fastest convergence for pi (or 1/pi, to be exact). I had tried >> this >>>>> one which is OK but only seems to add one digit for each power of 10: >>>>> 6!:2 'pi=. 4*-/%>:+:i. 1e6' >>>>> 0.0145579 >>>>> 20j18":pi >>>>> 3.141591653589793420 >>>>> 6!:2 'pi=. 4*-/%>:+:i. 1e7' >>>>> 0.140673 >>>>> 20j18":pi >>>>> 3.141592553589793280 >>>>> 6!:2 'pi=. 4*-/%>:+:i. 1e8' >>>>> 1.44487 >>>>> 20j18":pi >>>>> 3.141592643589793177 >>>>> 6!:2 'pi=. 4*-/%>:+:i. 1e9' >>>>> 16.7988 >>>>> 20j18":pi >>>>> 3.141592652589793477 >>>>> >>>>> The Chudnovsky series is fast and gives me 15 correct decimal digits >> for >>>>> only 2 iterations but fails to improve after that presumably because of >>>>> floating point limitations: >>>>> 20j18":%12*-/chudSeries i.2 >>>>> 3.141592653589795336 >>>>> 20j18":%12*-/chudSeries i.3 >>>>> 3.141592653589795336 >>>>> 20j18":%12*-/chudSeries i.4 >>>>> 3.141592653589795336 >>>>> chudSeries i.4 >>>>> 0.0265258 4.98422e_16 2.59929e_30 1.45271e_44 >>>>> >>>>> However, when I try to use extended precision, it does not seem to give >>>> me >>>>> extended precision results: >>>>> chudSeries=: 13 : '((!6x*x: y)*13591409x+545140134x*x: y)%(!3x*x: >>>>> y)*(3x^~!x: y)*640320x^3r2+3x*x: y' >>>>> >>>>> I get the same fp values for the "i.4" argument as shown above. Am I >>>> doing >>>>> something wrong or overlooking something? >>>>> >>>>> Thanks, >>>>> >>>>> Devon >>>>> >>>>> -- >>>>> >>>>> 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 >>>> >>> >>> >> >> -- >> ---------------------- >> mail written using NEO >> neo-layout.org >> >> ---------------------------------------------------------------------- >> For information about J forums see http://www.jsoftware.com/forums.htm >> > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > -- ---------------------- mail written using NEO neo-layout.org ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm