## PAIR256

Kind: global class
this: {PAIR256}

### new PAIR256()

Creates an instance of PAIR256

### PAIR256.line()

Line function

Kind: static method of PAIR256
this: {PAIR256}

### PAIR256.initmp()

prepare for multi-pairing

Kind: static method of PAIR256
this: {PAIR256}

### PAIR256.miller(r, res)

basic Miller loop

Kind: static method of PAIR256
this: {PAIR256}

ParamDescription
rFP48 precomputed array of accumulated line functions
resFP48 result

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

Precompute line functions for n-pairing

Kind: static method of PAIR256
this: {PAIR256}

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

### PAIR256.ate(P1, Q1)

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

Kind: static method of PAIR256
this: {PAIR256}
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

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

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

Kind: static method of PAIR256
this: {PAIR256}
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

### PAIR256.fexp(m)

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

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

ParamDescription
mFP48 value

### PAIR256.lbits()

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

Kind: static method of PAIR256
this: {PAIR256}

### PAIR256.glv()

GLV method

Kind: static method of PAIR256
this: {PAIR256}

### PAIR256.gs()

Galbraith & Scott Method

Kind: static method of PAIR256
this: {PAIR256}

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

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

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

ParamDescription
PMember of G1
eBIG multiplier

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

Multiply P by e in group G2

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

ParamDescription
PMember of G2
eBIG multiplier

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

Fast raising of a member of GT to a BIG power

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

ParamDescription
dMember of GT
eBIG exponent