[PD-dev] list object operators
matju at artengine.ca
Sat Feb 18 19:05:25 CET 2006
On Tue, 10 Jan 2006, Frank Barknecht wrote:
> Regarding your suggestion of speeding up list-math: What about extending
> [expr] to handle lists as well? Maybe a new variable could deal with
> this like $l1, $l2, ..., so that things like this would be possible:
> [expr $f1 * $l1]. I didn't think too much about the best syntax for
> list-expr yet, like when should the result be a list,
[expr~]'s $v1,$v2,... could be a source of inspiration (and of
Else, GridFlow and VASP and iemmatrix are other possible sources.
> when should it be a scalar, how to handle the two kinds of
> multiplication possible with [expr $l1 * $l2] (inner product with a
> scalar result vs. element-wise product to a list),
There are more kinds of products than just that. with lists of 3 elements
you may have the wedge-product (partial determinant). there are a bunch of
other "inner" products according to Hilbert's inner product axioms.
Basically a product could be any operator $ for which
(a*b)$c = a*(b$c) = b$(a*c)
where * is the product-by-scalar. That's damn wide. In math books, which
operator is used depends on context. Me, I prefer saying * for pointwise,
and saying #inner for the dot product. Matlab4 prefers saying .* for
pointwise and * for the dot product.
Miller, with a phd in math, prolly has a few ideas about it himself, if he
bothers to speak them...
> what to do with "mixed" lists that also include symbols and gpointers
> etc., but the basic concept looks very useful to me.
That's a damn good question. The most forward-compatible thing you can
do is abort on everything you don't know how to handle. If stuff was
accepted loosely, people would start depending on that behaviour, and
later introducing a proper behaviour would be impossible.
_ _ __ ___ _____ ________ _____________ _____________________ ...
| Mathieu Bouchard - tél:+1.514.383.3801 - http://artengine.ca/matju
| Freelance Digital Arts Engineer, Montréal QC Canada
More information about the Pd-dev