Clearmatics Libff  0.1
C++ library for Finite Fields and Elliptic Curves
Public Member Functions | Public Attributes | Friends | List of all members
libff::mnt6_ate_G2_precomp Struct Reference

#include <mnt6_pairing.hpp>

Collaboration diagram for libff::mnt6_ate_G2_precomp:
Collaboration graph
[legend]

Public Member Functions

bool operator== (const mnt6_ate_G2_precomp &other) const
 

Public Attributes

mnt6_Fq3 QX
 
mnt6_Fq3 QY
 
mnt6_Fq3 QY2
 
mnt6_Fq3 QX_over_twist
 
mnt6_Fq3 QY_over_twist
 
std::vector< mnt6_ate_dbl_coeffsdbl_coeffs
 
std::vector< mnt6_ate_add_coeffsadd_coeffs
 

Friends

std::ostream & operator<< (std::ostream &out, const mnt6_ate_G2_precomp &prec_Q)
 
std::istream & operator>> (std::istream &in, mnt6_ate_G2_precomp &prec_Q)
 

Detailed Description

Definition at line 98 of file mnt6_pairing.hpp.

Member Function Documentation

◆ operator==()

bool libff::mnt6_ate_G2_precomp::operator== ( const mnt6_ate_G2_precomp other) const

Definition at line 100 of file mnt6_pairing.cpp.

101 {
102  return (
103  this->QX == other.QX && this->QY == other.QY &&
104  this->QY2 == other.QY2 && this->QX_over_twist == other.QX_over_twist &&
105  this->QY_over_twist == other.QY_over_twist &&
106  this->dbl_coeffs == other.dbl_coeffs &&
107  this->add_coeffs == other.add_coeffs);
108 }

Friends And Related Function Documentation

◆ operator<<

std::ostream& operator<< ( std::ostream &  out,
const mnt6_ate_G2_precomp prec_Q 
)
friend

Definition at line 110 of file mnt6_pairing.cpp.

111 {
112  out << prec_Q.QX << OUTPUT_SEPARATOR << prec_Q.QY << OUTPUT_SEPARATOR
113  << prec_Q.QY2 << OUTPUT_SEPARATOR << prec_Q.QX_over_twist
114  << OUTPUT_SEPARATOR << prec_Q.QY_over_twist << "\n";
115  out << prec_Q.dbl_coeffs.size() << "\n";
116  for (const mnt6_ate_dbl_coeffs &dc : prec_Q.dbl_coeffs) {
117  out << dc << OUTPUT_NEWLINE;
118  }
119  out << prec_Q.add_coeffs.size() << "\n";
120  for (const mnt6_ate_add_coeffs &ac : prec_Q.add_coeffs) {
121  out << ac << OUTPUT_NEWLINE;
122  }
123 
124  return out;
125 }

◆ operator>>

std::istream& operator>> ( std::istream &  in,
mnt6_ate_G2_precomp prec_Q 
)
friend

Definition at line 127 of file mnt6_pairing.cpp.

128 {
129  in >> prec_Q.QX;
131  in >> prec_Q.QY;
133  in >> prec_Q.QY2;
135  in >> prec_Q.QX_over_twist;
137  in >> prec_Q.QY_over_twist;
138  consume_newline(in);
139 
140  prec_Q.dbl_coeffs.clear();
141  size_t dbl_s;
142  in >> dbl_s;
143  consume_newline(in);
144 
145  prec_Q.dbl_coeffs.reserve(dbl_s);
146 
147  for (size_t i = 0; i < dbl_s; ++i) {
148  mnt6_ate_dbl_coeffs dc;
149  in >> dc;
151  prec_Q.dbl_coeffs.emplace_back(dc);
152  }
153 
154  prec_Q.add_coeffs.clear();
155  size_t add_s;
156  in >> add_s;
157  consume_newline(in);
158 
159  prec_Q.add_coeffs.reserve(add_s);
160 
161  for (size_t i = 0; i < add_s; ++i) {
162  mnt6_ate_add_coeffs ac;
163  in >> ac;
165  prec_Q.add_coeffs.emplace_back(ac);
166  }
167 
168  return in;
169 }

Member Data Documentation

◆ add_coeffs

std::vector<mnt6_ate_add_coeffs> libff::mnt6_ate_G2_precomp::add_coeffs

Definition at line 105 of file mnt6_pairing.hpp.

◆ dbl_coeffs

std::vector<mnt6_ate_dbl_coeffs> libff::mnt6_ate_G2_precomp::dbl_coeffs

Definition at line 104 of file mnt6_pairing.hpp.

◆ QX

mnt6_Fq3 libff::mnt6_ate_G2_precomp::QX

Definition at line 99 of file mnt6_pairing.hpp.

◆ QX_over_twist

mnt6_Fq3 libff::mnt6_ate_G2_precomp::QX_over_twist

Definition at line 102 of file mnt6_pairing.hpp.

◆ QY

mnt6_Fq3 libff::mnt6_ate_G2_precomp::QY

Definition at line 100 of file mnt6_pairing.hpp.

◆ QY2

mnt6_Fq3 libff::mnt6_ate_G2_precomp::QY2

Definition at line 101 of file mnt6_pairing.hpp.

◆ QY_over_twist

mnt6_Fq3 libff::mnt6_ate_G2_precomp::QY_over_twist

Definition at line 103 of file mnt6_pairing.hpp.


The documentation for this struct was generated from the following files:
libff::mnt6_ate_G2_precomp::QX
mnt6_Fq3 QX
Definition: mnt6_pairing.hpp:99
OUTPUT_SEPARATOR
#define OUTPUT_SEPARATOR
Definition: serialization.hpp:69
libff::consume_OUTPUT_SEPARATOR
void consume_OUTPUT_SEPARATOR(std::istream &in)
libff::consume_OUTPUT_NEWLINE
void consume_OUTPUT_NEWLINE(std::istream &in)
OUTPUT_NEWLINE
#define OUTPUT_NEWLINE
Definition: serialization.hpp:68
libff::consume_newline
void consume_newline(std::istream &in)