9

How to define a Einstein summation convention in Mathematica?

Say, how to let Mathematica know T[i,i] equals T[1,1]+T[2,2]+T[3,3]? How to define the function T[i,j]?

I know there are several Mathematica-abased programs that can do this, but still I want to know how to define my own.

J. M.'s missing motivation
  • 124,525
  • 11
  • 401
  • 574
xinxin guo
  • 1,323
  • 9
  • 11

1 Answers1

10

For a single Function T this is pretty easy:

T[i_, i_] /; ! NumberQ[i] := Sum[T[j, j], {j, 3}]

A quick test gives:

In[7]:= T[i, i]

Out[7]= T[1, 1] + T[2, 2] + T[3, 3]

If you want to always sum over two equal indices for several functions, this might need some extra work though.

einbandi
  • 4,024
  • 1
  • 23
  • 39