arnaucube
arnaucube/ark-curves-cherry-pickedPublic Self-hosted repository
ark-curves-cherry-picked/cp6_782/src/fields/fq6.rs
cp6_782/src/fields/fq6.rsRaw
  1use crate::{Fq, Fq3, Fq3Parameters, FQ_ONE, FQ_ZERO};
  2use ark_ff::{
  3    biginteger::BigInteger832 as BigInteger,
  4    field_new,
  5    fields::fp6_2over3::{Fp6, Fp6Parameters},
  6};
  7
  8pub type Fq6 = Fp6<Fq6Parameters>;
  9
 10pub struct Fq6Parameters;
 11
 12impl Fp6Parameters for Fq6Parameters {
 13    type Fp3Params = Fq3Parameters;
 14
 15    /// NONRESIDUE = (0, 1, 0).
 16    #[rustfmt::skip]
 17    const NONRESIDUE: Fq3 = field_new!(Fq3, FQ_ZERO, FQ_ONE, FQ_ZERO);
 18
 19    #[rustfmt::skip]
 20    const FROBENIUS_COEFF_FP6_C1: &'static [Fq] = &[
 21        field_new!(Fq, BigInteger([
 22            0x9b4e60b420910c71,
 23            0xe068d7c83f284a6e,
 24            0x1f708acc7c452c43,
 25            0xeb2f6a66cca51856,
 26            0x9acf675f886e9fcd,
 27            0xb26885e567cc8082,
 28            0x75d05357183eb61f,
 29            0x24db4a09b5842a32,
 30            0x85e64cf9ba4b14ae,
 31            0xf311a6784358a588,
 32            0xe8d431c061aecb4a,
 33            0xd92c8b4aab19f288,
 34            0x21d3,
 35        ])),
 36        field_new!(Fq, BigInteger([
 37            0x82e248051c9d1c4d,
 38            0x9364dbda272d0ed,
 39            0xfdcf25dede306877,
 40            0x53d06582e3fe7159,
 41            0xb431d48c27a7ce14,
 42            0x7741dd7a33040c05,
 43            0xca576276706c1de9,
 44            0x18cceab60052df9f,
 45            0x6f9ae1b18f011f6,
 46            0x25df1559c0ee6289,
 47            0x5b33ca416649679d,
 48            0x33f7fc08b12d9590,
 49            0x338f,
 50        ])),
 51        field_new!(Fq, BigInteger([
 52            0xe793e750fc0c0fdc,
 53            0x28cd75f5634a867e,
 54            0xde5e9b1261eb3c33,
 55            0x68a0fb1c17595903,
 56            0x19626d2c9f392e46,
 57            0xc4d95794cb378b83,
 58            0x54870f1f582d67c9,
 59            0xf3f1a0ac4aceb56d,
 60            0x811361215ea4fd47,
 61            0x32cd6ee17d95bd00,
 62            0x725f9881049a9c52,
 63            0x5acb70be0613a307,
 64            0x11bb,
 65        ])),
 66        field_new!(Fq, BigInteger([
 67            0x3f8019015b031e78,
 68            0x73f4adf92ed4f7dc,
 69            0xcea2d139e307fa73,
 70            0xb1000be3461ee9f5,
 71            0x8005cba5148fca6b,
 72            0xa03b75925fcf929d,
 73            0x35654371493da172,
 74            0x5e312883cb75ad59,
 75            0xe48bd6f4b7b72859,
 76            0xc94b70f331124a9d,
 77            0x84f67d2da39b18,
 78            0xeba59af100dea197,
 79            0x1674,
 80        ])),
 81        field_new!(Fq, BigInteger([
 82            0x57ec31b05ef70e9c,
 83            0x4b273803cb8a715d,
 84            0xf0443627811cbe40,
 85            0x485f10c72ec590f1,
 86            0x66a35e7875569c25,
 87            0xdb621dfd9498071a,
 88            0xe0de3451f11039a8,
 89            0x6a3f87d780a6f7eb,
 90            0x637875d359122b11,
 91            0x967e0211b37c8d9d,
 92            0x8e255dfc2908fec6,
 93            0x90da2a32facafe8f,
 94            0x4b9,
 95        ])),
 96        field_new!(Fq, BigInteger([
 97            0xf33a92647f881b0d,
 98            0x2b900fcc0ab2bbcb,
 99            0xfb4c0f3fd61ea84,
100            0x338e7b2dfb6aa948,
101            0x172c5d7fdc53bf3,
102            0x8dcaa3e2fc64879d,
103            0x56ae87a9094eefc8,
104            0x8f1ad1e1362b221e,
105            0xe95ec2cd135d3fbf,
106            0x898fa889f6d53325,
107            0x76f98fbc8ab7ca11,
108            0x6a06b57da5e4f118,
109            0x268d,
110        ])),
111    ];
112}