From: Chris Dams Date: Tue, 10 Jan 2006 17:22:44 +0000 (+0000) Subject: Allow for general expressions as index dimensions. X-Git-Tag: release_1-4-0~115 X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=commitdiff_plain;h=a1eaf43324b5a13f7fd133f41366553081f0a3a8 Allow for general expressions as index dimensions. --- diff --git a/ginac/idx.cpp b/ginac/idx.cpp index 3beb3ac7..9550b22a 100644 --- a/ginac/idx.cpp +++ b/ginac/idx.cpp @@ -415,7 +415,7 @@ bool idx::is_dummy_pair_same_type(const basic & other) const if (dim.is_equal(o.dim)) return true; - return (dim < o.dim || dim > o.dim || (is_exactly_a(dim) && is_a(o.dim)) || (is_a(dim) && is_exactly_a(o.dim))); + return is_exactly_a(dim) || is_exactly_a(o.dim); } bool varidx::is_dummy_pair_same_type(const basic & other) const @@ -548,9 +548,9 @@ void find_free_and_dummy(exvector::const_iterator it, exvector::const_iterator i ex minimal_dim(const ex & dim1, const ex & dim2) { - if (dim1.is_equal(dim2) || dim1 < dim2 || (is_exactly_a(dim1) && is_a(dim2))) + if (dim1.is_equal(dim2) || dim1 < dim2 || (is_exactly_a(dim1) && !is_a(dim2))) return dim1; - else if (dim1 > dim2 || (is_a(dim1) && is_exactly_a(dim2))) + else if (dim1 > dim2 || (!is_a(dim1) && is_exactly_a(dim2))) return dim2; else { std::ostringstream s;