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