]> www.ginac.de Git - ginac.git/blobdiff - ginac/lortensor.cpp
building in separate directory didn't work
[ginac.git] / ginac / lortensor.cpp
index 7a97887ae71852fc33974827dc55778a126c9b6d..e8f4f87312d9070d5e2b826affbeddb40f60bf37 100644 (file)
@@ -31,7 +31,6 @@
 #include "add.h"
 #include "mul.h"
 #include "debugmsg.h"
-#include "flags.h"
 #include "lst.h"
 #include "lortensor.h"
 #include "operators.h"
@@ -238,12 +237,6 @@ void lortensor::archive(archive_node &n) const
 
 //public
 
-basic * lortensor::duplicate() const
-{
-       debugmsg("lortensor duplicate",LOGLEVEL_DUPLICATE);
-       return new lortensor(*this);
-}
-
 void lortensor::printraw(std::ostream & os) const
 {
        debugmsg("lortensor printraw",LOGLEVEL_PRINT);
@@ -328,7 +321,10 @@ ex lortensor::eval(int level) const
                                return _ex0();
                        }
                } else if (idx1.is_symbolic() && idx1.is_co_contra_pair(idx2)) {
-                       return Dim();
+                       if (idx1.is_orthogonal_only())
+                               return Dim() - idx1.get_dim_parallel_space();
+                       else
+                               return Dim();
                }
        }
        return this -> hold();