Not quite the same due to (other) rounding errors when the interval of
the rising and/or falling part of the trapezoid becomes large enough.
trap172=: 4 : 0
'lz dr' =. 0 >. x (-&{.,-~&{.) y
(#y){. dr}. (lz$0), }:+/\0,(#(%...@{.,0,-...@%@{:)) 2 -~/\ x
)
The last one should be zero, so I drop it:
+/\0,(#(%...@{.,0,-...@%@{:)) 2 -~/\ 2 6 8 11
0 0.25 0.5 0.75 1 1 1 0.6666666667 0.3333333333 1.110223025e_16
2 6 8 10 (trap-:trap172) i.11
1
20 60 80 180 (trap-:trap172) i.1e3
1
but:
20 60 80 190 (trap-:trap172) i.1e3
0
--
=@@i
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm