Я искал часы и не нашел ответа. Я работаю с полиномами по модулю другого полинома (так что ZZ_pE
объектов). Когда я использую метод inv(ZZ_pE poly)
, результатом является либо обратное (если оно существует), либо следующее сообщение об ошибке:
ZZ_p: division by non-invertible element
Abort trap: 6
Я попытался с помощью try / catch:
while(1)
{
random(f);
f = 2*f + 1;
try{
inv(fi, f);
break;
}
catch(...) {
// f not invertible
// Do nothing
}
}
но сообщение об ошибке по-прежнему останавливает программу. Насколько я знаю, нет isInvertible
или подобного метода. Как я могу проверить, является ли многочлен обратимым?