You can subscribe to this list here.
2001 
_{Jan}

_{Feb}

_{Mar}

_{Apr}

_{May}

_{Jun}

_{Jul}

_{Aug}

_{Sep}

_{Oct}

_{Nov}
(20) 
_{Dec}
(17) 

2002 
_{Jan}
(39) 
_{Feb}
(21) 
_{Mar}
(33) 
_{Apr}
(135) 
_{May}
(53) 
_{Jun}
(88) 
_{Jul}
(47) 
_{Aug}
(59) 
_{Sep}
(207) 
_{Oct}
(40) 
_{Nov}
(7) 
_{Dec}
(26) 
2003 
_{Jan}
(49) 
_{Feb}
(39) 
_{Mar}
(117) 
_{Apr}
(50) 
_{May}
(62) 
_{Jun}
(6) 
_{Jul}
(19) 
_{Aug}
(24) 
_{Sep}
(11) 
_{Oct}
(11) 
_{Nov}
(49) 
_{Dec}
(9) 
2004 
_{Jan}
(29) 
_{Feb}
(123) 
_{Mar}
(32) 
_{Apr}
(53) 
_{May}
(52) 
_{Jun}
(19) 
_{Jul}
(33) 
_{Aug}
(10) 
_{Sep}
(76) 
_{Oct}
(86) 
_{Nov}
(171) 
_{Dec}
(163) 
2005 
_{Jan}
(147) 
_{Feb}
(121) 
_{Mar}
(120) 
_{Apr}
(126) 
_{May}
(120) 
_{Jun}
(213) 
_{Jul}
(76) 
_{Aug}
(79) 
_{Sep}
(140) 
_{Oct}
(83) 
_{Nov}
(156) 
_{Dec}
(202) 
2006 
_{Jan}
(181) 
_{Feb}
(171) 
_{Mar}
(157) 
_{Apr}
(98) 
_{May}
(96) 
_{Jun}
(97) 
_{Jul}
(193) 
_{Aug}
(76) 
_{Sep}
(130) 
_{Oct}
(63) 
_{Nov}
(196) 
_{Dec}
(253) 
2007 
_{Jan}
(256) 
_{Feb}
(293) 
_{Mar}
(276) 
_{Apr}
(258) 
_{May}
(181) 
_{Jun}
(91) 
_{Jul}
(108) 
_{Aug}
(69) 
_{Sep}
(107) 
_{Oct}
(179) 
_{Nov}
(137) 
_{Dec}
(121) 
2008 
_{Jan}
(124) 
_{Feb}
(129) 
_{Mar}
(192) 
_{Apr}
(201) 
_{May}
(90) 
_{Jun}
(86) 
_{Jul}
(115) 
_{Aug}
(142) 
_{Sep}
(49) 
_{Oct}
(91) 
_{Nov}
(95) 
_{Dec}
(218) 
2009 
_{Jan}
(230) 
_{Feb}
(149) 
_{Mar}
(118) 
_{Apr}
(72) 
_{May}
(77) 
_{Jun}
(68) 
_{Jul}
(102) 
_{Aug}
(72) 
_{Sep}
(89) 
_{Oct}
(76) 
_{Nov}
(125) 
_{Dec}
(86) 
2010 
_{Jan}
(75) 
_{Feb}
(90) 
_{Mar}
(89) 
_{Apr}
(121) 
_{May}
(111) 
_{Jun}
(66) 
_{Jul}
(75) 
_{Aug}
(66) 
_{Sep}
(66) 
_{Oct}
(166) 
_{Nov}
(121) 
_{Dec}
(73) 
2011 
_{Jan}
(74) 
_{Feb}

_{Mar}

_{Apr}
(14) 
_{May}
(22) 
_{Jun}
(31) 
_{Jul}
(53) 
_{Aug}
(37) 
_{Sep}
(23) 
_{Oct}
(25) 
_{Nov}
(31) 
_{Dec}
(28) 
2012 
_{Jan}
(18) 
_{Feb}
(11) 
_{Mar}
(32) 
_{Apr}
(17) 
_{May}
(48) 
_{Jun}
(37) 
_{Jul}
(23) 
_{Aug}
(54) 
_{Sep}
(15) 
_{Oct}
(11) 
_{Nov}
(19) 
_{Dec}
(22) 
2013 
_{Jan}
(11) 
_{Feb}
(32) 
_{Mar}
(24) 
_{Apr}
(37) 
_{May}
(31) 
_{Jun}
(14) 
_{Jul}
(26) 
_{Aug}
(33) 
_{Sep}
(40) 
_{Oct}
(21) 
_{Nov}
(36) 
_{Dec}
(84) 
2014 
_{Jan}
(23) 
_{Feb}
(20) 
_{Mar}
(27) 
_{Apr}
(24) 
_{May}
(31) 
_{Jun}
(27) 
_{Jul}
(34) 
_{Aug}
(26) 
_{Sep}
(21) 
_{Oct}
(45) 
_{Nov}
(23) 
_{Dec}
(73) 
2015 
_{Jan}
(33) 
_{Feb}
(8) 
_{Mar}
(24) 
_{Apr}
(45) 
_{May}
(27) 
_{Jun}
(19) 
_{Jul}
(21) 
_{Aug}
(51) 
_{Sep}
(43) 
_{Oct}
(29) 
_{Nov}
(61) 
_{Dec}
(86) 
2016 
_{Jan}
(99) 
_{Feb}
(52) 
_{Mar}
(80) 
_{Apr}
(61) 
_{May}
(24) 
_{Jun}
(23) 
_{Jul}
(36) 
_{Aug}
(30) 
_{Sep}
(41) 
_{Oct}
(43) 
_{Nov}
(27) 
_{Dec}
(46) 
2017 
_{Jan}
(57) 
_{Feb}
(34) 
_{Mar}
(39) 
_{Apr}

_{May}

_{Jun}

_{Jul}

_{Aug}

_{Sep}

_{Oct}

_{Nov}

_{Dec}

S  M  T  W  T  F  S 




1
(7) 
2
(12) 
3
(10) 
4
(6) 
5
(14) 
6
(7) 
7
(11) 
8
(6) 
9
(8) 
10
(7) 
11
(10) 
12
(5) 
13
(2) 
14
(5) 
15

16
(3) 
17
(3) 
18
(1) 
19
(3) 
20
(11) 
21
(7) 
22
(7) 
23
(4) 
24

25
(1) 
26

27
(1) 
28
(1) 
29
(5) 
30
(4) 
31
(2) 

From: Raymond Toy <rtoy@us...>  20041201 21:18:50

Update of /cvsroot/maxima/maxima/tests In directory sc8prcvs1.sourceforge.net:/tmp/cvsserv797 Modified Files: rtest14.mac Log Message: Need to set prefer_whittaker:true to get some of the specint results to match. Index: rtest14.mac =================================================================== RCS file: /cvsroot/maxima/maxima/tests/rtest14.mac,v retrieving revision 1.11 retrieving revision 1.12 diff u d r1.11 r1.12  rtest14.mac 26 Nov 2004 16:09:50 0000 1.11 +++ rtest14.mac 1 Dec 2004 21:18:40 0000 1.12 @@ 99,6 +99,9 @@ specint(t^(1/2)*%e^(a*t/4)*%e^(p*t),t); sqrt(%pi)/(2*(p+a/4)^(3/2)); +prefer_whittaker:true; +true$ + specint(t^(3/4)*%e^(t^2/2/b)*%e^(p*t),t); 3*gamma(3/4)*b^(7/8)*%e^(b*p^2/4)*(8*sqrt(%pi)*%m[5/8,1/4](b*p^2/2)/(3*2^ (5/8)*gamma(3/8)*b^(1/4)*sqrt(p))2^(3/8)*sqrt(%pi)*%m[5/8,1/4](b*p^2/2)/ 
From: Raymond Toy <rtoy@us...>  20041201 20:01:35

Update of /cvsroot/maxima/maxima/src In directory sc8prcvs1.sourceforge.net:/tmp/cvsserv13874/src Modified Files: hyp.lisp Log Message: o Add some more comments o Fix serious bug in secondsum. It was incorrectly computing the first term of Q(n+1/2,z) in A&S 10.1.9. o Comment out the apparently unused functions: 2inp, 2ratp, 2nump. o Implement an easier to read version of hypcos. Index: hyp.lisp =================================================================== RCS file: /cvsroot/maxima/maxima/src/hyp.lisp,v retrieving revision 1.17 retrieving revision 1.18 diff u d r1.17 r1.18  hyp.lisp 1 Dec 2004 16:33:25 0000 1.17 +++ hyp.lisp 1 Dec 2004 20:01:17 0000 1.18 @@ 414,6 +414,11 @@ ;; Compute bessel_j(n+1/2,z) in terms of trig functions. +;; +;; See A&S 10.1.8 and 10.1.9. +;; +;; Note that bessel.lisp has a different implementation of this. +;; Should we use that instead? (defun besredtrig (n z) (cond ((minusp n) (trigredminus (mul 1 (add1 n)) z)) @@ 458,15 +463,15 @@ (power (add z z) 2r))))) (go loop))) (defun secondsum  (n z)  (prog(count result 2r+1 n1) +;; Compute Q(n+1/2,z) in A&S 10.1.9. +(defun secondsum (n z) + (prog (count result 2r+1 n1) (setq n1 ($entier (div (sub1 n) 2)) count 0 result  (inv z)) + (mul n (add 1 n) (inv (add z z)))) (cond ((equal n1 1)(return 0))) loop (cond ((eq count n1)(return result))) @@ 526,6 +531,7 @@ (zldelete (car l1) l2 1)))) (t (zlintersection (cdr l1) l2)))) +#+(or) (defun 2inp (l) (prog(count) (setq count 0) @@ 536,7 +542,7 @@ (setq l (cdr l)) (go loop)))  +#+(or) (defun 2ratp (l) (prog(count) (setq count 0) @@ 546,9 +552,14 @@ (cond ((eq (caaar l) 'rat)(setq count (add1 count)))) (setq l (cdr l)) (go loop))) ;;2NUMP SHOULD BE ELIMINATED. IT IS NOT EFFICIENT TO USE ANYTHING ELSE BUT JUST CONVERTING TO RAT REPRESENTATION ALL 0.X ,X IN N. ESPECIALLY LATER WHEN WE CONVERT TO OMONIMA FOR TESTING TO FIND THE RIGHT FORMULA + +;;2NUMP SHOULD BE ELIMINATED. IT IS NOT EFFICIENT TO USE ANYTHING ELSE +;;BUT JUST CONVERTING TO RAT REPRESENTATION ALL 0.X ,X IN +;;N. ESPECIALLY LATER WHEN WE CONVERT TO OMONIMA FOR TESTING TO FIND +;;THE RIGHT FORMULA +#+(or) (defun 2nump (l) (prog(count) (setq count 0) @@ 760,13 +771,19 @@ (defun hypcos  (a b c) +#+nil +(defun hypcos (a b c) (prog (a2 a1 z1) + ;; a1 = (a+b1/2)/2 + ;; z1 = 1var + ;; a2 = c/2 (setq a1 (div (sub (add a b) (div 1 2)) 2)) (setq z1 (sub 1 var)) (setq a2 (mul c (inv 2))) (cond ((equal (sub (add a b) (div 1 2)) c) + ;; a+b1/2 = c + ;; + ;; 2^(2*a1  1)/sqrt(z1)*(1+sqrt(z1))^(12*a1) (return (mul (power 2 (sub (mul a1 2) 1)) (inv (power z1 (div 1 2))) (power (add 1 @@ 775,6 +792,9 @@ 2))) (sub 1 (mul 2 a1))))))) (cond ((equal (add 1 (mul 2 a1)) c) + ;; c = 1+2*a1 = a+b+1/2 + ;; + ;; 2^(c1)*(1+sqrt(z1))^((c1)) (return (mul (power 2 (sub c 1)) (power (add 1 (power z1 @@ 783,6 +803,37 @@ (mul 1 (sub c 1))))))) )) +(defun hypcos (a b c) + (let ((a1 (div (sub (add a b) (div 1 2)) 2)) + (a2 (mul c (inv 2))) + (z1 (sub 1 var))) + ;; a1 = (a+b1/2)/2 + ;; z1 = 1var + ;; a2 = c/2 + (cond ((equal (sub (add a b) + (div 1 2)) + c) + ;; a+b1/2 = c + ;; + ;; 2^(2*a1  1)/sqrt(z1)*(1+sqrt(z1))^(12*a1) + (mul (power 2 (sub (mul a1 2) 1)) + (inv (power z1 (div 1 2))) + (power (add 1 + (power z1 + (div 1 + 2))) + (sub 1 (mul 2 a1))))) + ((equal (add 1 (mul 2 a1)) c) + ;; c = 1+2*a1 = a+b+1/2 + ;; + ;; 2^(c1)*(1+sqrt(z1))^((c1)) + (mul (power 2 (sub c 1)) + (power (add 1 + (power z1 + (div 1 + 2))) + (mul 1 (sub c 1)))))))) + (defun degen2f1 (a b c) (cond ((eq (quest (sub c b)) '$negative) 
From: Raymond Toy <rtoy@us...>  20041201 16:33:37

