itensor



Hi !
On Fri, 19 Apr 2002 07:40:25 -0700
Richard Fateman <fateman@cs.berkeley.edu> wrote:

> The code is probably
>   (mapcar '(lambda....
> and changed to
>   (mapcar #'(lambda ...
> 
> (Some lisps may be smart enough to do it either way.
> In the past, probably all lisps did it either way).
Well, gcl does it, I can not say the same about clisp. Probably, it deals solely
with itensor. I do not know. When I tried it in clisp compiled maxima I had
clisp complains:

 derivative indices: []; A([I, J], [K])

_
(C17)                         SHOW(COVDIFF(%, s))

*** - FUNCALL: argument
(LAMBDA (V)
 (LIST '(MTIMES) (LIST '($CHR2 SIMP) (LIST SMLIST D X) (LIST SMLIST V))
  (CONSUBST D V E))) is not a function.
To get a function in the current environment, write (FUNCTION ...).
To get a function in the global environment, write (COERCE '... 'FUNCTION).
2. Break [1]>
After this I apply the pathes, see in attachment, which correct this situation.

In new maxima distributions (>5.6), an additional thing broke down in "itensor" in compare
with Schelter's maxima-5.6. The autoloading needed functions  from others files contributed to
"itensor" (like gener,canten,symtry.lisp) does not work.
So you need to load files by hand.

Another thing which I found that the complicated tensors are not displayed properly nether
by texmacs nor emaxima   

> 
> Is there a clear specification of the algorithms that
> should be used?  
I would not say  that I have it. The problem is that some functions are currently broken in itensor.
In a future there is a chance that they will be fixed. So the way to use to simplify the tensor 
will be quite different and simplier. Say, just canform(tensor). Right now it does not work because
maxima meet a bug in function canprod in "symtry.lisp". However there is a roundabout way, say 
undiff(exp),ev(%,chr2),ev(%,diff), and then canform(%). 
The hints to use itensor can be taken from tensor.doc and my demo "itensor.dem"


>Are there examples/ benchmarks for
> them?  I assume they used to work... is that true?
Examples are in "itensor.dem". There are inspired by tensor/manual.txt.
Well, for a moment the simplification is a weak point of itensor (canten() is broken). 
For example I could not pass the test proposed in tensor/ademo.blk. This is about
vanishing of the double divergence of the Riemann tensor on antisymmetric indices.
Inspection of the final result show that it is zero but because of abcence of canten capabilities
it could not be obtained for general kind of metric. For a particular metric I get it. 
Of course, more tests are needed. 
I have the demo version of commercial maxima. So I will try 
to repeat some demo from there.  



rgds, Valerij

Attached file: canten.diff
Attached file: gener.diff
Attached file: itensor.diff
Attached file: symtry.diff
Attached file: itensor.dem
Attached file: readme