Fast arrays



Well, a "fast array" as created when use_fast_arrays=true is actually
a Lisp hash table, right? The "fast array" stuff is a replacement for
the usual Maxima undeclared array which uses its own hashing scheme.

I'm in favor of nuking Maxima's hashing scheme and using Lisp hash tables
in Maxima undeclared arrays (keeping the hash table in a property,
as it is now, not storing the hash table in the value cell).

As to the question of whether or not Lisp arrays and hash tables
should be stored in the value cell or in a property,
I can see advantages to doing it either way.
I think we could have a worthwhile discussion about it.

Given the bugs in the existing implementation of fast arrays,
we could probably nuke the existing fast array code.
Hash tables in the value cell could come back later,
in a non-buggy manner.

best,

Robert Dodier

On 4/28/11, Dieter Kaiser <drdieterkaiser at web.de> wrote:
> We have two open bug reports related to "fast arrays":
>
> Bug ID:  903145 - make_array arrays not well integrated
> Bug ID: 1714200 - use_fast_arrays = lots of bugs
>
> The last time, I have committed some code to get "fast arrays" to work
> as expected. MAKE_ARRAY creates arrays of the type fixnum, flonum,and
> hashed. The type functional is working as expected and the display of
> these arrays is more consistent. The function ARRAY creates "fast
> arrays" of the types fixnum, flonum, and hashed, if the option variable
> USE_FAST_ARRAYS is true. Furthermore, the functions ARRAYINFO and
> LISTARRAY work for all types of "fast arrays".
>
> Because "fast arrays" are Lisp arrays in the value cell of a symbol,
> this type of arrays is not suited for symbolic calculations. Therefore,
> I think, we should not try to integrate this type of arrays better in
> Maxima. We should emphasize in the documentation the point, that "fast
> arrays" are not suitable for symbolic calculations and close the open
> bug reports as "won't fix".
>
> Furthermore, I would like to suggest to cut out the option variable
> USE_FAST_ARRAYS. This option variable breaks Maximas facilities to work
> symbolically with arrays. The only way to generate "fast arrays" should
> be the function MAKE_ARRAY.
>
> At last, I would like to suggest to cut out the type FUNCTIONAL for
> "fast arrays" and to simplify the code accordingly. I do not see a
> benefit of this functionality, but it makes the code more complicated.
>
> Dieter Kaiser
>
>
> _______________________________________________
> Maxima mailing list
> Maxima at math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima
>