Update of /cvsroot/maxima/maxima/src In directory sc8prcvs1.sourceforge.net:/tmp/cvsserv27478 Modified Files: hyp.lisp Log Message: Oops. Forgot to RETURN the fpqform in confl. Index: hyp.lisp =================================================================== RCS file: /cvsroot/maxima/maxima/src/hyp.lisp,v retrieving revision 1.16 retrieving revision 1.17 diff u d r1.16 r1.17  hyp.lisp 1 Dec 2004 05:01:41 0000 1.16 +++ hyp.lisp 1 Dec 2004 16:33:25 0000 1.17 @@ 1535,7 +1535,7 @@ (power '$%e (div var 2)) (whitfun k m var)))) (t  (fpqform l1 l2 var))))) + (return (fpqform l1 l2 var)))))) ;; Return sqrt(%pi)*erf(%i*sqrt(x))/2/(%i*sqrt(x)) (defun hyprederf (x) 
From: Raymond Toy <rtoy@us...>  20041201 05:18:28

Update of /cvsroot/maxima/maxima/tests In directory sc8prcvs1.sourceforge.net:/tmp/cvsserv17556 Modified Files: rtesthyp.mac Log Message: o Add some assume statements. o Fix up erf test and a few others to get the right expression. o Add another erf test. Index: rtesthyp.mac =================================================================== RCS file: /cvsroot/maxima/maxima/tests/rtesthyp.mac,v retrieving revision 1.2 retrieving revision 1.3 diff u d r1.2 r1.3  rtesthyp.mac 29 Nov 2004 18:33:32 0000 1.2 +++ rtesthyp.mac 1 Dec 2004 05:18:18 0000 1.3 @@ 5,6 +5,11 @@ /* See A&S 13.6 */ /* Bessel functions */ +assume(not(equal(z,0))); +[not equal(z,0)]$ + +sign(z); +pnz$ /* A&S 13.6.1 */ hgfred([v+1/2],[2*v+1],2*%i*z); @@ 54,8 +59,12 @@ 4!/(2*4+1)!*(1/2)^(4)*hermite(2*4+1,z)$ /* A&S 13.6.19 */ hgfred([1/2],[3/2],z^2); sqrt(%pi)/2/z*erf(z); +ratsimp(hgfred([1/2],[3/2],z^2)); +sqrt(%pi)/2/abs(z)*erf(abs(z))$ + +/* A&S 7.1.21 */ +ratsimp(hgfred([1],[3/2],z^2)); +sqrt(%pi)*exp(z^2)*erf(abs(z))/2/abs(z)$ /* Hypergeometric function 2F1 tests * @@ 121,13 +130,16 @@ /* A&S 15.1.15 */ hgfred([a,1a],[3/2],sin(z)^2); sin((2*a1)*z)/sin(z)/(2*a1)$ +sin((12*a)*z)/sin(z)/(12*a)$ /* A&S 15.1.16 */ hgfred([a,2a],[3/2],sin(z)^2); sin((2*a2)*z)/(a1)/(2*sin(z)*cos(z)); +sin((22*a)*z)/(22*a)/(sin(z)*cos(z))$ /* A&S 15.1.17 */ +assume(not(equal(sin(z),0))); +[not equal(sin(z),0)]$ + hgfred([a,a],[1/2],sin(z)^2); cos(2*a*z)$ @@ 136,10 +148,16 @@ cos((2*a1)*z)/cos(z)$ /* A&S 15.1.19 */ +assume(not(equal(tan(z),0))); +[not equal(tan(z), 0)]$ + hgfred([a,a+1/2],[1/2],tan(z)^2); cos(z)^(2*a)*cos(2*a*z)$ /* A&S 15.4.3 */ +assume(x > 0); +[x > 0]$ + hgfred([n,n],[1/2],x); cos(2*n*asin(sqrt(x)))$ 
From: Raymond Toy <rtoy@us...>  20041201 05:01:50

Update of /cvsroot/maxima/maxima/src In directory sc8prcvs1.sourceforge.net:/tmp/cvsserv13769 Modified Files: hyp.lisp Log Message: o Add variable $prefer_whittaker to control whether hgfred should produce Whittaker M function or not. Default is not. o Use legendre_p in one more place that was using %p. Index: hyp.lisp =================================================================== RCS file: /cvsroot/maxima/maxima/src/hyp.lisp,v retrieving revision 1.15 retrieving revision 1.16 diff u d r1.15 r1.16  hyp.lisp 30 Nov 2004 23:20:10 0000 1.15 +++ hyp.lisp 1 Dec 2004 05:01:41 0000 1.16 @@ 32,6 +32,8 @@ ;; (defmvar $bestriglim 3) +(defmvar $prefer_whittaker nil) + (evalwhen #+gcl (eval compile) #gcl (:execute :compiletoplevel) @@ 297,9 +299,11 @@ (cond ((equal v 0) (tchebypol n x)) (t (list '(mqapply)(list '($%c array) n v) x)))) (defun legenpol(n x)  (list '(mqapply) (list '($%p array) n) x)) +;; Legendre polynomial +(defun legenpol (n x) + `(($legendre_p) ,n ,x)) +;; Chebyshev polynomial (defun tchebypol (n x) `(($chebyshev_t) ,n ,x)) @@ 1521,13 +1525,17 @@ kumcheck (cond ((hypintegerp a) (return (kummer l1 l2))))  (setq m  (div (sub c 1) 2)  k  (add (inv 2) m (mul 1 a)))  (return (mul (power var (mul 1 (add (inv 2) m)))  (power '$%e (div var 2))  (whitfun k m var))))) + + (cond ($prefer_whittaker + (setq m + (div (sub c 1) 2) + k + (add (inv 2) m (mul 1 a))) + (return (mul (power var (mul 1 (add (inv 2) m))) + (power '$%e (div var 2)) + (whitfun k m var)))) + (t + (fpqform l1 l2 var))))) ;; Return sqrt(%pi)*erf(%i*sqrt(x))/2/(%i*sqrt(x)) (defun hyprederf (x) 
From: Viktor Toth <vttoth@us...>  20041201 04:54:18

Update of /cvsroot/maxima/maxima/doc/info In directory sc8prcvs1.sourceforge.net:/tmp/cvsserv12029 Modified Files: Ctensor.texi Tensor.texi Log Message: More TENSOR documentation updates. Index: Ctensor.texi =================================================================== RCS file: /cvsroot/maxima/maxima/doc/info/Ctensor.texi,v retrieving revision 1.11 retrieving revision 1.12 diff u d r1.11 r1.12  Ctensor.texi 30 Nov 2004 04:13:20 0000 1.11 +++ Ctensor.texi 1 Dec 2004 04:54:09 0000 1.12 @@ 664,7 +664,7 @@ @c @unnumberedsec phony @defun contragrad () computes the CONTRAvariant GRADient of a scalar ^F2function^F* allowing +computes the CONTRAvariant GRADient of a scalar function allowing the user to choose the corresponding vector^F2name^F* as the example below for the Schwarzschild metric illustrates: @@ 758,14 +758,15 @@ @c @node bdvac @c @unnumberedsec phony @... bdvac () +@defun bdvac (fun) generates the covariant components of the vacuum field equations of the Brans Dicke gravitational theory. There are two field equations. +the Brans Dicke gravitational theory. The scalar field is specified +by the argument @code{fun}, which should be a (quoted) function name +with functional dependencies, e.g., @code{'p(x)}. + The components of the second rank covariant field tensor are represented by the array @code{bd2}. The scalar field equation requires the user to input the name of a scalar and declare its functional dependencies. This field equation is represented by the scalar @code{bd0}. +represented by the array @code{bd}. @end defun @c @node invariant1 @@ 1362,3 +1363,19 @@ @end example +@section Developer's Notes + +I added support for moving frames to CTENSOR in November, 2004. This +functionality was reconstructed on the basis of two things: code I +developed earlier for computations in a tetrad base, and the documentation +of commercial MACSYMA. + +This implementation differs from commercial MACSYMA in an important +respect: when a frame base is used, the Ricci rotation coefficients are +computed directly, without referencing the frame bracket. (Hence the +lack of an implementation, at least for now, of @code{frame_bracket}.) +The algorithms have been verified through several examples, some of +which are included as demos: see @code{tetrad.dem} or @code{petrov.dem}, +for instance. + +Implementation of torsion and nonmetricity is a workinprogress. Index: Tensor.texi =================================================================== RCS file: /cvsroot/maxima/maxima/doc/info/Tensor.texi,v retrieving revision 1.11 retrieving revision 1.12 diff u d r1.11 r1.12  Tensor.texi 30 Nov 2004 04:33:07 0000 1.11 +++ Tensor.texi 1 Dec 2004 04:54:09 0000 1.12 @@ 413,13 +413,72 @@ avoid the generation of multiple dummy indices. Removal of this assignment is given to the function @code{remcomps}. +Components can be assigned to an indexed expression in three ways, two +of which involve the use of the @code{components} command: + +1) As an indexed expression. For instance: + +@example + +(%i2) components(g([],[i,j]),e([],[i])*p([],[j]))$ + +(%i3) ishow(g([],[i,j]))$ + + i j +(%t3) e p + +@end example + +2) As a matrix: + +@example + +(%i6) components(g([i,j],[]),lg); + +(%o6) done +(%i7) ishow(g([i,j],[]))$ + +(%t7) g + i j +(%i8) g([3,3],[]); + +(%o8) 1 +(%i9) g([4,4],[]); + +(%o9)  1 + +@end example + +3) As a function. You can use a MAXIMA function to specify the +components of a tensor based on its indices. For instance, the following +code assigns @code{kdelta} to @code{h} if @code{h} has the same number +of covariant and contravariant indices and no derivative indices, and +@code{g} otherwise: + +@example + +(%i4) h(l1,l2,[l3]):=if length(l1)=length(l2) and length(l3)=0 + then kdelta(l1,l2) else apply(g,append([l1,l2], l3))$ + +(%i5) ishow(h([i],[j]))$ + + j +(%t5) kdelta + i +(%i6) ishow(h([i,j],[k],l))$ + + k +(%t6) g + i j,l + +@end example + The example under @code{defcon} demonstrates the use of the @code{components} function to define an algebraically special metric and also shows how the null property of the vector field can be given with the property assignment functions. The example above under @code{ichr2} +with the property assignment functions. The example under @code{ichr2} gives the basic syntax used in the @code{components} statement.  @end defun @c @node remcomps @@ 1108,6 +1167,10 @@ spacetime. The inverse frame field defines the frame base (unit vectors). Contraction properties are defined for the frame field and the frame metric. +When @code{iframe_flag} is true, many ITENSOR expressions use the frame +metric @code{ifg} instead of the metric defined by @code{imetric} for +raising and lowerind indices. + IMPORTANT: Setting the variable @code{iframe_flag} to @code{true} does NOT undefine the contraction properties of a metric defined by a call to @code{defcon()} or @code{imetric()}. If a frame field is used, it is best to @@ 1126,30 +1189,31 @@ (%i2) iframe_flag:true; (%o2) true (%i3) imetric(g);  (%o3) done (%i4) ishow(covdiff(v([],[i]),j))$ +(%i3) ishow(covdiff(v([],[i]),j))$ i i %1 (%t4) v + icc2 v +(%t3) v + icc2 v ,j %1 j (%i5) ishow(ev(%,icc2))$ +(%i4) ishow(ev(%,icc2))$ %1 i i i (%t5) v (ifc2 + ichr2 ) + v +(%t4) v (ifc2 + ichr2 ) + v %1 j %1 j ,j (%i6) ishow(ev(%,ifc2))$ +(%i5) ishow(ev(%,ifc2))$  i %3 %2 %2 i  g (ifb g  g ifb )  ifb  %1 %1 %3 %2 j %1 %2 %3 j %1 j i i (%t6) v ( + ichr2 ) + v  2 %1 j ,j (%i7) ishow(ifb([a,b],[c]))$ + i %3 %2 %2 i + ifg (ifb ifg  ifg ifb )  ifb + %1 %1 %3 %2 j %1 %2 %3 j %1 j +(%t5) v ( + 2 + + i i + + ichr2 ) + v + %1 j ,j +(%i6) ishow(ifb([a,b],[c]))$ c c %4 %5 (%t7) (ifri  ifri ) ifr ifr +(%t6) (ifri  ifri ) ifr ifr %4,%5 %5,%4 a b @end example @@ 1187,9 +1251,9 @@ @example  c cd e cd e c ifc2 = g g ifb  g g ifb  ifb  ab be ad ae db ab + c cd e cd e c +ifc2 = ifg ifg ifb  ifg ifg ifb  ifb + ab be ad ae db ab @end example @@ 1270,9 +1334,9 @@ @example  d ifc1 = g ifc2  abc cd ab + d +ifc1 = ifg ifc2 + abc cd ab @end example @@ 1289,11 +1353,9 @@ @example  ce d ce d c  g g ifb  g g ifb  ifb  c db ae ad eb ab ifc2 =   ab 2 + c cd e cd e c +ifc2 = ifg ifg ifb  ifg ifg ifb  ifb + ab be ad ae db ab @end example @@ 1379,6 +1441,8 @@ @end example +(Substitute @code{ifg} in place of @code{g} if a frame metric is used.) + @end defvar @c @node inmc2 @@ 1399,6 +1463,8 @@ @end example +(Substitute @code{ifg} in place of @code{g} if a frame metric is used.) + @end defvar @c @node ikt1 @@ 1418,6 +1484,8 @@ @end example +(Substitute @code{ifg} in place of @code{g} if a frame metric is used.) + @end defvar @c @node ikt2 @@ 1435,6 +1503,8 @@ @end example +(Substitute @code{ifg} in place of @code{g} if a frame metric is used.) + @end defvar @c @node itr @@ 1591,3 +1661,17 @@ @end example +@section Developer's Notes + +I added support for moving frames, torsion, and nonmetricity to ITENSOR +in November, 2004. I reconstructed this functionality based on the +description found in the reference manual of commercial MACSYMA, and +the printed output of some MACSYMA demos. + +This functionality should be considered untested for now. The documentation +of commercial MACSYMA contained several obvious errors (e.g., invalid +index combinations) and the demos suggested that the MACSYMA implementation +was far from complete. My goal was not to slavishly reproduce MACSYMA's +features (and bugs!) but to create a mathematically correct implementation. +It will be a while before I feel fully confident, though, that all +the results produced by this package are valid. 
From: Viktor Toth <vttoth@us...>  20041201 04:53:12

