\begin{patch}{CartesianTensorXmpPagePatch1} \begin{paste}{CartesianTensorXmpPageFull1}{CartesianTensorXmpPageEmpty1} \pastebutton{CartesianTensorXmpPageFull1}{\hidepaste} \tab{5}\spadcommand{CT := CARTEN(i0 := 1, 2, Integer)\bound{CT i0 }} \indentrel{3}\begin{verbatim} (1) CartesianTensor(1,2,Integer) Type: Domain \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty1} \begin{paste}{CartesianTensorXmpPageEmpty1}{CartesianTensorXmpPagePatch1} \pastebutton{CartesianTensorXmpPageEmpty1}{\showpaste} \tab{5}\spadcommand{CT := CARTEN(i0 := 1, 2, Integer)\bound{CT i0 }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch2} \begin{paste}{CartesianTensorXmpPageFull2}{CartesianTensorXmpPageEmpty2} \pastebutton{CartesianTensorXmpPageFull2}{\hidepaste} \tab{5}\spadcommand{t0: CT := 8\free{CT }\bound{t0 }} \indentrel{3}\begin{verbatim} (2) 8 Type: CartesianTensor(1,2,Integer) \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty2} \begin{paste}{CartesianTensorXmpPageEmpty2}{CartesianTensorXmpPagePatch2} \pastebutton{CartesianTensorXmpPageEmpty2}{\showpaste} \tab{5}\spadcommand{t0: CT := 8\free{CT }\bound{t0 }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch3} \begin{paste}{CartesianTensorXmpPageFull3}{CartesianTensorXmpPageEmpty3} \pastebutton{CartesianTensorXmpPageFull3}{\hidepaste} \tab{5}\spadcommand{rank t0\free{t0 }} \indentrel{3}\begin{verbatim} (3) 0 Type: NonNegativeInteger \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty3} \begin{paste}{CartesianTensorXmpPageEmpty3}{CartesianTensorXmpPagePatch3} \pastebutton{CartesianTensorXmpPageEmpty3}{\showpaste} \tab{5}\spadcommand{rank t0\free{t0 }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch4} \begin{paste}{CartesianTensorXmpPageFull4}{CartesianTensorXmpPageEmpty4} \pastebutton{CartesianTensorXmpPageFull4}{\hidepaste} \tab{5}\spadcommand{v: DirectProduct(2, Integer) := directProduct [3,4]\bound{v }} \indentrel{3}\begin{verbatim} (4) [3,4] Type: DirectProduct(2,Integer) \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty4} \begin{paste}{CartesianTensorXmpPageEmpty4}{CartesianTensorXmpPagePatch4} \pastebutton{CartesianTensorXmpPageEmpty4}{\showpaste} \tab{5}\spadcommand{v: DirectProduct(2, Integer) := directProduct [3,4]\bound{v }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch5} \begin{paste}{CartesianTensorXmpPageFull5}{CartesianTensorXmpPageEmpty5} \pastebutton{CartesianTensorXmpPageFull5}{\hidepaste} \tab{5}\spadcommand{Tv: CT := v\free{v CT }\bound{Tv }} \indentrel{3}\begin{verbatim} (5) [3,4] Type: CartesianTensor(1,2,Integer) \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty5} \begin{paste}{CartesianTensorXmpPageEmpty5}{CartesianTensorXmpPagePatch5} \pastebutton{CartesianTensorXmpPageEmpty5}{\showpaste} \tab{5}\spadcommand{Tv: CT := v\free{v CT }\bound{Tv }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch6} \begin{paste}{CartesianTensorXmpPageFull6}{CartesianTensorXmpPageEmpty6} \pastebutton{CartesianTensorXmpPageFull6}{\hidepaste} \tab{5}\spadcommand{m: SquareMatrix(2, Integer) := matrix [[1,2],[4,5]]\bound{m }} \indentrel{3}\begin{verbatim} Ú1 2¿ (6) ³ ³ À4 5Ù Type: SquareMatrix(2,Integer) \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty6} \begin{paste}{CartesianTensorXmpPageEmpty6}{CartesianTensorXmpPagePatch6} \pastebutton{CartesianTensorXmpPageEmpty6}{\showpaste} \tab{5}\spadcommand{m: SquareMatrix(2, Integer) := matrix [[1,2],[4,5]]\bound{m }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch7} \begin{paste}{CartesianTensorXmpPageFull7}{CartesianTensorXmpPageEmpty7} \pastebutton{CartesianTensorXmpPageFull7}{\hidepaste} \tab{5}\spadcommand{Tm: CT := m\bound{Tm }\free{CT m }} \indentrel{3}\begin{verbatim} Ú1 2¿ (7) ³ ³ À4 5Ù Type: CartesianTensor(1,2,Integer) \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty7} \begin{paste}{CartesianTensorXmpPageEmpty7}{CartesianTensorXmpPagePatch7} \pastebutton{CartesianTensorXmpPageEmpty7}{\showpaste} \tab{5}\spadcommand{Tm: CT := m\bound{Tm }\free{CT m }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch8} \begin{paste}{CartesianTensorXmpPageFull8}{CartesianTensorXmpPageEmpty8} \pastebutton{CartesianTensorXmpPageFull8}{\hidepaste} \tab{5}\spadcommand{n: SquareMatrix(2, Integer) := matrix [[2,3],[0,1]]\bound{n }} \indentrel{3}\begin{verbatim} Ú2 3¿ (8) ³ ³ À0 1Ù Type: SquareMatrix(2,Integer) \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty8} \begin{paste}{CartesianTensorXmpPageEmpty8}{CartesianTensorXmpPagePatch8} \pastebutton{CartesianTensorXmpPageEmpty8}{\showpaste} \tab{5}\spadcommand{n: SquareMatrix(2, Integer) := matrix [[2,3],[0,1]]\bound{n }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch9} \begin{paste}{CartesianTensorXmpPageFull9}{CartesianTensorXmpPageEmpty9} \pastebutton{CartesianTensorXmpPageFull9}{\hidepaste} \tab{5}\spadcommand{Tn: CT := n\bound{Tn }\free{CT n }} \indentrel{3}\begin{verbatim} Ú2 3¿ (9) ³ ³ À0 1Ù Type: CartesianTensor(1,2,Integer) \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty9} \begin{paste}{CartesianTensorXmpPageEmpty9}{CartesianTensorXmpPagePatch9} \pastebutton{CartesianTensorXmpPageEmpty9}{\showpaste} \tab{5}\spadcommand{Tn: CT := n\bound{Tn }\free{CT n }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch10} \begin{paste}{CartesianTensorXmpPageFull10}{CartesianTensorXmpPageEmpty10} \pastebutton{CartesianTensorXmpPageFull10}{\hidepaste} \tab{5}\spadcommand{t1: CT := [2, 3]\free{CT }\bound{t1 }} \indentrel{3}\begin{verbatim} (10) [2,3] Type: CartesianTensor(1,2,Integer) \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty10} \begin{paste}{CartesianTensorXmpPageEmpty10}{CartesianTensorXmpPagePatch10} \pastebutton{CartesianTensorXmpPageEmpty10}{\showpaste} \tab{5}\spadcommand{t1: CT := [2, 3]\free{CT }\bound{t1 }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch11} \begin{paste}{CartesianTensorXmpPageFull11}{CartesianTensorXmpPageEmpty11} \pastebutton{CartesianTensorXmpPageFull11}{\hidepaste} \tab{5}\spadcommand{rank t1\free{t1 }} \indentrel{3}\begin{verbatim} (11) 1 Type: PositiveInteger \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty11} \begin{paste}{CartesianTensorXmpPageEmpty11}{CartesianTensorXmpPagePatch11} \pastebutton{CartesianTensorXmpPageEmpty11}{\showpaste} \tab{5}\spadcommand{rank t1\free{t1 }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch12} \begin{paste}{CartesianTensorXmpPageFull12}{CartesianTensorXmpPageEmpty12} \pastebutton{CartesianTensorXmpPageFull12}{\hidepaste} \tab{5}\spadcommand{t2: CT := [t1, t1]\free{CT t1 }\bound{t2 }} \indentrel{3}\begin{verbatim} Ú2 3¿ (12) ³ ³ À2 3Ù Type: CartesianTensor(1,2,Integer) \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty12} \begin{paste}{CartesianTensorXmpPageEmpty12}{CartesianTensorXmpPagePatch12} \pastebutton{CartesianTensorXmpPageEmpty12}{\showpaste} \tab{5}\spadcommand{t2: CT := [t1, t1]\free{CT t1 }\bound{t2 }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch13} \begin{paste}{CartesianTensorXmpPageFull13}{CartesianTensorXmpPageEmpty13} \pastebutton{CartesianTensorXmpPageFull13}{\hidepaste} \tab{5}\spadcommand{t3: CT := [t2, t2]\free{CT t2 }\bound{t3 }} \indentrel{3}\begin{verbatim} Ú2 3¿ Ú2 3¿ (13) [³ ³,³ ³] À2 3Ù À2 3Ù Type: CartesianTensor(1,2,Integer) \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty13} \begin{paste}{CartesianTensorXmpPageEmpty13}{CartesianTensorXmpPagePatch13} \pastebutton{CartesianTensorXmpPageEmpty13}{\showpaste} \tab{5}\spadcommand{t3: CT := [t2, t2]\free{CT t2 }\bound{t3 }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch14} \begin{paste}{CartesianTensorXmpPageFull14}{CartesianTensorXmpPageEmpty14} \pastebutton{CartesianTensorXmpPageFull14}{\hidepaste} \tab{5}\spadcommand{tt: CT := [t3, t3]; tt := [tt, tt]\free{CT t3 }\bound{tt }} \indentrel{3}\begin{verbatim} ÚÚ2 3¿ Ú2 3¿¿ ÚÚ2 3¿ Ú2 3¿¿ ³³ ³ ³ ³³ ³³ ³ ³ ³³ ³À2 3Ù À2 3Ù³ ³À2 3Ù À2 3Ù³ (14) [³ ³,³ ³] ³Ú2 3¿ Ú2 3¿³ ³Ú2 3¿ Ú2 3¿³ ³³ ³ ³ ³³ ³³ ³ ³ ³³ ÀÀ2 3Ù À2 3ÙÙ ÀÀ2 3Ù À2 3ÙÙ Type: CartesianTensor(1,2,Integer) \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty14} \begin{paste}{CartesianTensorXmpPageEmpty14}{CartesianTensorXmpPagePatch14} \pastebutton{CartesianTensorXmpPageEmpty14}{\showpaste} \tab{5}\spadcommand{tt: CT := [t3, t3]; tt := [tt, tt]\free{CT t3 }\bound{tt }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch15} \begin{paste}{CartesianTensorXmpPageFull15}{CartesianTensorXmpPageEmpty15} \pastebutton{CartesianTensorXmpPageFull15}{\hidepaste} \tab{5}\spadcommand{rank tt\free{tt }} \indentrel{3}\begin{verbatim} (15) 5 Type: PositiveInteger \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty15} \begin{paste}{CartesianTensorXmpPageEmpty15}{CartesianTensorXmpPagePatch15} \pastebutton{CartesianTensorXmpPageEmpty15}{\showpaste} \tab{5}\spadcommand{rank tt\free{tt }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch16} \begin{paste}{CartesianTensorXmpPageFull16}{CartesianTensorXmpPageEmpty16} \pastebutton{CartesianTensorXmpPageFull16}{\hidepaste} \tab{5}\spadcommand{Tmn := product(Tm, Tn)\free{Tm Tn }\bound{Tmn }} \indentrel{3}\begin{verbatim} ÚÚ2 3¿ Ú4 6¿ ¿ ³³ ³ ³ ³ ³ ³À0 1Ù À0 2Ù ³ (16) ³ ³ ³Ú8 12¿ Ú10 15¿³ ³³ ³ ³ ³³ ÀÀ0 4 Ù À0 5 ÙÙ Type: CartesianTensor(1,2,Integer) \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty16} \begin{paste}{CartesianTensorXmpPageEmpty16}{CartesianTensorXmpPagePatch16} \pastebutton{CartesianTensorXmpPageEmpty16}{\showpaste} \tab{5}\spadcommand{Tmn := product(Tm, Tn)\free{Tm Tn }\bound{Tmn }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch17} \begin{paste}{CartesianTensorXmpPageFull17}{CartesianTensorXmpPageEmpty17} \pastebutton{CartesianTensorXmpPageFull17}{\hidepaste} \tab{5}\spadcommand{Tmv := contract(Tm,2,Tv,1)\free{Tm Tv }\bound{Tmv }} \indentrel{3}\begin{verbatim} (17) [11,32] Type: CartesianTensor(1,2,Integer) \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty17} \begin{paste}{CartesianTensorXmpPageEmpty17}{CartesianTensorXmpPagePatch17} \pastebutton{CartesianTensorXmpPageEmpty17}{\showpaste} \tab{5}\spadcommand{Tmv := contract(Tm,2,Tv,1)\free{Tm Tv }\bound{Tmv }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch18} \begin{paste}{CartesianTensorXmpPageFull18}{CartesianTensorXmpPageEmpty18} \pastebutton{CartesianTensorXmpPageFull18}{\hidepaste} \tab{5}\spadcommand{Tm*Tv\free{Tm Tv }} \indentrel{3}\begin{verbatim} (18) [11,32] Type: CartesianTensor(1,2,Integer) \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty18} \begin{paste}{CartesianTensorXmpPageEmpty18}{CartesianTensorXmpPagePatch18} \pastebutton{CartesianTensorXmpPageEmpty18}{\showpaste} \tab{5}\spadcommand{Tm*Tv\free{Tm Tv }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch19} \begin{paste}{CartesianTensorXmpPageFull19}{CartesianTensorXmpPageEmpty19} \pastebutton{CartesianTensorXmpPageFull19}{\hidepaste} \tab{5}\spadcommand{Tmv = m * v\free{Tmv m v }} \indentrel{3}\begin{verbatim} (19) [11,32]= [11,32] Type: Equation CartesianTensor(1,2,Integer) \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty19} \begin{paste}{CartesianTensorXmpPageEmpty19}{CartesianTensorXmpPagePatch19} \pastebutton{CartesianTensorXmpPageEmpty19}{\showpaste} \tab{5}\spadcommand{Tmv = m * v\free{Tmv m v }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch20} \begin{paste}{CartesianTensorXmpPageFull20}{CartesianTensorXmpPageEmpty20} \pastebutton{CartesianTensorXmpPageFull20}{\hidepaste} \tab{5}\spadcommand{t0()\free{t0 }} \indentrel{3}\begin{verbatim} (20) 8 Type: PositiveInteger \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty20} \begin{paste}{CartesianTensorXmpPageEmpty20}{CartesianTensorXmpPagePatch20} \pastebutton{CartesianTensorXmpPageEmpty20}{\showpaste} \tab{5}\spadcommand{t0()\free{t0 }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch21} \begin{paste}{CartesianTensorXmpPageFull21}{CartesianTensorXmpPageEmpty21} \pastebutton{CartesianTensorXmpPageFull21}{\hidepaste} \tab{5}\spadcommand{t1(1+1)\free{t1 }} \indentrel{3}\begin{verbatim} (21) 3 Type: PositiveInteger \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty21} \begin{paste}{CartesianTensorXmpPageEmpty21}{CartesianTensorXmpPagePatch21} \pastebutton{CartesianTensorXmpPageEmpty21}{\showpaste} \tab{5}\spadcommand{t1(1+1)\free{t1 }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch22} \begin{paste}{CartesianTensorXmpPageFull22}{CartesianTensorXmpPageEmpty22} \pastebutton{CartesianTensorXmpPageFull22}{\hidepaste} \tab{5}\spadcommand{t2(2,1)\free{t2 }} \indentrel{3}\begin{verbatim} (22) 2 Type: PositiveInteger \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty22} \begin{paste}{CartesianTensorXmpPageEmpty22}{CartesianTensorXmpPagePatch22} \pastebutton{CartesianTensorXmpPageEmpty22}{\showpaste} \tab{5}\spadcommand{t2(2,1)\free{t2 }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch23} \begin{paste}{CartesianTensorXmpPageFull23}{CartesianTensorXmpPageEmpty23} \pastebutton{CartesianTensorXmpPageFull23}{\hidepaste} \tab{5}\spadcommand{t3(2,1,2)\free{t3 }} \indentrel{3}\begin{verbatim} (23) 3 Type: PositiveInteger \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty23} \begin{paste}{CartesianTensorXmpPageEmpty23}{CartesianTensorXmpPagePatch23} \pastebutton{CartesianTensorXmpPageEmpty23}{\showpaste} \tab{5}\spadcommand{t3(2,1,2)\free{t3 }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch24} \begin{paste}{CartesianTensorXmpPageFull24}{CartesianTensorXmpPageEmpty24} \pastebutton{CartesianTensorXmpPageFull24}{\hidepaste} \tab{5}\spadcommand{Tmn(2,1,2,1)\free{Tmn }} \indentrel{3}\begin{verbatim} (24) 0 Type: NonNegativeInteger \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty24} \begin{paste}{CartesianTensorXmpPageEmpty24}{CartesianTensorXmpPagePatch24} \pastebutton{CartesianTensorXmpPageEmpty24}{\showpaste} \tab{5}\spadcommand{Tmn(2,1,2,1)\free{Tmn }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch25} \begin{paste}{CartesianTensorXmpPageFull25}{CartesianTensorXmpPageEmpty25} \pastebutton{CartesianTensorXmpPageFull25}{\hidepaste} \tab{5}\spadcommand{t0[]\free{t0 }} \indentrel{3}\begin{verbatim} (25) 8 Type: PositiveInteger \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty25} \begin{paste}{CartesianTensorXmpPageEmpty25}{CartesianTensorXmpPagePatch25} \pastebutton{CartesianTensorXmpPageEmpty25}{\showpaste} \tab{5}\spadcommand{t0[]\free{t0 }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch26} \begin{paste}{CartesianTensorXmpPageFull26}{CartesianTensorXmpPageEmpty26} \pastebutton{CartesianTensorXmpPageFull26}{\hidepaste} \tab{5}\spadcommand{t1[2]\free{t1 }} \indentrel{3}\begin{verbatim} (26) 3 Type: PositiveInteger \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty26} \begin{paste}{CartesianTensorXmpPageEmpty26}{CartesianTensorXmpPagePatch26} \pastebutton{CartesianTensorXmpPageEmpty26}{\showpaste} \tab{5}\spadcommand{t1[2]\free{t1 }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch27} \begin{paste}{CartesianTensorXmpPageFull27}{CartesianTensorXmpPageEmpty27} \pastebutton{CartesianTensorXmpPageFull27}{\hidepaste} \tab{5}\spadcommand{t2[2,1]\free{t2 }} \indentrel{3}\begin{verbatim} (27) 2 Type: PositiveInteger \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty27} \begin{paste}{CartesianTensorXmpPageEmpty27}{CartesianTensorXmpPagePatch27} \pastebutton{CartesianTensorXmpPageEmpty27}{\showpaste} \tab{5}\spadcommand{t2[2,1]\free{t2 }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch28} \begin{paste}{CartesianTensorXmpPageFull28}{CartesianTensorXmpPageEmpty28} \pastebutton{CartesianTensorXmpPageFull28}{\hidepaste} \tab{5}\spadcommand{t3[2,1,2]\free{t3 }} \indentrel{3}\begin{verbatim} (28) 3 Type: PositiveInteger \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty28} \begin{paste}{CartesianTensorXmpPageEmpty28}{CartesianTensorXmpPagePatch28} \pastebutton{CartesianTensorXmpPageEmpty28}{\showpaste} \tab{5}\spadcommand{t3[2,1,2]\free{t3 }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch29} \begin{paste}{CartesianTensorXmpPageFull29}{CartesianTensorXmpPageEmpty29} \pastebutton{CartesianTensorXmpPageFull29}{\hidepaste} \tab{5}\spadcommand{Tmn[2,1,2,1]\free{Tmn }} \indentrel{3}\begin{verbatim} (29) 0 Type: NonNegativeInteger \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty29} \begin{paste}{CartesianTensorXmpPageEmpty29}{CartesianTensorXmpPagePatch29} \pastebutton{CartesianTensorXmpPageEmpty29}{\showpaste} \tab{5}\spadcommand{Tmn[2,1,2,1]\free{Tmn }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch30} \begin{paste}{CartesianTensorXmpPageFull30}{CartesianTensorXmpPageEmpty30} \pastebutton{CartesianTensorXmpPageFull30}{\hidepaste} \tab{5}\spadcommand{cTmn := contract(Tmn,1,2)\free{Tmn }\bound{cTmn }} \indentrel{3}\begin{verbatim} Ú12 18¿ (30) ³ ³ À0 6 Ù Type: CartesianTensor(1,2,Integer) \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty30} \begin{paste}{CartesianTensorXmpPageEmpty30}{CartesianTensorXmpPagePatch30} \pastebutton{CartesianTensorXmpPageEmpty30}{\showpaste} \tab{5}\spadcommand{cTmn := contract(Tmn,1,2)\free{Tmn }\bound{cTmn }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch31} \begin{paste}{CartesianTensorXmpPageFull31}{CartesianTensorXmpPageEmpty31} \pastebutton{CartesianTensorXmpPageFull31}{\hidepaste} \tab{5}\spadcommand{trace(m) * n\free{m n }} \indentrel{3}\begin{verbatim} Ú12 18¿ (31) ³ ³ À0 6 Ù Type: SquareMatrix(2,Integer) \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty31} \begin{paste}{CartesianTensorXmpPageEmpty31}{CartesianTensorXmpPagePatch31} \pastebutton{CartesianTensorXmpPageEmpty31}{\showpaste} \tab{5}\spadcommand{trace(m) * n\free{m n }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch32} \begin{paste}{CartesianTensorXmpPageFull32}{CartesianTensorXmpPageEmpty32} \pastebutton{CartesianTensorXmpPageFull32}{\hidepaste} \tab{5}\spadcommand{contract(Tmn,1,2) = trace(m) * n\free{Tmn m n }} \indentrel{3}\begin{verbatim} Ú12 18¿ Ú12 18¿ (32) ³ ³= ³ ³ À0 6 Ù À0 6 Ù Type: Equation CartesianTensor(1,2,Integer) \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty32} \begin{paste}{CartesianTensorXmpPageEmpty32}{CartesianTensorXmpPagePatch32} \pastebutton{CartesianTensorXmpPageEmpty32}{\showpaste} \tab{5}\spadcommand{contract(Tmn,1,2) = trace(m) * n\free{Tmn m n }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch33} \begin{paste}{CartesianTensorXmpPageFull33}{CartesianTensorXmpPageEmpty33} \pastebutton{CartesianTensorXmpPageFull33}{\hidepaste} \tab{5}\spadcommand{contract(Tmn,1,3) = transpose(m) * n\free{Tmn m n }} \indentrel{3}\begin{verbatim} Ú2 7 ¿ Ú2 7 ¿ (33) ³ ³= ³ ³ À4 11Ù À4 11Ù Type: Equation CartesianTensor(1,2,Integer) \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty33} \begin{paste}{CartesianTensorXmpPageEmpty33}{CartesianTensorXmpPagePatch33} \pastebutton{CartesianTensorXmpPageEmpty33}{\showpaste} \tab{5}\spadcommand{contract(Tmn,1,3) = transpose(m) * n\free{Tmn m n }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch34} \begin{paste}{CartesianTensorXmpPageFull34}{CartesianTensorXmpPageEmpty34} \pastebutton{CartesianTensorXmpPageFull34}{\hidepaste} \tab{5}\spadcommand{contract(Tmn,1,4) = transpose(m) * transpose(n)\free{Tmn m n }} \indentrel{3}\begin{verbatim} Ú14 4¿ Ú14 4¿ (34) ³ ³= ³ ³ À19 5Ù À19 5Ù Type: Equation CartesianTensor(1,2,Integer) \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty34} \begin{paste}{CartesianTensorXmpPageEmpty34}{CartesianTensorXmpPagePatch34} \pastebutton{CartesianTensorXmpPageEmpty34}{\showpaste} \tab{5}\spadcommand{contract(Tmn,1,4) = transpose(m) * transpose(n)\free{Tmn m n }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch35} \begin{paste}{CartesianTensorXmpPageFull35}{CartesianTensorXmpPageEmpty35} \pastebutton{CartesianTensorXmpPageFull35}{\hidepaste} \tab{5}\spadcommand{contract(Tmn,2,3) = m * n\free{Tmn m n }} \indentrel{3}\begin{verbatim} Ú2 5 ¿ Ú2 5 ¿ (35) ³ ³= ³ ³ À8 17Ù À8 17Ù Type: Equation CartesianTensor(1,2,Integer) \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty35} \begin{paste}{CartesianTensorXmpPageEmpty35}{CartesianTensorXmpPagePatch35} \pastebutton{CartesianTensorXmpPageEmpty35}{\showpaste} \tab{5}\spadcommand{contract(Tmn,2,3) = m * n\free{Tmn m n }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch36} \begin{paste}{CartesianTensorXmpPageFull36}{CartesianTensorXmpPageEmpty36} \pastebutton{CartesianTensorXmpPageFull36}{\hidepaste} \tab{5}\spadcommand{contract(Tmn,2,4) = m * transpose(n)\free{Tmn m n }} \indentrel{3}\begin{verbatim} Ú8 2¿ Ú8 2¿ (36) ³ ³= ³ ³ À23 5Ù À23 5Ù Type: Equation CartesianTensor(1,2,Integer) \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty36} \begin{paste}{CartesianTensorXmpPageEmpty36}{CartesianTensorXmpPagePatch36} \pastebutton{CartesianTensorXmpPageEmpty36}{\showpaste} \tab{5}\spadcommand{contract(Tmn,2,4) = m * transpose(n)\free{Tmn m n }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch37} \begin{paste}{CartesianTensorXmpPageFull37}{CartesianTensorXmpPageEmpty37} \pastebutton{CartesianTensorXmpPageFull37}{\hidepaste} \tab{5}\spadcommand{contract(Tmn,3,4) = trace(n) * m\free{Tmn m n }} \indentrel{3}\begin{verbatim} Ú3 6 ¿ Ú3 6 ¿ (37) ³ ³= ³ ³ À12 15Ù À12 15Ù Type: Equation CartesianTensor(1,2,Integer) \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty37} \begin{paste}{CartesianTensorXmpPageEmpty37}{CartesianTensorXmpPagePatch37} \pastebutton{CartesianTensorXmpPageEmpty37}{\showpaste} \tab{5}\spadcommand{contract(Tmn,3,4) = trace(n) * m\free{Tmn m n }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch38} \begin{paste}{CartesianTensorXmpPageFull38}{CartesianTensorXmpPageEmpty38} \pastebutton{CartesianTensorXmpPageFull38}{\hidepaste} \tab{5}\spadcommand{tTmn := transpose(Tmn,1,3)\free{tTmn }} \indentrel{3}\begin{verbatim} ÚÚ2 3 ¿ Ú4 6 ¿¿ ³³ ³ ³ ³³ ³À8 12Ù À10 15Ù³ (38) ³ ³ ³Ú0 1¿ Ú0 2¿ ³ ³³ ³ ³ ³ ³ ÀÀ0 4Ù À0 5Ù Ù Type: CartesianTensor(1,2,Integer) \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty38} \begin{paste}{CartesianTensorXmpPageEmpty38}{CartesianTensorXmpPagePatch38} \pastebutton{CartesianTensorXmpPageEmpty38}{\showpaste} \tab{5}\spadcommand{tTmn := transpose(Tmn,1,3)\free{tTmn }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch39} \begin{paste}{CartesianTensorXmpPageFull39}{CartesianTensorXmpPageEmpty39} \pastebutton{CartesianTensorXmpPageFull39}{\hidepaste} \tab{5}\spadcommand{transpose Tmn\free{Tmn }} \indentrel{3}\begin{verbatim} ÚÚ2 8¿ Ú4 10¿¿ ³³ ³ ³ ³³ ³À0 0Ù À0 0 Ù³ (39) ³ ³ ³Ú3 12¿ Ú6 15¿³ ³³ ³ ³ ³³ ÀÀ1 4 Ù À2 5 ÙÙ Type: CartesianTensor(1,2,Integer) \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty39} \begin{paste}{CartesianTensorXmpPageEmpty39}{CartesianTensorXmpPagePatch39} \pastebutton{CartesianTensorXmpPageEmpty39}{\showpaste} \tab{5}\spadcommand{transpose Tmn\free{Tmn }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch40} \begin{paste}{CartesianTensorXmpPageFull40}{CartesianTensorXmpPageEmpty40} \pastebutton{CartesianTensorXmpPageFull40}{\hidepaste} \tab{5}\spadcommand{transpose Tm = transpose m\free{Tm m }} \indentrel{3}\begin{verbatim} Ú1 4¿ Ú1 4¿ (40) ³ ³= ³ ³ À2 5Ù À2 5Ù Type: Equation CartesianTensor(1,2,Integer) \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty40} \begin{paste}{CartesianTensorXmpPageEmpty40}{CartesianTensorXmpPagePatch40} \pastebutton{CartesianTensorXmpPageEmpty40}{\showpaste} \tab{5}\spadcommand{transpose Tm = transpose m\free{Tm m }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch41} \begin{paste}{CartesianTensorXmpPageFull41}{CartesianTensorXmpPageEmpty41} \pastebutton{CartesianTensorXmpPageFull41}{\hidepaste} \tab{5}\spadcommand{rTmn := reindex(Tmn, [1,4,2,3])\free{Tmn }\bound{rTmn }} \indentrel{3}\begin{verbatim} ÚÚ2 0¿ Ú3 1¿ ¿ ³³ ³ ³ ³ ³ ³À4 0Ù À6 2Ù ³ (41) ³ ³ ³Ú8 0¿ Ú12 4¿³ ³³ ³ ³ ³³ ÀÀ10 0Ù À15 5ÙÙ Type: CartesianTensor(1,2,Integer) \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty41} \begin{paste}{CartesianTensorXmpPageEmpty41}{CartesianTensorXmpPagePatch41} \pastebutton{CartesianTensorXmpPageEmpty41}{\showpaste} \tab{5}\spadcommand{rTmn := reindex(Tmn, [1,4,2,3])\free{Tmn }\bound{rTmn }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch42} \begin{paste}{CartesianTensorXmpPageFull42}{CartesianTensorXmpPageEmpty42} \pastebutton{CartesianTensorXmpPageFull42}{\hidepaste} \tab{5}\spadcommand{tt := transpose(Tm)*Tn - Tn*transpose(Tm)\free{Tm Tn }\bound{tt2 }} \indentrel{3}\begin{verbatim} Ú- 6 - 16¿ (42) ³ ³ À 2 6 Ù Type: CartesianTensor(1,2,Integer) \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty42} \begin{paste}{CartesianTensorXmpPageEmpty42}{CartesianTensorXmpPagePatch42} \pastebutton{CartesianTensorXmpPageEmpty42}{\showpaste} \tab{5}\spadcommand{tt := transpose(Tm)*Tn - Tn*transpose(Tm)\free{Tm Tn }\bound{tt2 }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch43} \begin{paste}{CartesianTensorXmpPageFull43}{CartesianTensorXmpPageEmpty43} \pastebutton{CartesianTensorXmpPageFull43}{\hidepaste} \tab{5}\spadcommand{Tv*(tt+Tn)\free{tt2 Tv Tn }} \indentrel{3}\begin{verbatim} (43) [- 4,- 11] Type: CartesianTensor(1,2,Integer) \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty43} \begin{paste}{CartesianTensorXmpPageEmpty43}{CartesianTensorXmpPagePatch43} \pastebutton{CartesianTensorXmpPageEmpty43}{\showpaste} \tab{5}\spadcommand{Tv*(tt+Tn)\free{tt2 Tv Tn }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch44} \begin{paste}{CartesianTensorXmpPageFull44}{CartesianTensorXmpPageEmpty44} \pastebutton{CartesianTensorXmpPageFull44}{\hidepaste} \tab{5}\spadcommand{reindex(product(Tn,Tn),[4,3,2,1])+3*Tn*product(Tm,Tm)\free{Tm Tn }} \indentrel{3}\begin{verbatim} ÚÚ46 84 ¿ Ú57 114¿¿ ³³ ³ ³ ³³ ³À174 212Ù À228 285Ù³ (44) ³ ³ ³ Ú18 24¿ Ú17 30¿ ³ ³ ³ ³ ³ ³ ³ À À57 63Ù À63 76Ù Ù Type: CartesianTensor(1,2,Integer) \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty44} \begin{paste}{CartesianTensorXmpPageEmpty44}{CartesianTensorXmpPagePatch44} \pastebutton{CartesianTensorXmpPageEmpty44}{\showpaste} \tab{5}\spadcommand{reindex(product(Tn,Tn),[4,3,2,1])+3*Tn*product(Tm,Tm)\free{Tm Tn }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch45} \begin{paste}{CartesianTensorXmpPageFull45}{CartesianTensorXmpPageEmpty45} \pastebutton{CartesianTensorXmpPageFull45}{\hidepaste} \tab{5}\spadcommand{delta: CT := kroneckerDelta()\free{CT }\bound{delta }} \indentrel{3}\begin{verbatim} Ú1 0¿ (45) ³ ³ À0 1Ù Type: CartesianTensor(1,2,Integer) \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty45} \begin{paste}{CartesianTensorXmpPageEmpty45}{CartesianTensorXmpPagePatch45} \pastebutton{CartesianTensorXmpPageEmpty45}{\showpaste} \tab{5}\spadcommand{delta: CT := kroneckerDelta()\free{CT }\bound{delta }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch46} \begin{paste}{CartesianTensorXmpPageFull46}{CartesianTensorXmpPageEmpty46} \pastebutton{CartesianTensorXmpPageFull46}{\hidepaste} \tab{5}\spadcommand{contract(Tmn, 2, delta, 1) = reindex(Tmn, [1,3,4,2])\free{Tmn delta }} \indentrel{3}\begin{verbatim} Ú Ú2 4¿ Ú0 0¿¿ Ú Ú2 4¿ Ú0 0¿¿ ³ ³ ³ ³ ³³ ³ ³ ³ ³ ³³ ³ À3 6Ù À1 2Ù³ ³ À3 6Ù À1 2Ù³ (46) ³ ³= ³ ³ ³Ú8 10¿ Ú0 0¿³ ³Ú8 10¿ Ú0 0¿³ ³³ ³ ³ ³³ ³³ ³ ³ ³³ ÀÀ12 15Ù À4 5ÙÙ ÀÀ12 15Ù À4 5ÙÙ Type: Equation CartesianTensor(1,2,Integer) \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty46} \begin{paste}{CartesianTensorXmpPageEmpty46}{CartesianTensorXmpPagePatch46} \pastebutton{CartesianTensorXmpPageEmpty46}{\showpaste} \tab{5}\spadcommand{contract(Tmn, 2, delta, 1) = reindex(Tmn, [1,3,4,2])\free{Tmn delta }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch47} \begin{paste}{CartesianTensorXmpPageFull47}{CartesianTensorXmpPageEmpty47} \pastebutton{CartesianTensorXmpPageFull47}{\hidepaste} \tab{5}\spadcommand{epsilon:CT := leviCivitaSymbol()\free{CT }\bound{epsilon }} \indentrel{3}\begin{verbatim} Ú 0 1¿ (47) ³ ³ À- 1 0Ù Type: CartesianTensor(1,2,Integer) \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty47} \begin{paste}{CartesianTensorXmpPageEmpty47}{CartesianTensorXmpPagePatch47} \pastebutton{CartesianTensorXmpPageEmpty47}{\showpaste} \tab{5}\spadcommand{epsilon:CT := leviCivitaSymbol()\free{CT }\bound{epsilon }} \end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPagePatch48} \begin{paste}{CartesianTensorXmpPageFull48}{CartesianTensorXmpPageEmpty48} \pastebutton{CartesianTensorXmpPageFull48}{\hidepaste} \tab{5}\spadcommand{contract(epsilon*Tm*epsilon, 1,2) = 2 * determinant m\free{epsilon Tm m }} \indentrel{3}\begin{verbatim} (48) - 6= - 6 Type: Equation CartesianTensor(1,2,Integer) \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{CartesianTensorXmpPageEmpty48} \begin{paste}{CartesianTensorXmpPageEmpty48}{CartesianTensorXmpPagePatch48} \pastebutton{CartesianTensorXmpPageEmpty48}{\showpaste} \tab{5}\spadcommand{contract(epsilon*Tm*epsilon, 1,2) = 2 * determinant m\free{epsilon Tm m }} \end{paste}\end{patch}