Didn't IBM's APL have a special data representation for iota? A
special representation consisting of a starting number, an increment
and a length. Able to handle arithmetic applied to this representation
quite efficiently.

On Fri, Dec 18, 2009 at 7:42 PM, Oleg Kobchenko <[email protected]> wrote:
> Frankly I don't see much merit if there were such optimization.
> Are there use cases when it is critical?
> Below aren't plausible. You can also have
>
>  100#2
>  2*i.100
>
> etc
>
>
> Oleg
>
>
> On Dec 18, 2009, at 9:07 PM, Henry Rich <[email protected]> wrote:
>
>   100000 ts 'i. 100'
> 2.82902e_6 1152
>   100000 ts 'i. 400'
> 3.51904e_6 2688
>   100000 ts 'i. 800'
> 4.16341e_6 4736
>
>
> Yes, it's fast; but it appears that monad i. actually creates an array.
>
> Wouldn't it be better to have a single copy of i. 16384 (or so), with
> data headers of all the sizes from 0 to 16384 pre-built, so that
> executing i. merely pointed to the correct header?  If you started the
> use count of each of the canned headers at 1, there would be no
> possibility of a primitive's modifying the shared i. vector.
>
> This optimization seems obvious, so I await enlightenment from someone
> who knows how the interpreter works.
>
> Henry Rich
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>
>
>
>
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to