Update of /cvsroot/maxima/maxima/share/tensor In directory sc8prcvs1.sourceforge.net:/tmp/cvsserv11808 Modified Files: ademo.dem ctensor.mac ex_calc.dem iframe.mac petrov.dem tendemo.mac Added Files: mailarchive.txt schwarz.dem Removed Files: aatest.mac ademo2steps.dem brans_vacuum.mac infotensor2.txt infotensor.txt swartz.dem Log Message: More tensor updates/fixes/cleanups.  NEW FILE: mailarchive.txt  >From TENSOR@... Mon Apr 30 20:08:00 1979 Date: 30 APR 1979 2008EDT From: TENSOR at MITMC (Richard Pavelle) To: INFOTENSOR at MITMC This is RP. Sorry about the last message which was inadvertently sent. INFOTENSOR is now back up and each of you who receives this is on the mailing list. If you wish to communicate with everyone on the mailing list simply send mail to INFOTENSOR. If you wish your name removed or wish another name added let me know. The following is the list at the moment. (ASB) (DAVEK) (RP) (AMENT) (STAN) (TENSOR) (ADK) (ZIM) (YEKTA) (SWOLF) (CMA) (JPLHDW) (JPLFBE) (BIRREL) (FORWRD) (SHAP) (STOUTE) (JLK) In closing, this is the final time you will see the system message which was sent twice. Somehow, a number of people do not like to look at msgs. Attention TENSOR users There are plans to rewrite the tensor code this summer. There are a number of known difficulties with the ETENSR and ITENSR (or original CTMS and ITMS) packs. However, we would like to know who uses them and more important we would appreciate any comments, criticisms, suggestions etc on improving the ETENSR AND ITENSR code. If you have developed any special purpose routines utilizing the code let us know this as well. Further, please criticise the description of these packages in the manual. Send mail to TENSOR or INFOTENSOR if you wish to share your ideas. Work on the tensor packs will begin in early June. >From RP@... Mon Apr 30 20:29:20 1979 DISTRIB: *CMU, *DM, *MC, *ML, *AI EXPIRES: 04/30/79 20:29:20 From: RP@... Date: 04/15/79 20:29:20 Subject: Re: Attention TENSOR users There are plans to rewrite the tensor code this summer. There are a number of known difficulties with the ETENSR and ITENSR (or original CTMS and ITMS) packs. However, we would like to know who uses them and more important we would appreciate any comments, criticisms, suggestions etc on improving the ETENSR AND ITENSR code. If you have developed any special purpose routines utilizing the code let us know this as well. Further, please criticise the description of these packages in the manual. Send mail to TENSOR. >From TENSOR@... Sat May 5 08:15:00 1979 Date: 5 MAY 1979 0815EDT From: TENSOR at MITMC (Richard Pavelle) To: INFOTENSOR at MITMC Has anyone ever found an example where the CANTEN function was useful. There is a bug in it now but we will have to decide whether it should be kept. >From RP@... Mon Jun 4 13:45:00 1979 Date: 4 JUN 1979 1345EDT From: RP at MITMC (Richard Pavelle) To: INFOTENSOR at MITMC ETENSR is being modified at this time. I will let you know the changes which are being made at a later date. It is now a good time to send suggestions for changes to me. >From MIKE@... Thu Jun 7 13:44:00 1979 Date: 7 JUN 1979 1344EDT From: MIKE at MITMC (Michael Wester) To: INFOTENSOR at MITMC Does anyone use the socalled "special metric file" (TENSOR;METRIC FILE) in ETENSR? >From RP@... Fri Jun 15 16:36:00 1979 Date: 15 JUN 1979 1636EDT From: RP at MITMC (Richard Pavelle) To: INFOTENSOR at MITMC ATTENTION TENSOR USERS It is important that I know the kind of problems which users have for which they hope ITENSR can help. In particular I wish to know about problems which involve symmetries. As you know ITENSR does not yet manipulate indexed objects which are skew symmetric. If you can tell me what you would like perhaps it will happen this summer. Be specific! Send mail to me or TENSOR. >From RP@... Sun Aug 5 13:45:00 1979 Date: 5 AUG 1979 1345EDT From: RP at MITMC (Richard Pavelle) To: INFOTENSOR at MITMC During the next months, before a new manual appears, there will appear on the tensor directory a sequence of batch files. These will give some problems which have been solved using the new tensor packges and should give the user some understanding of the new features which have been implemented by MIKE and me. The names of the files will be ITENSR DEMO1, ITENSR DEMO2,.... and ETENSR DEMO1, ETENSR DEMO2,.... Send comments or bugs to RP@... >From TENSOR@... Sun Dec 16 08:22:00 1979 Date: 16 DEC 1979 0822EST From: TENSOR at MITMC (Richard Pavelle) To: INFOTENSOR at MITMC The new tensor code will be released shortly. There has been a great deal of revision to ITENSR and ETENSR. During the next few weeks, before the programs are released, it would be helpful if some of you would try the code and examine an early draft of the manual which is on the file TENSOR;MANUAL DOCUME. If anyone does not have a hardcopy terminal available I can send a copy. Recall there are also demo files called TENSOR;ETENSR DEMO(1,2,...) and ITENSR DEMO(1,2,...). Send comments to RP or TENSOR. >From TENSOR@... Sat Feb 16 16:31:00 1980 Date: 16 FEB 1980 1631EST From: TENSOR at MITMC (Richard Pavelle) To: INFOTENSOR at MITMC The new tensor packages are operational. The ETENSR pack is now called CTENSR and is available by doing LOADFILE(CTENSR,FASL,SHARE); for component tensor manipulation. The ITENSR pack, as before, is loaded by doing LOADFILE(ITENSR,FASL,SHARE); for indicial tensor manipulation. Both packages have many new functions as well as old ones which have been modified. A full description is available by printing SHARE;TENSOR DESCR. In addition, demos exist on the TENSOR directory under the first filenames CTENSR and ITENSR. Send bugs or comments to RP or TENSOR. >From RP@... Thu Jul 10 07:46:00 1980 Date: 10 JUL 1980 0746EDT From: RP at MITMC (Richard Pavelle) To: INFOTENSOR at MITMC John Fitch, Michael Rothstein and I are writing an article on Computer Algebra for Scientific American. I am soliciting ideas about specific items of interest we might include. The proposal to Scientific American suggested the following topics: 1) a historical introduction to algebraic manipulation 2) a description of algorithm implementation and capabilities 3) the various programming languages and their advantages to specific systems 4) a description of some specific problems which have been solved. This would include some of the big problems which had been done by hand and have now been checked by computer with comments on the accuracy of scientists of that day. 5) the future of the field and comments on problems which may be solved (in the physical sciences for example). The article must, of course, be directed to the educated layman. In addition, no equations may appear in the text but we can put them in separate boxes. Bearing in mind that the 5 topics above are not cast in stone, but there are the two constraints, I would appreciate any suggestions and/or comments. Please reply to RP@... Thanks. P.S. Please excuse the multiple copies some of you may receive because of my choice of mailing lists. >From TENSOR@... Thu Aug 7 13:51:00 1980 Date: 7 AUG 1980 1351EDT From: TENSOR at MITMC (Richard Pavelle) To: INFOTENSOR at MITMC The new tensor manual has been reproduced as an LCS document. If you wish to have a copy for your very own then send me a note. If your inquir listing does not give your address then send that as well. Send requests to TENSOR@... >From RP@... Sun Sep 21 11:15:00 1980 Date: 21 SEP 1980 1115EDT From: RP at MITMC (Richard Pavelle) To: INFOTENSOR at MITMC Plans are being made to extend CTENSR to include interaction with LSH's STENSR package. This will mean that a user in CTENSR may decide that a 5dimensional array such as the covariant derivative of the Riemann tensor is needed or perhaps a scalar constructed from the Riemann tensor and its dual whatever. A new function in CTENSR will interact with STENSR to allow construction of a large number of geometrical objects. We need some input and hence this note. We must have some idea of the kinds of objects you may be interested in so we can build a decent input function in CTENSR. Therefore, if you have some ideas of the kinds of objects you may want to construct send mail to TENSOR@... >From TENSOR@... Sun Sep 28 14:46:00 1980 Date: 28 SEP 1980 1446EDT From: TENSOR at MITMC (Richard Pavelle) To: INFOTENSOR at MITMC CC: GJC at MITMC There is now a new version of CTENSR called TENSOR;CTENSR NFASL. It runs about twice as fast as the old version, CTENSR FASL, but may leave less work space for the user. This may not, however, be apparant for standard problems. I am asking users to test the new version and let me know how it runs. If there are no core problems I will let this become the working version with the fassave as the backup version. However, for the present the old version will still be loaded by calling TSETUP() in MACYSMA. Thanks go to GJC for creating CTENSR NFASL. >From RP@... Sat Oct 4 16:49:41 1980 RP@... 10/04/80 16:49:41 To: JPG at MITMC, GJC at MITMC, JM at MITMC, RZ at MITMC To: LSH at MITMC, TENSOR at MITMC I ran some tests on GJC'c newly translated and compiled version of CTENSR comparing it to the FASLOAD which has been the standard. Both are about the same size. GJC's looks very good for the 4 tests below. LHS's version bombed out for the 4th demo but was equivalent to GJC's wrt time and size for the other three. In view of these results I think this version should replace the FASSAVE. I will wait a few days and run some more tests. Any comments? CTENSR DEMO1 TOTALTIME GCTIME FREECORE AT FINISH FASLOAD 12402 msec. 4151 msec. 40 BLOCKS GJC 10209 msec. 3770 msec. 41 BLOCKS CTENSR DEMO2 TOTALTIME GCTIME FREECORE AT FINISH FASLOAD 79252 msec. 23022 msec. 32 BLOCKS GJC 26251 msec. 9326 msec. 37 BLOCKS CTENSR DEMO3 TOTALTIME GCTIME FREECORE AT FINISH FASLOAD 54072 msec. 15815 msec. 34 BLOCKS GJC 24662 msec. 9378 msec. 37 BLOCKS CTENSR DEMO4 TOTALTIME GCTIME FREECORE AT FINISH FASLOAD 54010 msec. 19832 msec. 6 BLOCKS GJC 38671 msec. 15216 msec. 9 BLOCKS >From RP@... Sun Oct 5 22:26:00 1980 Date: 5 OCT 1980 2226EDT From: RP at MITMC (Richard Pavelle) To: INFOTENSOR at MITMC CC: GJC at MITMC There is now a new version of CTENSR called TENSOR;CTENSR FASL. It is translated and compiled and it runs several times as fast as the old version while providing more work space for the user. I would like users to test it and let me know if there are any problems. CTENSR FASL may be loaded by calling TSETUP() in MACYSMA or loading the file directly. Thanks go to GJC for creating the new version. >From LSH@... Wed Nov 5 08:33:00 1980 Date: 5 NOV 1980 0833EST From: LSH at MITMC (Lars S. Hornfeldt) Subject: STENSR's humanoid trig simplifier To: MACSYMAI at MITMC, ELL at MITMC, STOUTE at MITMC CC: INFOTENSOR at MITMC, MRM at MITMC, JPFF at MITMC TRIGSUM(exp); is a new function that exploits the trig sumrelation: 2 2 sin (x) + cos (x) 1 => 0 simultaneously in all formulations: sin+cos>1, 1sin>cos, 1cos>sin. Each direction is selectively used only where it is BENEFICIAL, and the program returns THAT mixture of sin and cos that constitutes the least number of terms. For instance: TRIGSUM of: (ONE  C )*SIN(X)^2 Returns ( S)*SIN(X)^2 + (ONE  S)*COS(X)^2 ===> + ( C )*COS(X)^2 + ( + C + S) + (ONE ) This works equally well and fast if multiplied with any sincos power. The workspace consumption =0, in contrast to explicit subst. sin=>cos. See the output file LSH;TRGSUM DEMOUT which is a writefile of the batch TRGSUM,DEMO TRIGSUM calls the arbitrarysumsubstitutor (=1yr work) in STENSR (6y). An attempt to explain it's main lines is in TRGSUM MAIL (complementing Springer Verlag.. see lsh;STENSR INFO) I've the last two months [besides beating RP's Sci. Amproblem on 4 machines] made long planned improvements of the sumsubstitutor as to: 1) Substitute COLLAPSABLE sums, ie sums for which the number of, and sequence of, the terms may change in certain malign environments. Eg. the cyclic sum of 3 Riemann tensors (=identically zero) can collapse to 2 or less terms if contracted with symmetric tensors. 2) allow a userprovided, optional ELECTIONfunction, that determines what terms to get rid of when that choice is extra tricky. A such one is built into TRIGSUM, doing the choice between the terms associated with "sin", "cos" and "1". Let me know if you can repeat any demo example with trigsimp,ratsubst ,exponentialize.. lsh >From LSH@... Tue Dec 16 20:10:00 1980 Date: 16 DEC 1980 2010EST From: LSH at MITMC (Lars S. Hornfeldt) Subject: Humanlike new TRIGSIMPLIFIER and SUMSUBSTITUTOR To: INFOMACSYM at MITMC, INFOTENSOR at MITMC, HEP at MITMC TRIGSUM(exp); is a new function (autoloading) that exploits the TRIGonometric SUMrelation: 2 2 sin (x) + cos (x)  1 ==> 0 in an optimal fashion; ie it uses DIFFERENT formulations: 2 2 2 2 2 2 sin + cos ==> 1, 1  sin ==> cos , 1  cos ==> sin selectively only where they are BENEFICIAL, and the program returns THAT mixture of sin and cos that constitutes the least number of terms. For instance, TRIGSUM on the 6termexpression: (ONE  C )*SIN(X)^2 \ Returns 3 terms: / ( S)*SIN(X)^2 + (ONE  S)*COS(X)^2 > ===> < + ( C )*COS(X)^2 + ( + C + S) / \ + (ONE ) This works equally well and fast if multiplied with any sincos power. TRIGSUM uses the sumsubstitutor (=1yr work) in STENSR. For references and pointers see SHARE;STENSR USAGE. Any arb.lengthsum of arb.length products of tensors can be substituted, and in PRINCIPLE also of scalars. Send bugs, and such sumrelations that you want to exploit, to me. Being a complicated program, it's not small, but you can ALWAYS type TRIGSUM(..); since it tests space to fit the program before it autoloads. Also the workspace consumption =0, in contrast to explicit subst. sin=>cos. Do :PRINT LSH;TRGSUM DEMOUT to see a demo writefile, or run the demo itself by DEMO(TRGSUM,DEMO,DSK,LSH)$ which takes 5 cpumin to end [but (a curiosum): substituting sin=>cos would give results requiring an Earthsized machine to store, and would take 10^7 Universelifetimes]. lsh >From RP@... Sun Jan 25 10:17:00 1981 Date: 25 JAN 1981 1017EST From: RP at MITMC (Richard Pavelle) To: INFOTENSOR at MITMC I wish to remind users of the tensor packages that if you have written any code which you feel should/could be added to the existing code then please let me know. This is the best way to expand the capabilities! >From LSH0@... Sat May 30 12:35:00 1981 Date: 30 May 1981 12:35EDT From: Lars S. Hornfeldt <LSH at MITMC> Sender: LSH0 at MITMC Subject: TRIGSUM accepts all trigfunctions To: INFOMACSYM at MITMC, INFOTENSOR at MITMC at input, i.e. also tan, cot, sec and csc, and converts them to sin and cos, so that all equivalent formulations of the relation sin^2 + cos^2 = 1 are exploited fully (decreasing the number of terms). Then it also COMBINES BACK the sin and coses into the most advantageous combination of the other functions (not offered by earlier methods as I know). If nothing better, at least neg. powers of sin or cos are replaced with csc and sec. Both conversions are integrated in an excisting one, costing negligible extra time. Please send +/ experiences and bugs to me. lsh >From ADK@... Thu Jan 14 16:03:00 1982 Date: 14 January 1982 16:03EST From: Anthony D. Kennedy <ADK at MITMC> Subject: Dirac Algebra. To: HEP at MITMC, INFOTENSOR at MITMC, WEC at MITMC, MACSYM at MITMC I am considering implementing a new Dirac gammamatrix algorithm in Macsyma. The algorithm is much faster than the previously used bruteforce methods for arbitrary ndimensional calculations, and is quite possibly faster than tricks like the Kahane algorithm in four dimensions. I would like to know all your comments, suggestions, and uses (past, present, or future) for such a program, as well as your preferences for input/output formats and syntax. Now is the chance to make your prejudices known!  Tony Kennedy (ADK@...) [Apologies for multiple copies due to overlapping mailinglists] >From TENSOR@... Fri Feb 19 07:26:00 1982 Date: 19 February 1982 07:26EST From: Richard Pavelle <TENSOR at MITMC> To: INFOTENSOR at MITMC Do not use ITENSR until further notice. It is broken! >From TENSOR@... Mon Mar 1 08:38:00 1982 Date: 1 March 1982 08:38EST From: Richard Pavelle <TENSOR at MITMC> To: INFOTENSOR at MITMC ITENSR is now fixed. Thanks JPG. >From TENSOR@... Tue Mar 9 14:38:00 1982 Date: 9 March 1982 14:38EST From: Richard Pavelle <TENSOR at MITMC> Subject: TRANSFORM in CTENSR To: INFOTENSOR at MITMC cc: JPG at MITMC, ELLEN at MITMC, RJF at MITMC, RP at MITMC, ELL at MITMC The TRANSFORM function in CTENSR has been renamed to TTRANSFORM. >From TENSOR@... Tue Mar 9 15:25:00 1982 Date: 9 March 1982 15:25EST From: Richard Pavelle <TENSOR at MITMC> To: Kim.fateman at UCBC70 cc: RP at MITMC Date: 4 Mar 1982 12:37:41PST From: Kim.fateman at Berkeley I mentioned to you that "transform" as a name of a command was used elsewhere (than in ctensor). It is used in "ode". We noticed it on the vax because we have installed autoload properties on entries into ode in our default system. Thanks. It has been changed to TTRANSFORM in CTENSR. >From ELLEN@... Wed Mar 10 02:42:59 1982 From: ELLEN@... 03/10/82 02:42:59 Subject: Re: TRANSFORM in CTENSR I have changed TRANSFORM in TENSOR;MANUAL > to be TTRANSFORM, and made the proper change in DESCRIBE. >From ELLEN@... Wed Mar 10 10:56:00 1982 Date: 10 March 1982 10:56EST From: V. Ellen Golden <ELLEN at MITMC> To: GJC at MITMC cc: BUGMULMAX at MITMC I moved TENSOR;ITENSR > over to Multics as >udd>Mathlab>macsyma>share>itensr.lisp and when I attempt to loadfile it it gets "Call to an undefined function '?macsyma\module' at Lisp level." Any ideas what that is about? >From RP@... Thu Mar 11 08:25:00 1982 Date: 11 March 1982 08:25EST From: Richard Pavelle <RP at MITMC> Subject: conflicting functions in ITENSR and CTENSR To: JPG at MITMC cc: RP at MITMC, ELLEN at MITMC Date: 22 September 1981 04:10EDT From: Jeffrey P. Golden <JPG at MITMC> ELLEN@... 09/22/81 03:57:36 Re: BUG  ITENSR I tried the ITENSO DEMO1 and it got a "too many arguments supplied to RIEMANN(DIS) at the first line. You better check this, since POURNE may want to use these demos (and the error could be indicative of more serious trouble in MACSYMA). It appears that RIEMANN is two different functions, the one in CTENSR takes one arg and the one in ITENSR takes two args! So you get into trouble if you try CTENSR and ITENSR in the same MACSYMA. What lossage! This should be fixed. I have changed the RIEMANN function in ITENSR to CURVATURE. If this name causes no conflicts please recompile TENSOR;ITENSR > and I will send a note out. >From RP@... Thu Mar 11 16:37:00 1982 Date: 11 March 1982 16:37EST From: Richard Pavelle <RP at MITMC> Subject: change to ITENSR To: INFOTENSOR at MITMC The RIEMANN function in ITENSR, which represents the standard Riemann 4 index curvature tensor, has been renamed to CURVATURE to stop the conflict with the RIEMANN function in CTENSR. >From RP@... Fri Mar 12 09:46:00 1982 Date: 12 March 1982 09:46EST From: Richard Pavelle <RP at MITMC> Subject: TENSOR;MANUAL > To: ELLEN at MITMC cc: RP at MITMC ELLEN@... 03/11/82 18:19:42 Re: TENSOR;MANUAL > I have put CURVATURE alphabetically, which places it between COVDIFF and DIFF. I myself wonder if (since there is an index) you might want to consider reordering the functions more by "use", if there is any sort of progression there... it is a very minor point, so if you don't care we will leave things as they are, but to me for instance it would seem natural to have DIFF and COVDIFF together, and have CURVATURE (even if it were named RIEMANN and thus came later in the alphabet) just before GEODESIC, since they appear (to my casual glance) to be related. Anyone needing the page of a precise function probably isn't going to be making use of the fact they are alphabetical, but rather using the index. I do not think this would be useful here. Clearly, for a users manual it is a winning idea. >From RP@... Sun Mar 14 17:11:00 1982 Date: 14 March 1982 17:11EST From: Richard Pavelle <RP at MITMC> To: ELLEN at MITMC cc: RP at MITMC I made a few more changes to the TENSOR manual. I assume you will be using this as the source for the new manual, right? Also, I want to remind you about checking that acknowledgements to not occur in the new manual. >From ELLEN@... Sun Mar 14 17:11:55 1982 ELLEN@... 03/14/82 17:11:55 Yes, the PUB for the manual pulls TENSOR;MANUAL > in as source file. I will check on the acknowledgements, thanks for reminding me. >From ELLEN@... Mon Mar 15 16:31:30 1982 ELLEN@... 03/15/82 16:31:30 Date: 14 March 1982 17:11EST From: Richard Pavelle <RP at MITMC> I made a few more changes to the TENSOR manual. I assume you will be using this as the source for the new manual, right? Also, I want to remind you about checking that acknowledgements to not occur in the new manual.  I have removed the acknowledgement from TENSOR;MANUAL > and placed it in DRAFT > so that if the TENSOR manual is run off again as a TM, it will appear in that copy, but the text itself as gets slurped into the "real manual" will not contain it. >From RP@... Tue Mar 23 20:40:00 1982 Date: 23 March 1982 20:40EST From: Richard Pavelle <RP at MITMC> To: JPG at MITMC cc: RP at MITMC, ELLEN at MITMC, CWH at MITMC Date: 23 March 1982 03:39EST From: Jeffrey P. Golden <JPG at MITMC> CWH tells me that ITENSR has been compiled on Multics. Load it up and see if it works. Date: 10 March 1982 10:56EST From: V. Ellen Golden <ELLEN at MITMC> To: GJC at MITMC cc: BUGMULMAX at MITMC I moved TENSOR;ITENSR > over to Multics as >udd>Mathlab>macsyma>share>itensr.lisp and when I attempt to loadfile it it gets "Call to an undefined function '?macsyma\module' at Lisp level." Any ideas what that is about? This bug is still there so I cannot test ITENSR. >From CWH@... Tue Mar 23 21:15:00 1982 Date: 23 March 1982 21:15EST From: Carl W. Hoffman <CWH at MITMC> To: RP at MITMC, JPG at MITMC, ELLEN at MITMC, GJC at MITMC Date: 23 March 1982 20:40EST From: Richard Pavelle <RP at MITMC> Date: 10 March 1982 10:56EST From: V. Ellen Golden <ELLEN at MITMC> I moved TENSOR;ITENSR > over to Multics as >udd>Mathlab>macsyma>share>itensr.lisp and when I attempt to loadfile it it gets "Call to an undefined function '?macsyma\module' at Lisp level." Any ideas what that is about? This bug is still there so I cannot test ITENSR. No, that's a different bug. The installed Macsyma doesn't know about macsymamodule, so running interpreted system code won't work. Try loading the compiled file. >From ELLEN@... Tue Mar 23 23:47:00 1982 Date: 23 March 1982 23:47EST From: V. Ellen Golden <ELLEN at MITMC> To: CWH at MITMC cc: RP at MITMC, JPG at MITMC, ELLEN at MITMC, GJC at MITMC RE ITENSR... what is the proper file spec for the compiled version of ITENSR? My guess would be ">udd>Mathlab>macsyma>share>itensr.fasl" but Multics is not always that obvious... is this correct? >From ELLEN@... Wed Mar 24 00:26:00 1982 Date: 24 March 1982 00:26EST From: V. Ellen Golden <ELLEN at MITMC> To: CWH at MITMC cc: ELLEN at MITMC, RP at MITMC, JPG at MITMC, GJC at MITMC Date: 23 March 1982 23:47EST From: V. Ellen Golden <ELLEN at MITMC> RE ITENSR... what is the proper file spec for the compiled version of ITENSR? My guess would be ">udd>Mathlab>macsyma>share>itensr.fasl" but Multics is not always that obvious... is this correct?  I just tried it and it is not correct. NU? >From CWH@... Wed Mar 24 11:13:00 1982 Date: 24 March 1982 11:13EST From: Carl W. Hoffman <CWH at MITMC> To: ELLEN at MITMC cc: GJC at MITMC, JPG at MITMC, RP at MITMC Date: 23 March 1982 23:47EST From: V. Ellen Golden <ELLEN> To: CWH cc: RP, JPG, ELLEN, GJC RE ITENSR... what is the proper file spec for the compiled version of ITENSR? My guess would be ">udd>Mathlab>macsyma>share>itensr.fasl" but Multics is not always that obvious... is this correct? No, it is just called itensr. If you do "cwd >udd>Mathlab>Macsyma>share" (or just "cwd >udd>mal>a>share"), then you can type "list" to list the contents of the directory. (Of course this is less obvious than typing controlF, but what can you do with a loser like Multics.) >From RP@... Wed Mar 24 11:38:00 1982 Date: 24 March 1982 11:38EST From: Richard Pavelle <RP at MITMC> To: ELLEN at MITMC cc: RP at MITMC, JPG at MITMC Date: 24 March 1982 11:13EST From: Carl W. Hoffman <CWH at MITMC> Date: 23 March 1982 23:47EST From: V. Ellen Golden <ELLEN> To: CWH cc: RP, JPG, ELLEN, GJC RE ITENSR... what is the proper file spec for the compiled version of ITENSR? My guess would be ">udd>Mathlab>macsyma>share>itensr.fasl" but Multics is not always that obvious... is this correct? No, it is just called itensr. If you do "cwd >udd>Mathlab>Macsyma>share" (or just "cwd >udd>mal>a>share"), then you can type "list" to list the contents of the directory. (Of course this is less obvious than typing controlF, but what can you do with a loser like Multics.) I tried LOADFILE(">udd>Mathlab>macsyma>share>itensr") and this is ok. Then BATCH(">udd>Mathlab>macsyma>share>itensr.demo1") etc bombs out because each ITENSR demo has a command to LOADFILE(ITENSR,FASL). Can you edit this line out of each demo or tell me how to do it? >From ELLEN@... Wed Mar 24 17:33:00 1982 Date: 24 March 1982 17:33EST From: V. Ellen Golden <ELLEN at MITMC> To: RP at MITMC cc: ELLEN at MITMC, JPG at MITMC Date: 24 March 1982 11:38EST From: Richard Pavelle <RP at MITMC> Date: 24 March 1982 11:13EST From: Carl W. Hoffman <CWH at MITMC> No, it is just called itensr. If you do "cwd >udd>Mathlab>Macsyma>share" (or just "cwd >udd>mal>a>share"), then you can type "list" to list the contents of the directory. (Of course this is less obvious than typing controlF, but what can you do with a loser like Multics.) I tried LOADFILE(">udd>Mathlab>macsyma>share>itensr") and this is ok. Then BATCH(">udd>Mathlab>macsyma>share>itensr.demo1") etc bombs out because each ITENSR demo has a command to LOADFILE(ITENSR,FASL). Can you edit this line out of each demo or tell me how to do it?  I edited a copy of each demo file here on MC and retransferred them to Multics. Now, when I attempt to demo these files, they appear to work until (for demo1, e.g.) up to the line CANFORM(EXP); at which point it gets an error: lisp:function allfiles rejected argument ((dsk tensor) symtry fasl) which I gather means we need to transfer (and compile) some more files. >From ELLEN@... Wed Mar 24 17:55:00 1982 Date: 24 March 1982 17:55EST From: V. Ellen Golden <ELLEN at MITMC> Subject: More ITENSR stuff To: CWH at MITMC, GJC at MITMC, RP at MITMC cc: ELLEN at MITMC, JPG at MITMC It appears to get ITENSR working on Multics we need also to compile TENSOR; CANTEN 6 GENER 50 SYMTRY 100 on Multics. Since there are called from itensr. >udd>Mathlab>macsyma>share>itensr.demo1 gets an error: lisp:function allfiles rejected argument ((dsk tensor) symtry fasl) >From Unruh.QuantGR@... Thu Mar 25 17:21:00 1982 Date: 25 March 1982 17:21 est From: Unruh.QuantGR at MITMULTICS Subject: Bug in ctensr on Multics To: RP at MITMC I've run into another bug in CTENSR on Multics.I ran tsetup(), dimension 4, coordinates [u,v,x,y], symmetric metric, with 1,2=a , 3,3=b , 4,4=b and depends(a,[x,y],b,[x,y]). I had the metric listed. After the metric was displayed,I got the message "Call to an undefined function 'true' at Lisp level." Unruh under QuantGR on Multics. >From RP@... Thu Mar 25 19:25:27 1982 From: RP@... 03/25/82 19:25:27 Subject: Re: Bug in ctensr on Multics To: JPG at MITMC CC: RP at MITMC, CWH at MITMC Date: 25 March 1982 17:21 est From: Unruh.QuantGR at MITMULTICS coordinates [u,v,x,y], symmetric metric, with 1,2=a , 3,3=b , 4,4=b and depends(a,[x,y],b,[x,y]). I had the metric listed. After the metric was displayed,I got the message "Call to an undefined function 'true' at Lisp level." Unruh under QuantGR on Multics. I ran this on MC without difficulty but it does bomb out on MULTICS see RP;AA BUG. Any suggestions? >From JPG@... Thu Mar 25 19:39:35 1982 RP@... 03/25/82 19:39:35 Re: Bug in ctensr on Multics To: JPG at MITMC CC: RP at MITMC, CWH at MITMC I ran some more tests and the CTENSR demos run on MULTICS though this example of Unruh's bombs. The problem occurs when ANY metric is direct input (as opposed to the demos where the user does not type them). I have no idea where the problem lies. >From RP@... Thu Mar 25 19:42:00 1982 Date: 25 March 1982 19:42EST From: Richard Pavelle <RP at MITMC> Subject: Bug in ctensr on Multics To: Unruh.QuantGR at MITMULTICS cc: RP at MITMC Date: 25 March 1982 17:21 est From: Unruh.QuantGR at MITMULTICS I've run into another bug in CTENSR on Multics.I ran tsetup(), dimension 4, coordinates [u,v,x,y], symmetric metric, with 1,2=a , 3,3=b , 4,4=b and depends(a,[x,y],b,[x,y]). I had the metric listed. After the metric was displayed,I got the message "Call to an undefined function 'true' at Lisp level." Unruh under QuantGR on Multics. It seems to happen with any metric. MC is working fine if that helps. We will try to do something but there is little support for MULTICS macsyma as you may know. >From JPG@... Sat Mar 27 09:39:00 1982 Date: 27 March 1982 09:39EST From: Jeffrey P. Golden <JPG at MITMC> To: ELLEN at MITMC, RP at MITMC You people have any ideas for UNRUH: Date: 26 March 1982 17:08 est From: Unruh.QuantGR at MITMULTICS To: JPG at MITMC Yes, I am the William G Unruh who used to use MITMC, and I would love to use MC to do my calculations. My problem is that here I do not have access to ARPA NET and have been unable to find out how to get on to it from British Columbia. We are now on Datapac and I can therefore get onto Multics via TELENET. Its too expensive to phone MC (about $100/hr). If you have any sugestion as to how I could use MC I would love to hear it. >From ELLEN@... Sat Mar 27 13:27:00 1982 Date: 27 March 1982 13:27EST From: V. Ellen Golden <ELLEN at MITMC> Subject: Using MC To: Unruh.QuantGR at MITMULTICS cc: JPG at MITMC, ELLEN at MITMC, RP at MITMC One possibility is to request ARPAnet access (or Chaos net access... that is our local MIT net and I believe Multics is now connected to it) to MC to go along with your Multics account and use MC from a "supdup" connection from Multics. The connection (being through Telenet to Multics then through ARPA or Chaos net to MC) will probably be somewhat "slow" and perhaps frustrating from the "user input/output" point of view, but of course the Tensor package would then work for you, and you could probably do any preparation of batch files or whatever on Multics and only make use of an interactive port to MC to do the actual calculation. You would have to contact the Information Processing Services to arrange this. If they have any questions about it, you can refer them to me. >From JPG@... Sun Mar 28 13:26:00 1982 Date: 28 March 1982 13:26EST From: Jeffrey P. Golden <JPG at MITMC> To: RP at MITMC, Unruh.QuantGR at MITMULTICS cc: BUGMULMAX at MITMC, CWH at MITMC RP@... 03/25/82 19:25:27 Re: Bug in ctensr on Multics To: JPG at MITMC CC: RP at MITMC, CWH at MITMC Date: 25 March 1982 17:21 est From: Unruh.QuantGR at MITMULTICS coordinates [u,v,x,y], symmetric metric, with 1,2=a , 3,3=b , 4,4=b and depends(a,[x,y],b,[x,y]). I had the metric listed. After the metric was displayed,I got the message "Call to an undefined function 'true' at Lisp level." Unruh under QuantGR on Multics. I ran this on MC without difficulty but it does bomb out on MULTICS: See RP;AA BUG. Any suggestions? has been fixed. >From JPG@... Sun Mar 28 13:36:00 1982 Date: 28 March 1982 13:36EST From: Jeffrey P. Golden <JPG at MITMC> To: RP at MITMC, Unruh.QuantGR at MITMULTICS cc: BUGMULMAX at MITMC Date: 12 March 1982 10:15EST From: Richard Pavelle <RP at MITMC> Date: 11 March 1982 18:55 est From: Unruh.QuantGR at MITMULTICS In the CTENSR package on MULTICS MACSYMA , one cannot seem to enter a new metric . If I try tsetup() I get a message saying I must do a KILL(ALL). I KEEP GETTING THIS EVEN AFTER I DO A KILL(ALL) For the moment you will have to start up a fresh MACSYMA to enter a new metric. has been fixed so starting up a new macsyma is no longer necessary. (You have to do a KILL(ALL); and a TENSORKILL:TRUE$ as RP's comments dictate.) >From JPG@... Mon Apr 5 01:02:00 1982 Date: 5 April 1982 01:02EST From: Jeffrey P. Golden <JPG at MITMC> To: LAParker.Gravity at MITMULTICS cc: MULTICSMACSYMABUGS at MITMC Date: 4 April 1982 18:45 est From: LAParker.Gravity at MITMULTICS To: MulticsMacsymaBugs at MITMC [1] why did loadfile(etensr,fasl,dsk,share) not load as macsyma manual says it should? What do I do? The manual was written before the current Multics Macsyma even existed. On Multics you can get the package which is now called "ctensr" by doing: loadfile(">udd>Mathlab>macsyma>share>ctensr.lisp"); [2] Following macsyma reference manual, p.191192, I typed tsetup(), but only got the reply tsetup() rather than what the manual shows. On Multics you have to do the loadfile listed in [1] above before typing tsetup();. >From RP@... Fri Jul 2 13:58:00 1982 Date: 2 July 1982 13:58EDT From: Richard Pavelle <RP at MITMC> To: INFOTENSOR at MITMC cc: RP at MITMC I have revised the tensor manual, TM167 (June 1980), to reflect some changes and additions to the CTENSR and ITENSR packages. If you wish to receive a copy let me know. >From RP@... Sat Nov 20 16:44:00 1982 Date: 20 November 1982 16:44EST From: Richard Pavelle <RP at MITMC> Subject: RATRIEMAN To: INFOTENSOR at MITMC At ASB's suggestion, for consistency, I have changed RATRIEMAN to RATRIEMANN in CTENSR. >From RP@... Fri Jan 14 06:05:00 1983 Date: 14 January 1983 06:05EST From: Richard Pavelle <RP @ MITMC> Subject: GR10 To: INFOTENSOR @ MITMC Many of you on this list do not work in relativity but if some of your colleagues have used MACSYMA for relativity applications please forward the following to them: Lars Hornfeldt and his colleagues at Stockholm would like to get together a list of papers for the 10th International Conference on General Relativity and Gravitation this July in Padova. The papers are to be those which have used MACSYMA for General Relativity and I am trying to collect them for Hornfeldt. If you have published any, or if you have any in preprint form, send them or the references to me. Thanks. >From vttoth@... Tue Nov 30 23:39:00 2004 Date: Tue, 30 Nov 2004 23:39:00 0500 From: "Viktor T. Toth" <vttoth@...> To: "MAXIMA users" Subject: Mail archive This mail archive contains old MIT MACSYMA mailing list messages that were found in two file fragments among the TENSOR package source code. It is mostly of historical interest, but I found some of it educational, i.e., worth preserving. I sorted them chronologically, and modified message headers so that the archive can now be read by any mail program that understands UNIX format mail archives (i.e., mail f mailarchive.txt should suffice on any UNIX/Linux box.) It is interesting to note that much of this code was written at a time when people were still concerned about loading an extra few kilobytes worth of code into system memory! Enjoy, Viktor Toth (http://www.vttoth.com/)  NEW FILE: schwarz.dem  /* * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of * the License, or (at your option) any later version. * * This program is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU General Public License for more details. * * Obtaining the Schwarzschild metric with MAXIMA's CTENSOR * */ kill(all); showtime:all$ /* if properties(GCFAC) = [] then load(scifac,fasl)$ */ /*load(facexp); */ /*load(ode2);*/ ("This file finds the Schwarzschild solution of the Einstein vacuum equations" ); if get('ctensor,'version) = false then load(ctensor)$ /* the following allows the batch program to run by presetting flags */ setflags()$ /* this calls for the rational simplification of geometrical objects */ ratfac:true$ ("Specify the dimension of the manifold and the coordinate labels."); (dim:4,ct_coords:[r,th,ph,t])$ ("Enter the general static spherically symmetric metric."); lg:matrix([a,0,0,0],[0,r^2,0,0],[0,0,r^2*sin(th)^2,0],[0,0,0,d]); ug:invert(lg)$ ("Specify functional dependencies"); depends([a,d],r); ("computes inverse metric and specifies diagonality"); ug:invert(lg)$ ("computes the mixed Christoffel symbols but not display them"); christof(false)$ ("computes and ratsimps Ricci tensor"); uricci(false)$ ("computes and displays the Einstein tensor"); einstein(true); ("makes a list of the nonzero components of the Einstein tensor (EIN) where the 2 indicates the order of the array EIN"); exp:findde(ein,2); ("now begins to solve the field equations"); exp1:ode2(last(exp),a,r); (" a kludge to get the solution (the 1,1 component) explicitly"); solve(exp1,r); resultlist:solve(%,a)$ h:ev(part(resultlist,1),eval); ("to cast the solution into standard form"); h1:h,exp(%c) = 1/(2*m),factor; ("now to find the 4,4 component"); ev(first(exp),h1,diff,factor); ode2(num(%),d,r); expand(radcan(%)); h2:ev(%,%c = 1); ("H1 and H2 should be the solution and to check"); sol:[h1,h2]; exp,sol,diff,ratsimp; /* kill(all); IF GET('CTENSOR,'VERSION) = FALSE THEN LOAD("ctensor.mac")$ */ (dim:4,ct_coords:[r,th,ph,t])$ ("Enter the Schwarzschild metric in standard coordinates.")$ lg : matrix([1/(12*m/r),0,0,0],[0,r^2,0,0] ,[0,0,r^2*sin(th)^2,0],[0,0,0,(2*m/r1)])$ ug:invert(lg)$ ("Compute and display mixed Christoffel symbols")$ christof(all)$ uricci(true)$ ("computes scalar curvature")$ scurvature(); ("computes Riemann tensor")$ lriemann(true)$ ("computes contravariant Riemann tensor")$ uriemann(false)$ ("computes the Kretchmann invariant Rijkl^2")$ rinvariant(); diagmetric:true; ("Compute the covariant form of geodesic equations")$ cgeodesic(true)$ /*("Compute the contravariant form geodesic equations"); block( for i thru dim do emc[i]: factorfacsum(ratexpand(sum(ug[i,a]*geod[a],a,1,dim))), for i thru dim do ldisplay(emc[i]));*/ block([title: "Schwarzschild Potential for Mass M=2",m:2.], plot3d([r*cos(th),r*sin(th),ug[1,1]],[r,.4,4.],[th,%pi,%pi],['grid,50,15])); Index: ademo.dem =================================================================== RCS file: /cvsroot/maxima/maxima/share/tensor/ademo.dem,v retrieving revision 1.8 retrieving revision 1.9 diff u d r1.8 r1.9  ademo.dem 18 Nov 2004 03:53:28 0000 1.8 +++ ademo.dem 1 Dec 2004 04:53:02 0000 1.9 @@ 1,6 +1,37 @@ +/* Copyright (C) 2003 Valerij Pipin <pip@...> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * The double divergence of the Riemann tensor + * +*/ /* THE FINAL RESULT SHOULD BE ZEROTHE DOUBLE DIVERGENCE OF THE RIEMANN TENSOR ON ANTISYMMETRIC INDICES VANISHES IDENTICALLY */ +(" +The double divergence of the Riemanntensor on its antisymmetric +indices should vanish. We can prove this in geodesic coordinates:")$ +showtime:true; +load(itensor); +imetric(g); +covdiff(icurvature([r,s,t],[u])*g([],[s,i])*g([],[t,j]),i)$ +nterms(%); +rename(expand(%th(2)))$ +igeodesic_coords(canform(rename(expand(ev(%)))),g)$ +ishow(%)$ +canform(covdiff(%,j))$ +nterms(%); +rename(expand(igeodesic_coords(%th(2),g))); + +/* Old version. Longer, faster, but uses suspect simplifications. load(itensor)$ showtime:true; allsym:true; @@ 20,4 +51,4 @@ conmetderiv(h6,g)$ h8:igeodesic_coords(%,g)$ nterms(%); ishow(canten(rename(h8)))$ +ishow(canten(rename(h8)))$ */ Index: ctensor.mac =================================================================== RCS file: /cvsroot/maxima/maxima/share/tensor/ctensor.mac,v retrieving revision 1.7 retrieving revision 1.8 diff u d r1.7 r1.8  ctensor.mac 30 Nov 2004 04:13:21 0000 1.7 +++ ctensor.mac 1 Dec 2004 04:53:02 0000 1.8 @@ 706,6 +706,88 @@ [0, 0, a*sin(theta)^2*(deltar^2a^2)/rho^2, (a^2*sin(theta)^2delta)/rho^2]) ) + + /* Now some undocumented metrics from metrics.mac */ + + else if coordinate_system='standard then + ( + dim:4, + depends([a,d],x), + ct_coords:[x,y,z,t], + if cframe_flag then error("No frames implementation") + else lg:matrix([a,0,0,0],[0,x^2,0,0],[0,0,x^2*sin(y)^2,0],[0,0,0,d]) + ) + else if coordinate_system='nondiagonal3d then + ( + dim:3, + ct_coords:[x,y,z], + if cframe_flag then error("No frames implementation") + else lg:lg:matrix([x^2,y,0],[y,y^2,0],[0,0,z]) + ) + else if coordinate_system='alternateflat4d then + ( + dim:4, + ct_coords:[x,y,z,t], + if cframe_flag then error("No frames implementation") + else lg:matrix([1t^2,0,0,1t*x],[0,1,0,0],[0,0,1,0],[1t*x,0,0,1x^2]) + ) + else if coordinate_system='vacuum then + ( + dim:4, + ct_coords:[x,y,z,t], + if cframe_flag then error("No frames implementation") + else lg:matrix([0,1,a*(2*yt),1],[1,0,a*(2*xt),1], + [a*(2*yt),a*(2*xt),6*a^2*(y+x)^2 + +2*a^2*(2*xt)*(2*yt)3/2,a*(y+x+2*t)], + [1,1,a*(y+x+2*t),1/2]) + ) + else if coordinate_system='bondi then + ( + dim:4, + ct_coords:[x,y,z,t], + dependencies(a(x,y,t),b(x,y,t),c(x,y,t),d(x,y,t)), + if cframe_flag then error("No frames implementation") + else lg:matrix([0,0,0,%e^(2*b)],[0,%e^(2*a)*x^2,0,%e^(2*a)*d*x^2], + [0,0,%e^(2*a)*x^2*sin(y)^2,0], + [%e^(2*b),%e^(2*a)*d*x^2,0,%e^(2*b)*c/x%e^(2*a)*d^2*x^2]) + ) + else if coordinate_system='brans_dicke then + ( + dim:4, + ct_coords:[x,y,z,t], + if cframe_flag then error("No frames implementation") + else lg:at(matrix([a,0,0,0],[0,a*x^2,0,0], + [0,0,a*x^2*sin(y)^2,0],[0,0,0,d]), + [d=((1b/x)/(1+b/x))^(2/l), + a=(1+b/x)^4*((1b/x)/(1+b/x))^(2*(lc1)/l), + p=((1b/x)/(1+b/x))^(c/l)]) + /* ell:l=sqrt((c+1)^2c*(1w*c/2)) */ + ) + else if coordinate_system='lapides then + ( + /* RICCI FLAT METRIC FROM QUANTUM GRAVITYFOUND BY ALAN + LAPIDES LOS ALAMOS APRIL 1982 PRESUME IT IS ONE OF + THE HARRISON METRICS */ + dim:4, + ct_coords:[x,y,z,t], + if cframe_flag then error("No frames implementation") + else lg:at(matrix([1/c,0,0,0],[0,c*a,0,0],[0,0,c*b,0],[0,0,0,c*a]), + [c=%e^(2*atan(sinh(t))),a=(cosh(t)^2sin(y)^2)^2/cosh(t)^2, + b=cosh(t)^2*sin(y)^2]) + ) + else if coordinate_system='kantowski_sachs then + ( + dim:4, + ct_coords:[r,theta,phi,t], + if cframe_flag then error("No frames implementation") + else + ( + lg:matrix([X(t)^2,0,0,0],[0,Y(t)^2,0,0], + [0,0,Y(t)^2*sin(theta)^2,0],[0,0,0,N^2]), + if member('misner,extra_args) then + lg:at(lg,[X(t)=exp(2*sqrt(3)*b(t)),Y(t)=exp(2*sqrt(3)*o(t))])) + ) + else if listp(coordinate_system) then ( error("Not implemented yet!") @@ 1197,25 +1279,19 @@ array bd and the scalar equation is generated by setting the d'Alembertian of the scalar field to zero. That is, one calls the function dscalar on the scalar field. */ bdvac():=block +bdvac(zz):=block (  [], + [addd,boxq:0], if dim#4 then error("This program is restricted to 4 dimensions"),  zz:read("Give a name to the scalar field and  declare its functional dependencies"),  boxq:0, for i:1 thru 4 do for j:1 thru 4 do  ( addd[i,j]:w/zz^2*(diff(zz,ct_coords[i])*diff(zz,ct_coords[j])lg[i,j]* sum(diff(zz,ct_coords[kk])*diff(zz,ct_coords[kk])*ug[kk,kk],kk,1,4)/2)+ (diff(diff(zz,ct_coords[i]),ct_coords[j])sum(mcs[i,j,kk]*  diff(zz,ct_coords[kk]),kk,1,4)lg[i,j]*boxq)/zz  ), + diff(zz,ct_coords[kk]),kk,1,4)lg[i,j]*boxq)/zz, for i:1 thru 4 do for j:1 thru 4 do  (  bd[i,j]:ratsimp(ric[i,j]r*lg[i,j]/20*t[i,j]addd[i,j])  ),  remarray(addd) + bd[i,j]:ratsimp(ric[i,j]r*lg[i,j]/20*t[i,j]addd[i,j]), + remarray(addd), + done )$ /* Compute the EulerLagrange equations for the density of the invariant R^2. @@ 1514,4 +1590,53 @@ )$ +/******************************************************************** + * Untested code from miscellaneous files... + +/* The second covariant derivative of the covariant Ricci Tensor */ + +riccicov(ii,jj,kk,ll):=block(modedeclare([ii,jj,kk,ll,aa,bb],fixnum), +if diagmetric then h[ii,jj,kk,ll]:h[jj,ii,kk,ll]: + ratsimp(sum( + mcs[aa,ii,jj]*ric[jj,jj]*mcs[kk,ll,aa]+ + mcs[aa,jj,ii]*ric[ii,ii]*mcs[kk,ll,aa]+ + ric[aa,aa]*mcs[ii,kk,aa]*mcs[jj,ll,aa]+ + mcs[aa,kk,ii]*ric[ii,ii]*mcs[jj,ll,aa]+ + ric[aa,aa]*mcs[ii,ll,aa]*mcs[jj,kk,aa]+ + mcs[aa,kk,jj]*ric[jj,jj]*mcs[ii,ll,aa] + diff(ric[ii,jj],ct_coords[aa],1)*mcs[kk,ll,aa],aa,1,dim) + +(diff(ric[ii,ii],ct_coords[kk],1)*mcs[jj,ll,ii]+ + ric[ii,ii]*diff(mcs[jj,kk,ii],ct_coords[ll],1)+ + diff(ric[ii,ii],ct_coords[ll],1)*mcs[jj,kk,ii]+ + diff(ric[jj,jj],ct_coords[kk],1)*mcs[ii,ll,jj]+ + ric[jj,jj]*diff(mcs[ii,kk,jj],ct_coords[ll],1)+ + diff(ric[jj,jj],ct_coords[ll],1)*mcs[ii,kk,jj]) + ++diff(diff(ric[ii,jj],ct_coords[kk],1),ct_coords[ll],1)) + +else h[ii,jj,kk,ll]:h[jj,ii,kk,ll]: +ratsimp(sum(sum( + mcs[aa,ii,bb]*ric[bb,jj]*mcs[kk,ll,aa]+ + mcs[aa,jj,bb]*ric[bb,ii]*mcs[kk,ll,aa]+ + ric[aa,bb]*mcs[ii,kk,aa]*mcs[jj,ll,bb]+ + mcs[aa,kk,bb]*ric[bb,ii]*mcs[jj,ll,aa]+ + ric[aa,bb]*mcs[ii,ll,aa]*mcs[jj,kk,bb]+ + mcs[aa,kk,bb]*ric[bb,jj]*mcs[ii,ll,aa],aa,1,dim),bb,1,dim) + + sum( + diff(ric[ii,jj],ct_coords[aa],1)*mcs[kk,ll,aa]+ + diff(ric[aa,ii],ct_coords[kk],1)*mcs[jj,ll,aa]+ + ric[aa,ii]*diff(mcs[jj,kk,aa],ct_coords[ll],1)+ + diff(ric[aa,ii],ct_coords[ll],1)*mcs[jj,kk,aa]+ + diff(ric[aa,jj],ct_coords[kk],1)*mcs[ii,ll,aa]+ + ric[aa,jj]*diff(mcs[ii,kk,aa],ct_coords[ll],1)+ + diff(ric[aa,jj],ct_coords[ll],1)*mcs[ii,kk,aa],aa,1,dim) + ++diff(diff(ric[ii,jj],ct_coords[kk],1),ct_coords[ll],1)))$ + +*******************************************************************/ + + + put('ctensor,'v20041126,'version)$ Index: ex_calc.dem =================================================================== RCS file: /cvsroot/maxima/maxima/share/tensor/ex_calc.dem,v retrieving revision 1.4 retrieving revision 1.5 diff u d r1.4 r1.5  ex_calc.dem 25 Nov 2004 01:43:29 0000 1.4 +++ ex_calc.dem 1 Dec 2004 04:53:02 0000 1.5 @@ 1,6 +1,21 @@ +/* Copyright (C) 2003 Valerij Pipin <pip@...> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * Demonstrating exterior algebra operations + * +*/ ("the anticommutative algebra's operations on indexed objects")$ ("the operations are allowed only on the covariant tensors")$ load("ex_calc.mac"); +load(itensor); dummyx:z; ("The exterior product is denoted by ~. Take it on two 1forms a([i])~b([j])")$ Index: iframe.mac =================================================================== RCS file: /cvsroot/maxima/maxima/share/tensor/iframe.mac,v retrieving revision 1.3 retrieving revision 1.4 diff u d r1.3 r1.4  iframe.mac 29 Nov 2004 05:14:49 0000 1.3 +++ iframe.mac 1 Dec 2004 04:53:02 0000 1.4 @@ 14,14 +14,15 @@ * */ /*itorsion_flag:false;*/ inonmet_flag:false; iframe_bracket_form:true; defcon(ifr,ifri,ifg); defcon(ifg,ifgi,kdelta); +defcon(ifg,ifg,kdelta); /* Helper function to get the metric tensor or return an error */ _g([l]):=if (?boundp)('imetric) then apply(nounify(if true then imetric),l) +_g([l]):=if iframe_flag then apply(nounify(ifg), l) + else if (?boundp)('imetric) then + apply(nounify(if true then imetric),l) else error("Name of metric must be specified"); /* Helper functions to conditionally apply the nonmetricity and @@ 30,13 +31,9 @@ _itr([l]):=if itorsion_flag then apply('itr,l) else 0; /* Coefficient used internally when computing the rotation coefficients */ %icc1(l):=block([i:idummy()],'ifr([l[1]],[i])*_g([l[2],l[3]],[],i)+  _inm([l[1]],[])*_g([l[2],l[3]],[])_itr([l[1],l[2],l[3]])  'ifb([l[1],l[2]],[i])*_g([i,l[3]],[]))/2;  /* The frame metric defaults to kdelta; can be redefined with components */ ifg([l]):=apply(kdelta,l); ifgi([l]):=apply(kdelta,l); +/*%icc1(l):=block([i:idummy()],'ifr([l[1]],[i])*_g([l[2],l[3]],[],i)+ + * _inm([l[1]],[])*_g([l[2],l[3]],[])_itr([l[1],l[2],l[3]]) + * 'ifb([l[1],l[2]],[i])*_g([i,l[3]],[]))/2; */ /* The frame bracket */ ifb(l1,l2,[ld]):= @@ 51,7 +48,6 @@ /* The connection coefficients */ icc1(l,[ld]):=if length(ld)>0 and rest(ld)#[] then apply('idiff,cons(icc1(l),rest((?putinones)(rest(ld))))) /* *** else block([d:idummy()],_g([l[3],d],[])*'icc2([l[1],l[2]],[d]));*/ else 'ichr1(l,if length(ld)>0 then ld[1] else [])+ (if iframe_flag then 'ifc1(l,[]) else 0)+ (if itorsion_flag then 'ikt1(l,[]) else 0)+ @@ 68,15 +64,9 @@ /* The frame coefficients */ ifc1(l,[ld]):=if length(ld)>0 and rest(ld)#[] then apply('idiff,cons(ifc1(l),rest((?putinones)(rest(ld))))) /* *** else block([i:idummy(),k:idummy()],('ifri([i,l[1]],[],k)  * 'ifri([k,l[1]],[],i))*'ifr([l[2]],[i])*'ifr([l[3]],[k])+  * ('ifri([i,l[2]],[],k)'ifri([k,l[2]],[],i))*'ifr([l[3]],[i])*  * 'ifr([l[1]],[k])('ifri([i,l[3]],[],k)'ifri([k,l[3]],[],i))*  * 'ifr([l[1]],[i])*'ifr([l[2]],[k]));*/ else block([i:idummy()],_g([l[3],i],[])*'ifc2([l[1],l[2]],[l[3]])); ifc2(l1,l2,[ld]):= if ld#[] then apply('idiff,cons(ifc2(l1,l2),rest((?putinones)(ld)))) /*else block([d:idummy()],_g([],[l2[1],d])*'ifc1([l1[1],l1[2],d]));*/ else block([d:idummy(),e:idummy()],( _g([],[l2[1],e])*(_g([d,l1[2]],[])*'ifb([l1[1],e],[d]) _g([l1[1],d],[])*'ifb([e,l1[2]],[d]))'ifb(l1,l2))/2); @@ 108,9 +98,9 @@ decsym(ichr2,2,1,[sym(all)],[]); decsym(icurvature,3,1,[anti(2,3)],[]); decsym(ifb,2,1,[sym(all)],[]); /*decsym(icc1,3,0,[sym(1,2)],[]); decsym(icc2,2,1,[sym(all)],[]); decsym(ifc1,3,0,[sym(1,2)],[]); decsym(ifc2,2,1,[sym(all)],[]); decsym(ikt1,3,0,[sym(1,2)],[]); decsym(ikt2,2,1,[sym(all)],[]);*/ +/* decsym(icc1,3,0,[sym(1,2)],[]); + * decsym(icc2,2,1,[sym(all)],[]); + * decsym(ifc1,3,0,[sym(1,2)],[]); + * decsym(ifc2,2,1,[sym(all)],[]); + * decsym(ikt1,3,0,[sym(1,2)],[]); + * decsym(ikt2,2,1,[sym(all)],[]);*/ Index: petrov.dem =================================================================== RCS file: /cvsroot/maxima/maxima/share/tensor/petrov.dem,v retrieving revision 1.1 retrieving revision 1.2 diff u d r1.1 r1.2  petrov.dem 25 Nov 2004 01:43:29 0000 1.1 +++ petrov.dem 1 Dec 2004 04:53:02 0000 1.2 @@ 1,3 +1,20 @@ +/* Copyright (C) 2004 Viktor T. Toth <http://www.vttoth.com/>; + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * MAXIMA CTENSOR demo: Demonstrating the equation of motion in + * a 5D KaluzaKlein spacetime. + * + */ + ("Attempt to compute the Petrov classification of the Kerr metric.")$ ("First, we need to load modules and define the metric:")$ load(ctensor); Index: tendemo.mac =================================================================== RCS file: /cvsroot/maxima/maxima/share/tensor/tendemo.mac,v retrieving revision 1.1 retrieving revision 1.2 diff u d r1.1 r1.2  tendemo.mac 30 Nov 2004 04:13:21 0000 1.1 +++ tendemo.mac 1 Dec 2004 04:53:02 0000 1.2 @@ 14,36 +14,48 @@ * */ (sel:read("  This is the main demonstration program for MAXIMA tensors. Select an option below by its number followed by a semicolon (;) INDICIAL TENSOR MANIPULATION COMPONENT TENSOR MANIPULATION 1. Basics 11. Basics 2. Index contraction 12. Initialization 3. Symmetrization 13. Curvature and differentiation 4. Special tensors 14. Frame fields 5. Coordinate differentiation 15. Torsion and nonmetricity 6. Covariant derivatives, curvature 16. Algebraic classification 7. Exterior algebra 17. Differential equations 8. Generating CTENSOR programs 9. Torsion and nonmetricity 21. Complete examples"), if sel=1 then demo(itensor1)  else if sel=2 then demo(itensor2)  else if sel#21 then error("Unknown demo!")  else (sel:read("The following specific examples demonstrate practical applications: INDICIAL TENSOR MANIPULATION COMPONENT TENSOR MANIPULATION 1. Proving the Bianchiidentities 11. Deriving Schwarzschild's metric 2. Proving Cartan's identities 12. Verifying ReissnerNordstrom 3. The KaluzaKlein metric 13. Petrov classification of metrics  14. Using a tetrad base"), +while sel#x and sel#X do +(done, +print("This is the main demonstration program for MAXIMA tensors."), +print("The following demos are available:"), +print(""), +print("INDICIAL TENSOR MANIPULATION COMPONENT TENSOR MANIPULATION"), +print("1. Basics 11. Basics"), +print("2. Index contraction 12. Initialization"), +print("3. Symmetrization 13. Curvature and differentiation"), +print("4. Special tensors 14. Frame fields"), +print("5. Coordinate differentiation 15. Torsion and nonmetricity"), +print("6. Covariant derivatives, curvature 16. Algebraic classification"), +print("7. Exterior algebra 17. Differential equations"), +print("8. Generating CTENSOR programs"), +print("9. Torsion and nonmetricity 21. Complete examples"), +print(""), +print("X. Exit this demo"), +print(""), +sel:read("Select an option by its number followed by a semicolon (;)"), + if sel=7 then demo(ex_calc) + else if sel=21 then +( +print("The following specific examples demonstrate practical applications:"), +print(""), +print("INDICIAL TENSOR MANIPULATION COMPONENT TENSOR MANIPULATION"), +print("1. Proving the Bianchiidentities 11. Deriving Schwarzschild's metric"), +print("2. Proving Cartan's identities 12. Verifying ReissnerNordstrom"), +print("3. The KaluzaKlein metric 13. Petrov classification of metrics"), +print("4. The double divergence of R 14. Using a tetrad base"), +print(""), +print("X. Return to main menu"), +print(""), +sel:read("Select an option by its number followed by a semicolon (;)"), if sel=2 then demo(car_iden) else if sel=3 then demo(kaluza)  else if sel=11 then demo(swartz) + else if sel=11 then demo(schwarz) else if sel=12 then demo(reissner) else if sel=13 then demo(petrov) else if sel=14 then demo(tetrad)  else error("Unknown demo!") ))$ + else if sel#X and sel#x then print("Invalid entry, please try again") + else sel:0 +) + else if sel#X and sel#x then print("Invalid entry, please try again") +)$  aatest.mac DELETED   ademo2steps.dem DELETED   brans_vacuum.mac DELETED   infotensor2.txt DELETED   infotensor.txt DELETED   swartz.dem DELETED  