Skip to content

Commit de2743a

Browse files
committed
ENHANCE: Recode assertion to avoid recursion trap
This fixes #3140
1 parent 10cc76d commit de2743a

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

lib/matrix.gi

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -473,8 +473,16 @@ BindGlobal( "Matrix_CharacteristicPolynomialSameField",
473473
vec[i] := zero;
474474
fi;
475475
od;
476-
Assert(3, IsZero(Value(cp,imat)));
477476
Assert(2, Length(CoefficientsOfUnivariatePolynomial(cp)) = n+1);
477+
if AssertionLevel()>=3 then
478+
# cannot use Value(cp,imat), as this uses characteristic polynomial
479+
n:=Zero(imat);
480+
one:=One(imat);
481+
for i in Reversed(CoefficientsOfUnivariatePolynomial(cp)) do
482+
n:=n*imat+(i*one);
483+
od;
484+
Assert(3,IsZero(n));
485+
fi;
478486
Info(InfoMatrix,1,"Characteristic Polynomial returns ", cp);
479487
return cp;
480488
end );

0 commit comments

Comments
 (0)