17template <
typename Params>
18class Numsp512d1Rep
final {
20 static constexpr auto P = Params::P;
21 static constexpr size_t N = Params::N;
22 typedef typename Params::W W;
24 static constexpr W C = 569;
26 constexpr static std::array<W, N> one() {
return std::array<W, N>{1}; }
28 constexpr static std::array<W, N> redc(
const std::array<W, 2 * N>& z) {
32 constexpr static std::array<W, N> to_rep(
const std::array<W, N>& x) {
return x; }
34 constexpr static std::array<W, N> wide_to_rep(
const std::array<W, 2 * N>& x) {
return redc(x); }
36 constexpr static std::array<W, N> from_rep(
const std::array<W, N>& z) {
return z; }
40class Params
final :
public EllipticCurveParameters<
41 "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC7",
42 "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC4",
44 "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B3CA4FB94E7831B4FC258ED97D0BDC63B568B36607CD243CE153F390433555D",
46 "1C282EB23327F9711952C250EA61AD53FCC13031CF6DD336E0B9328433AFBDD8CC5A1C1F0C716FDC724DDE537C2B0ADB00BB3D08DC83755B205CC30D7F83CF28"> {
51class Curve
final :
public EllipticCurve<Params, Numsp512d1Rep> {
53 static FieldElement fe_invert2(
const FieldElement& x) {