/**  XMsum */
/*A: K McIsaac*/
/*S: University of Western Australia, Nedlands 6009, Australia*/
/*D: March 1987 */
/*K: Sum, series, Double Summation */

/* Transformations on double summations  */

_Sum[Smp] : {Inf,}
SMsum_:Ldist;

/*Put sum in a standard configuration */
SMsum[1] : { \
{Sum[$a    Sum[$e,{$i,0,$n}],{$j,0,$m}] ->Sum[$a    $e,{{$i,0,$n},{$j,0,$m}}],\
 Sum[$a/$b Sum[$e,{$i,0,$n}],{$j,0,$m}] ->Sum[$a/$b $e,{{$i,0,$n},{$j,0,$m}}],\
 Sum[ 1/$b Sum[$e,{$i,0,$n}],{$j,0,$m}] ->Sum[1 /$b $e,{{$i,0,$n},{$j,0,$m}}]},\
 Sum[$exp,{$i,0,$n_=~In[$i,{$j,$m}]}]Sum[$exp1,{$j,0,$m_=~In[$j,{$i,$n}]}] -> \
	      Sum[$exp $exp1,{{$i,0,$n},{$j,0,$m}}]}


/*: Finite to infinite */
SMsum[2,1] : Sum[Sum[$exp,{$i,0,$j}],{$j,0,Inf}] --> \
		Sum[S[$exp,$j->$j+$i],{{$i,0,Inf},{$j,0,Inf}}]

/*: Finite to infinite */
SMsum[2,2] : Sum[Sum[$exp,{$i,0,Floor[$j/2]}],{$j,0,Inf}] --> \
		Sum[S[$exp,$j->$j+2$i],{{$i,0,Inf},{$j,0,Inf}}]

/* Change infinite to finite sums */
SMsum[3,1] : Sum[Sum[$exp,{$i,0,Inf}],{$j,0,Inf}] --> \
		Sum[S[$exp,$j->$j-$i],{{$i,0,$j},{$j,0,Inf}}]

/* Change infinite to finite sums */
SMsum[3,2] : Sum[Sum[$exp,{$i,0,Inf}],{$j,0,Inf}] --> \
		Sum[S[$exp,$j->$j-2$i],{{$i,0,Floor[$j/2]},{$j,0,Inf}}]

/*Exchange order of summation*/
/*Independant limits*/
SMsum[4] : Sum[$exp,{{$i,0,$n_=~In[$j,$n]},{$j,0,$m}}] -> \
                Sum[$exp,{{$j,0,$m},{$i,0,$n}}]

/*Swap major axies */
SMsum[5] : Sum[$exp,{{$k,0,$t},{$t,0,$n}}] -->\
           Sum[S[$exp,$t->$t+$k,],{{$t,0,$n-$k},{$k,0,$n}}]

/*Rotate axies through 45 Degs */
SMsum[6] : Sum[$exp,{{$k,0,$t},{$t,0,$n}}] -->\
           Sum[S[$exp,$t->$n-($t+$k)/2,$k->($t-$k)/2],{{$k,-$t,$t,2},{$t,0,$n}}]

/*Rotate axies through 45 Degs */
SMsum[7] : Sum[$exp,{{$k,0,$n-$t},{$t,0,$n}}] -->\
              Sum[S[$exp,$t->($t+$k)/2,$k->($t-$k)/2],{{$k,-$t,$t,2},{$t,0,$n}}]


/*E:
SMP 1.5.0   (May 14 1986)
Fri Mar  6 10:35:54 1987


#I[1]::  <XMsum;<XSumM

#I[2]::  <XSumPR;

#I[3]::  Sum[Sum[f[j],{i,0,j}]g[k],{k,0,m}]

	 m         j
	 ---       ---
#O[3]:*  >   (g[k] >   (f[j]))
	 ---       ---
	 k=0       i=0

#I[4]::  S[%,SMsum[1,1]]

	 m    j
	 ---  ---
#O[4]:*  >   (>   (f[j] g[k]))
	 ---  ---
	 k=0  i=0

#I[5]::  Sum[f[j],{i,0,k}]Sum[g[k],{k,0,m}]

	 k          m
	 ---        ---
#O[5]:*  >   (f[j]) >   (g[k])
	 ---        ---
	 i=0        k=0

#I[6]::  S[%,SMsum[1,2]]

	 k          m
	 ---        ---
#O[6]:*  >   (f[j]) >   (g[k])
	 ---        ---
	 i=0        k=0

#I[7]::  Sum[f[j],{i,0,j}]Sum[g[k],{k,0,m}]

	 j          m
	 ---        ---
#O[7]:*  >   (f[j]) >   (g[k])
	 ---        ---
	 i=0        k=0

#I[8]::  S[%,SMsum[1,2]]

	 m    j
	 ---  ---
#O[8]:*  >   (>   (f[j] g[k]))
	 ---  ---
	 k=0  i=0

#I[9]::  S[%,SMsum[4]]

	 j    m
	 ---  ---
#O[9]:*  >   (>   (f[j] g[k]))
	 ---  ---
	 i=0  k=0

#I[10]::  aa : Sum[f[i,j],{{i,0,j},{j,0,m}}]

	  m    j
	  ---  ---
#O[10]:*  >   (>   (f[i,j]))
	  ---  ---
	  j=0  i=0

#I[11]::  S[aa,SMsum[5]]

	  m    -i + m
	  ---  ---
#O[11]:*  >   (>      (f[i,i + j]))
	  ---  ---
	  i=0  j=0

#I[12]::  S[aa,SMsum[6]]

	  m    j
	  ---  ---       -i + j
#O[12]:*  >   (>      (f[------,-i/2 - j/2 + m]))
	  ---  ---         2
	  j=0  i=-j,2

#I[13]::  S[aa,SSumrev]

	  m    -j + m
	  ---  ---
#O[13]:*  >   (>      (f[i,-j + m]))
	  ---  ---
	  j=0  i=0

#I[14]::  S[%,SMsum[7]]

	  m    j
	  ---  ---       -i + j
#O[14]:*  >   (>      (f[------,-i/2 - j/2 + m]))
	  ---  ---         2
	  j=0  i=-j,2

#I[15]::  <end>
*/
