 
 
 
 
 
 
Re: Q: implementation of Dot
- To: mathgroup at smc.vnet.net
- Subject: [mg7965] Re: Q: implementation of Dot
- From: murray at math.umass.edu (Murray Eisenberg)
- Date: Wed, 30 Jul 1997 02:37:29 -0400
- Organization: University of Massachusetts, Amherst
- Sender: owner-wri-mathgroup at wolfram.com
Andreas Unterkircher (unterkir at ifu.bepr.ethz.ch) wrote:
:Now I try
: In[4]= m = {{},{}};
:  
: In[5]= mm = {};
: In[6]= m . mm
: Out[6]= {0}
: I would have expected that either the operation m . mm (In[6]) is not
: allowed at all or that Out[6] gives something like "{,}". I would
: appreciate it very much if anybody can explain this behaviour to me. 
I don't fully understand the result either -- one of many cases where
I would like to see precise definitions of Mathematica operations.
But consider the following:
In[1]= {} . {}
Out[1]= 0
In[2]= {{}} . {}
Out[2]= {0}
I can understand In/Out[1] clearly (it's just like in APL and some
other array-processing languages): the sum of an empty list has to be
0 (in order for associativity of addition to hold in full generality).
Then In/Out[2] should follow by doing {}.{}, giving 0, then putting
that into a one-element list {0} due to the nested list that is the
left argument of Dot here.
But I'd still like to see a definitive answer to the result for
{{},{}}.{}.  I'd expect to get {0,0}.  After all, {{2},{3}}.{4} gives
{8, 12}, since the first argument is, in effect, a 2-row matrix.
Likewise, {{},{}} could be interpreted as a 2-row matrix each of whose
rows has length 0, and so a 2-element list ought to result from
dotting that with a flat list.
Is there some convention about _tensor_ products at work here?
--
  Murray Eisenberg                       Internet:  murray at math.umass.edu
  Mathematics & Statistics Dept.            Voice:  413-545-2859 (W)
  University of Massachusetts                       413-549-1020 (H)
  Amherst, MA 01003                           Fax:  413-545-1801

