Source code for primitives.batch_inverse
"""Montgomery batch inversion for Goldilocks field and cubic extension."""
from primitives.field import FF, FF3, batch_inverse
[docs]
def batch_inverse_ff(values: list[FF]) -> list[FF]:
"""Montgomery batch inversion for base field (list interface)."""
if len(values) == 0:
return []
return list(batch_inverse(FF(values)))
[docs]
def batch_inverse_ff3(values: list[FF3]) -> list[FF3]:
"""Montgomery batch inversion for cubic extension (list interface)."""
if len(values) == 0:
return []
return list(batch_inverse(FF3(values)))
# Array-based interfaces (preferred for performance)
# These are thin wrappers; callers can use batch_inverse() directly from field.py
[docs]
def batch_inverse_ff_array(values: FF) -> FF:
"""Montgomery batch inversion for FF galois array."""
return batch_inverse(values)
[docs]
def batch_inverse_ff3_array(values: FF3) -> FF3:
"""Montgomery batch inversion for FF3 galois array."""
return batch_inverse(values)