pub struct SplitGenus2 {
pub sextic: Vec<BigInt>,
pub e1: Vec<BigInt>,
pub e2: Vec<BigInt>,
pub p: BigInt,
}Expand description
A genus-2 curve C: y² = g(x²) (an even sextic) with a (2,2)-split Jacobian Jac(C) ~ E₁ × E₂,
together with its two elliptic quotients. This is the (2,2)-gluing in reverse: the two degree-2 maps
(x,y) ↦ (x², y) onto E₁: y² = g(u) and (x,y) ↦ (1/x², y/x³) onto E₂: y² = ĝ(u) (the reversed
cubic) exhibit the split. It is the abelian-surface object the Kani/Castryck–Decru oracle detects.
Fields§
§sextic: Vec<BigInt>The sextic f(x) = g(x²), coefficients low→high (odd coefficients zero).
e1: Vec<BigInt>E₁: y² = g(u) — the cubic g, coefficients low→high.
e2: Vec<BigInt>E₂: y² = ĝ(u) — the reversed cubic u³·g(1/u), coefficients low→high.
p: BigIntTrait Implementations§
Source§impl Clone for SplitGenus2
impl Clone for SplitGenus2
Source§fn clone(&self) -> SplitGenus2
fn clone(&self) -> SplitGenus2
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for SplitGenus2
impl RefUnwindSafe for SplitGenus2
impl Send for SplitGenus2
impl Sync for SplitGenus2
impl Unpin for SplitGenus2
impl UnsafeUnpin for SplitGenus2
impl UnwindSafe for SplitGenus2
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more