Re: Semantics of vector operations
> "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
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