Skip to content

Conversation

@fieker
Copy link
Contributor

@fieker fieker commented Nov 7, 2025

the bounds computed in _fmpz_mat_bound_ovals_of_cassini did not match the reference. There exists an explicit 12x12 matrix where the bounds were too small by a factor (bit length) of 2, hence the minpoly was wrong.

the bounds computed in _fmpz_mat_bound_ovals_of_cassini did
not match the reference. There exists an explicit 12x12 matrix
where the bounds were too small by a factor (bit length) of 2, hence
the minpoly was wrong.
@fieker
Copy link
Contributor Author

fieker commented Nov 7, 2025

badMat.txt
is the example. It can be loaded into Nemo using include

without the fix of the bounds, "small" matrices with "huge"
entries will run into the error. Experimentally, for 2x2 matrices
around 4500 bits would have triggered the problem.
fmpz_sub(v1 + i, v1 + i, fmpz_mat_entry(op, i, j));
}
}
/* |A|^t * |A| * [1,1,...,1]^T */
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The code doesn't seem to match the formula in the comment. It looks like v1[i] is being repeatedly multiplied by different matrix entries while the intended behavior is to repeatedly add products of different matrix entries.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good catch...I've tried again, with a better matrix vector product

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants