(T)ouch(e) !
Me culpa. I hadn't realised - or checked - that
integer quotient % integer divisor
is always floating.
But why?
For example, Dyalog APL retains an integer type for
similar arguments:
#DR 17 @ short integer
83
#DR 548590 556138 1375147 @ long int
323
#DR 548590 556138 1375147 % 17
323
mike
Oleg Kobchenko wrote:
Well, that's not exactly an improvement
ts'x <[EMAIL PROTECTED] 17'
0.19952 2.09723e7
ts'x (([ - |~) % ]) 17'
0.0545567 1.25841e7
ts'x % 17'
0.0182892 8.38925e6
ts'_4 (33 b.) x'
0.00982667 4.1952e6
datatype x (([ - |~) % ]) 17
floating
Maybe a method that represents interger
division in terms of binary shifts.
Mike Day mike_liz.day at tiscali.co.uk wrote Sat Oct 21 16:18:53 HKT 2006
FWIW, pending J6.02, this offers some improvement in
time and space:
NB. in J 6.0.1
NB. reduce x to an integer multiple of y before divide
NB. does it work for -ve & +ve x
(x-300000) (<[EMAIL PROTECTED] -: ([ - |~) % ]) 17
1
ts'x <[EMAIL PROTECTED] 17'
0.210536 2.09723e7
ts'x (([ - |~) % ]) 17'
0.0587469 1.25841e7
I expect there's a better way still, and still in 6.01 !
Mike
Roger Hui wrote:
Preliminary benchmarks:
ts=: 6!:2 , 7!:[EMAIL PROTECTED]
x=: 1e6 [EMAIL PROTECTED] 2e6
ts 'Expression'
Expression J6.02x J6.01 Factor
x <[EMAIL PROTECTED] 512 0.0054822 4.19507e6 0.136416 2.09723e7 23.80 5.00
x <[EMAIL PROTECTED] 17 0.0213073 4.19507e6 0.154837 2.09723e7 7.27 5.00
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm