MathGroup Archive 1997

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

Search the Archive

mg7715 Sums vs Map efficiency

  • To: mathgroup at smc.vnet.net
  • Subject: [mg7907] mg7715 Sums vs Map efficiency
  • From: Andre Deprit <Deprit at his.com>
  • Date: Mon, 21 Jul 1997 03:21:59 -0400
  • Organization: Heller Information Services, Inc.
  • Sender: owner-wri-mathgroup at wolfram.com

Mr. Pichon asked for a tensorial version of his program

gm=Table[
    Sum[ A1[[i,j,k]]*
    A2[[i1,k1]]*
    a[[i,i1]]* a[[j,j1]]
   ,{i1,n},{j1,n},{i,n},{j,n}]
   ,{k,n},{k1,n}]//Flatten;

Here is a suggestion.

R = 
  Transpose[
    Map[
      Plus @@ # &,
      Transpose[A2] . 
        Transpose[a] .
          Transpose[A1, {1, 3, 2}] .
            a,
      {2}]]

Note that the Flatten which is wrapping gm has been dropped.
 
On a Macintosh Power 3400-240, for n = 6, the summations for gm 
are executed in about 21 sec while R is calculated in 
about 2.8 sec. As the check

TrueQ[Expand[R] === gm]

reveals, however, the performance improvement is, for the most part, an
illusion.
Indeed, the code

R = 
  Transpose[
    Map[
      Expand[Plus @@ #] &,
      Transpose[A2] . 
        Transpose[a] .
          Transpose[A1, {1, 3, 2}] .
            a,
      {2}]]

takes about 18 sec.


  • Prev by Date: plotting non-numeric data
  • Next by Date: Re: Re: C f-format-like output in Mma
  • Previous by thread: Re: plotting non-numeric data
  • Next by thread: Announcing TMath: A Tcl/C++ Interface to Mathematica