TS improvement using match instead of equal:
fb=: 13 : 'x (y b.) i.256'
ex=: 5 (31 b.) i.256
decode=: 13 : '(([:<.16%~]),.16+16|]) I. 256= +/"1 (y="1 ,/((16+i.16)
fb"0~])"0 i.16)'
decodei =: 13 : '(([:<.16%~]),.16+16|]) I. 1="1 (y-:"1 ,/((16+i.16)
fb"0~])"0 i.16 )'
(decodei ex) -: decode ex
1
ts 'decodei ex'
3.8e_5 1920
ts 'decode ex'
0.00028 134016
a.{~q:9991
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm