I noticed, coming back from a short vacation, that I did not paste the final
version of involute2; here it is:

   lr'involute2'
([ $ /:@(+/\@(,@(] {. |:@((1 0 + [EMAIL PROTECTED]@|.)@[)) # +:@] $ (, -)@(1 , 
{:@[))))
<./

The relative performance is not affected:

   st'involute0 400 600'
6302784 0.0354399791
   st'involute1 400 600'
4195328 0.0379573382
   st'involute2 400 600'
3155008 0.034524779

> [EMAIL PROTECTED] On Behalf Of Jose Mario Quintana
>    lr'lr'
> 5!:5@<
> 
> 
> Eesuk's explicit generalization of a classic solution:
> 
>    lr'involute0'
> 3 : 0
>  t=.<./'M N'=.y
>  p=.,t{.|:(>:i.-N),:i.-M
>  d=.(+:t)$(,-)1,N
>  y$/:+/\p#d
> )
> 
> Eesuk's tacit version:
> 
>    lr'involute1'
> $ /:@(+/\)@(,@(<./ {. |:@(1 0 + [EMAIL PROTECTED]@|.)) # +:@<./ $ (, -)@(1 , 
> {:))
> 
> A slight variation:
> 
>    lr'involute2'
> ([ $ /:@(+/\@(,@(] {. |:@((1 0 + [EMAIL PROTECTED]@|.)@[)) # +:@] $ (, -)@(1 
> , {:@[))))
> {.
> 
>    lr'st'
> 7!:2 , 6!:2
> 
>    st'involute0 400 600'
> 6302784 0.025494581
>    st'involute1 400 600'
> 4195328 0.0252504159
>    st'involute2 400 600'
> 3155008 0.0255353683
> 



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

Reply via email to