Thanks. But it seems that the itensor can deal with tensor expressions
that appear as an argument of the exponential function. May be there is
possibility to expand this functionality to the error function(and other
functions)? It would be very useful.
(%i1) load(itensor)$
...
...
(%i2) expr: exp( a([i],[])*b([],[i]));
b([], [i]) a([i], [])
(%o2) %e
(%i3) expr: rename(expr);
b([], [%1]) a([%1], [])
(%o3) %e
(%i4) derivative: diff(expr, a([i],[]));
b([], [%1]) a([%1], [])
(%o4) b([], [%1]) %e kdelta([%1], [i])
(%i5) res: contract(%);
b([], [%1]) a([%1], [])
(%o5) b([], [i]) %e
> Not really a bug per se, but a limitation. The itensor package
> generallycannot deal with tensor expressions that appear as function
> arguments.Function arguments are treated by itensor as opaque, and are
> excluded fromitensor operations, which is why contract and rename were
> ineffective. Onthe other hand, diff applies its standard rules to the
> expression with noregard to the fact that some of the terms it is
> manipulating representindexed objects, and the result is an
> unpredictable mess.
>
> Viktor
>
>
> -----Original Message-----
> From:maxima-bounces at math.utexas.edu <http://www.math.utexas.edu/mailman/listinfo/maxima> [mailto:maxima-bounces at math.utexas.edu <http://www.math.utexas.edu/mailman/listinfo/maxima>]
> On Behalf Of Dmitry Shkirmanov
> Sent: Tuesday, June 05, 2012 8:56 AM
> To:maxima at math.utexas.edu <http://www.math.utexas.edu/mailman/listinfo/maxima>
> Subject: Bug in the itensor package?
>
> Hello,list.
>
> Maxima 5.27.0http://maxima.sourceforge.net
> using Lisp CLISP 2.48 (2009-07-28)
> Distributed under the GNU Public License. See the file COPYING.
> Dedicated to the memory of William Schelter.
> The function bug_report() provides bug reporting information.
> (%i1) load(itensor)$
> ...
> ...
> (%i2) expr: erfc(-x([i],[])*y([],[i]))$
> (%i3) expr: contract(expr)$
> (%i4) expr: rename(expr);
> (%o4) 2 - erfc(y([], [i]) x([i], []))
> (%i5) diff(expr, y([],[i]));
> 2 2
> - y ([], [i]) x ([i], [])
> 2 %e x([i], []) kdelta([i], [i])
> (%o5) ---------------------------------------------------------
> sqrt(%pi)
> (%i6)
> As it can be seen from this example, the rename() function does not work
> correctly. Next, it seems, that the diff() function
> does not work correctly too. Is it bug?
>