Replace the usage of Sage power series for MinRank-minor-series related operations by using Sympy polynomials and matrices.
Migration of any other Sage function into the Python native ones.
I created an extended_binomial(n,k) function required for this estimator, able to handle negative ns.
About performance:
This implemention of minors_polynomials[_degree] is about 8x times slower than the Sage-based one. With that said, we will be able to replace Sympy with python-flint in the future by using a C-Flint type used to calculate determinants over matrices of polynomials, when ported and exposed by python-flint. This should resolve (and probably even improve) the performance with respect to Sage.
Review process
make docker-run
pytest --doctest-modules -n auto -vv -s cryptographic_estimators/MREstimator/
Pre-approval checklist
[x] The code builds clean without any errors or warnings
Description
Replace the usage of Sage power series for MinRank-minor-series related operations by using Sympy polynomials and matrices.
Migration of any other Sage function into the Python native ones.
I created an
extended_binomial(n,k)
function required for this estimator, able to handle negativen
s.About performance:
This implemention of
minors_polynomials[_degree]
is about 8x times slower than the Sage-based one. With that said, we will be able to replace Sympy with python-flint in the future by using a C-Flint type used to calculate determinants over matrices of polynomials, when ported and exposed by python-flint. This should resolve (and probably even improve) the performance with respect to Sage.Review process
Pre-approval checklist