Re: Semantics of vector operations

2004-01-26 Thread Uri Guttman
> "JW" == John Williams <[EMAIL PROTECTED]> writes:

  JW> On Fri, 23 Jan 2004, Larry Wall wrote:
  >> Sorry, I was just copying the designers of supercomputers in my
  >> terminology.  So you can really blame Seymour Cray for misappropriating
  >> the term.  On a Cray, "vector processing" is just operations applied
  >> in parallel to two one-dimensional lists.  Unfortunately, I don't
  >> think you'll be able to get an apology from Seymour Cray these days...

  JW> I just want to chime in to support dropping the term "vector".
  JW> There are enough people who speak both math and CS that I have
  JW> noticed a lot of confusion caused by the term, not only in the
  JW> "outer product" vs "inner product" vs what-we-really-mean, but
  JW> also with stopping at the max or min when working with unequal
  JW> length lists.

since the inputs are usually lists, why not call them list-ops?

so >>+<< is list-plus and takes a list (or array ref) on either side and
does a DWIM +. that is, element wise if two lists and a scalar added to
each element if only one list. AFAICT all list ops always generate lists
as a result (reduce is not a list op). 

  JW> I would vote for "element-wise" for a relatively accurate
  JW> description, or "hyper" for short, fun, and
  JW> not-implying-anything-specific description.

and >><< is the listifying op. it converts the op it surrounds into a
list form that will return a list value.

this is analogous to += being an assignment op. the key part is the list
result or the assignment and it is a modification of a regular scalar
op.

uri

-- 
Uri Guttman  --  [EMAIL PROTECTED]   http://www.stemsystems.com
--Perl Consulting, Stem Development, Systems Architecture, Design and Coding-
Search or Offer Perl Jobs    http://jobs.perl.org


Re: Semantics of vector operations

2004-01-26 Thread John Williams
On Fri, 23 Jan 2004, Larry Wall wrote:
> Sorry, I was just copying the designers of supercomputers in my
> terminology.  So you can really blame Seymour Cray for misappropriating
> the term.  On a Cray, "vector processing" is just operations applied
> in parallel to two one-dimensional lists.  Unfortunately, I don't
> think you'll be able to get an apology from Seymour Cray these days...
>
> I really only care about the concept--I don't give a rip about the
> word "vector".  I can let it go at the drop of a hat.  Because of the
> confusion engendered by overloaded use of the term "vector", I've
> recently taken to calling them "distributed" operations instead.
> But that's a mouthful.  Maybe we need to make up a new word.
> But "dwimops" is a bit too general.  Parops, genops, hmm...  Maybe we
> should go back to "hyper ops".
>
> On the other hand, we could teach the mathemeticians not to assume
> that their usage of a word is the only usage.  :-)

I just want to chime in to support dropping the term "vector".  There are
enough people who speak both math and CS that I have noticed a lot of
confusion caused by the term, not only in the "outer product" vs "inner
product" vs what-we-really-mean, but also with stopping at the max or min
when working with unequal length lists.

I would vote for "element-wise" for a relatively accurate description, or
"hyper" for short, fun, and not-implying-anything-specific description.

I did a quick survey of a few vector math packages to find some
math-friendly terms.  The operations are usually described as being done
"element by element".  Matlab uses the term "array" operator, but that may
be overused in perl.  Octave says "element by element".  Mathematica uses
the term "element-wise".  Template Numerical Toolkit used both: "Array
(element-wise)".

~ John Williams