My timings were carried out on an implementation
in C of Henry Rich's description in J of FFT, so it is 
about APL and J!

http://www.jsoftware.com/jwiki/Essays/FFT
  Henry Rich's work

http://dfns.dyalog.com/n_xtimes.htm
  translation of above into dfns in Dyalog APL

An interesting note:  The dfn works with an array 
with shape r⍴2 (r$2).  (The function "cube".)  
Dyalog APL limits arrays to a maximum rank of 15, 
so the dfn can only do multiplications where the 
resulting product has at most 32768 digits.  
The dfn can be modified to remove this limitation, 
but it'd be more complicated.  (The C implementation 
does not have this limitation.)

I will indeed talk about this and other related things
on July 29.



----- Original Message -----
From: Mike Day <[email protected]>
Date: Thursday, July 7, 2011 3:38
Subject: Re: [Jprogramming] Large numbers
To: Programming forum <[email protected]>

> NB - Sorry, forum, this is more about APL than J !
> 
> Roger,  presumably you were using the rational arithmetic
> offered in the dfns workspace but where is the FFT multiply?
> Is there a native function for it?
> 
> I see you're talking at the British APL Association meeting in
> London on the 29th about rational numbers in Dyalog APL.
> Perhaps you can discuss this example there.
> Looks interesting ......
> 
> Thanks
> 
> Mike
> 
> On 06/07/2011 11:57 PM, Roger Hui wrote:
> > I computed t←1+28433×2*7830457r1 in the new
> > rational number facility in Dyalog APL, which does
> > have an FFT multiply, and it took 8.86 seconds.
> > As a matter of interest:
> >
> >        t
> > 7.772839072E2357206
> >
> > Calibration of my machine:
> >
> >     timer '+/1+^.i.1e6'
> > 0.121769
> >
> >
> >
> > ----- Original Message -----
> > From: Devon McCormick<[email protected]>
> > Date: Wednesday, July 6, 2011 15:30
> > Subject: Re: [Jprogramming] Large numbers
> > To: Programming forum<[email protected]>
> >
> >> This took 0:46:37 in J and 0:53:28 in bc on my XP machine. 
> >> However, when I
> >> split the calculation into pieces, it was finished in less than
> >> 15 minutes.
> >>
> >> I ran the following two scripts simultaneously, using "fork"
> >> (which took
> >> about six minutes), then loaded the results and made the final
> >> calculation:   load&.>'partial1.ijs';'partial2.ijs'
> >> +++
> >> +++
> >>     6!:2 'ans0=. 1+28433*partial1*partial2'
> >> 518.91352
> >>     10{.":ans0
> >> 7772839072
> >>     #":ans0
> >> 2357207
> >>
> >> The results above were produced by these two scripts:
> >>
> >> NB.* large1.ijs: portion of large calculation.
> >> ans1=. 2x^3915228
> >> ('partial1=: ','x',~,":ans1) 1!:2<'partial1.ijs'
> >> 2!:55''
> >>
> >> NB.* large2.ijs: portion of large calculation.
> >> ans2=. 2x^3915229
> >> ('partial2=: ','x',~,":ans2) 1!:2<'partial2.ijs'
> >> 2!:55''
> >>
> >>
> >> On Wed, Jul 6, 2011 at 3:19 PM, Tracy Harms
> >> <[email protected]>  wrote:
> >>
> >>> Yes, that makes more sense to me, too, with a bit more thought.
> >>>
> >>>
> >>> On Wed, Jul 6, 2011 at 1:33 PM, Raul Miller
> >> <[email protected]>  wrote:
> >>>> Mine is:
> >>>>    1 + 28433 * 2 ^ 7830457x

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to