cadabra2
                                
                                 cadabra2 copied to clipboard
                                
                                    cadabra2 copied to clipboard
                            
                            
                            
                        Trace and Determinant are confusing
When declaring properties, the notation for a trace is
T::Trace( A_{m n} );
and this means $T = A_{m m}$. However, when you do
{m,n,p}::Indices(vector);
Tr{#}::Trace(indices=vector);
and then write
ex:= Tr( A );
the implicit meaning is A_{m m} as well. This is used for instance in explicit_indices,
{m,n,p}::Indices(vector);
Tr(#)::Trace(indices=vector);
A::ImplicitIndex(A_{m n});
ex:= Tr( A );
explicit_indices(_);
leads to $A_{m m}$ as well.
These are not necessarily inconsistent (declaration of a property versus use of an operator declared to have that property), but definitely confusing. Needs docs.