MathGroup Archive 2011

[Date Index] [Thread Index] [Author Index]

Search the Archive

Preventing unwanted threading by Inner

  • To: mathgroup at smc.vnet.net
  • Subject: [mg123428] Preventing unwanted threading by Inner
  • From: Chris Young <cy56 at comcast.net>
  • Date: Wed, 7 Dec 2011 06:13:39 -0500 (EST)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com

I'm trying to prevent Inner from expanding my points into coordinates:

In[283]:= Inner[Times, {a, b, c}, {{A, α}, {B, β}, {C, Ï?}}, Plus]
Out[283]= {a A + b B + c C, a α + b β + c Ï?}

As I understand it, this has to do with Times being Listable:

In[304]:= Attributes[Times]
Out[304]= {Flat, Listable, NumericFunction, OneIdentity, Orderless, Protected}

But clearing the listable attribute doesn't do anything:

Unprotect[Times];
ClearAttributes[Times, Listable];
myInnnerProd = Inner[Times, {a, b, c}, {{A, α}, {B, β}, {C, Ï?}}, Plus];
SetAttributes[Times, Listable];
Protect[Times];

In[315]:= myInnnerProd

Out[315]= {a A + b B + c C, a α + b β + c Ï?}

In addition, I have to resort to using Hold on the points. Not sure 
why; I would have thought that making Times non-listable would have 
been enough.

In[343]:=
Unprotect[Times];
ClearAttributes[Times, Listable];
myInnerProd = 
  Inner[Times, {a, b, c}, Hold /@ {{A, α}, {B, β}, {C, Ï?}}, Plus];
myInnnerProd = ReleaseHold[myInnerProd]
SetAttributes[Times, Listable];
Protect[Times];


Out[346]= a {A, α} + b {B, β} + c {C, Ï?}




  • Prev by Date: Re: reducing the size of a Manipulate slider control, problem when using ImageSize
  • Next by Date: Re: The orde of product
  • Previous by thread: Re: 100 rows and 100 columns random matrix
  • Next by thread: Re: Preventing unwanted threading by Inner