## PAIR

Kind: global class
this: {PAIR}

### new PAIR()

Creates an instance of PAIR

### PAIR.line()

Line function

Kind: static method of PAIR
this: {PAIR}

### PAIR.initmp()

prepare for multi-pairing

Kind: static method of PAIR
this: {PAIR}

### PAIR.miller(r, res)

basic Miller loop

Kind: static method of PAIR
this: {PAIR}

ParamDescription
rFP12 precomputed array of accumulated line functions
resFP12 result

### PAIR.another(r, P1, Q1)

Precompute line functions for n-pairing

Kind: static method of PAIR
this: {PAIR}

ParamDescription
rarray of precomputed FP48 products of line functions
P1An element of G2
Q1An element of G1

### PAIR.ate(P1, Q1)

Calculate Miller loop for Optimal ATE pairing e(P,Q)

Kind: static method of PAIR
this: {PAIR}
Result: r An element of GT i.e. result of the pairing calculation e(P,Q)

ParamDescription
P1An element of G2
Q1An element of G1

### PAIR.ate2(P1, Q1, R1, S1)

Calculate Miller loop for Optimal ATE double-pairing e(P,Q).e(R,S)

Kind: static method of PAIR
this: {PAIR}
Result: r An element of GT i.e. result of the double pairing calculation e(P,Q).e(R,S)

ParamDescription
P1An element of G2
Q1An element of G1
R1An element of G2
S1An element of G1

### PAIR.fexp(m)

Final exponentiation of pairing, converts output of Miller loop to element in GT

Kind: static method of PAIR
this: {PAIR}
Result: r m^((p^12-1)/r) where p is modulus and r is the group order

ParamDescription
mFP12 value

### PAIR.lbits()

prepare ate parameter, n=6u+2 (BN) or n=u (BLS), n3=3*n

Kind: static method of PAIR
this: {PAIR}

### PAIR.glv()

GLV method

Kind: static method of PAIR
this: {PAIR}

### PAIR.gs()

Galbraith & Scott Method

Kind: static method of PAIR
this: {PAIR}

### PAIR.G1mul(P, e) ⇒

Fast point multiplication of a member of the group G1 by a BIG number

Kind: static method of PAIR
Returns: R Member of G1 R=e.P
this: {PAIR}

ParamDescription
PMember of G1
eBIG multiplier

### PAIR.G2mul(P, e) ⇒

Multiply P by e in group G2

Kind: static method of PAIR
Returns: R Member of G2 R=e.P
this: {PAIR}

ParamDescription
PMember of G2
eBIG multiplier

### PAIR.GTpow(d, e) ⇒

Fast raising of a member of GT to a BIG power

Kind: static method of PAIR
Returns: r d^e
this: {PAIR}

ParamDescription
dMember of GT
eBIG exponent