Latest version below; also in
http://www.jsoftware.com/jwiki/Essays/Collatz_Conjecture
I was able to squeeze out another 5 to 15% by 
speeding up m}y and 2|y in J6.02.

                  J6.02                   J6.01
cn  1e4     0.221625 1.47264e5    0.210931  1.47264e5
cn  1e6    21.3352   8.41882e6   22.3081    8.41882e6
cnv 1e4     0.022449 6.75840e5    0.0241371 7.00416e5
cnv 1e6     3.39937  4.98115e7    3.94429   5.13843e7

3 : '<.(2|y)} 0 1 + 0.5 3 */y'

cnv=: 3 : 0
 j=.i=. 3 + i.@<.&.-: y-2
 f=. 2^m=. i. <.@(2&^.)&.<: y
 m=. >:m
 C=. 0 ,~ m f} y{._1 
 while. #i do.
  j=. collatzv j
  b=. 0<(j<.y){C
  p=. , f */  b#i
  q=. , m +/ (b#j){C 
  m=. >:m
  i=. (-.b)#i
  j=. (-.b)#j
  b=. y>p
  C=. (b#q) (b#p)}C
 end.
 }:C
)
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to