isoMap<F extends PastaFieldElement<F>> static method
(F, F, F)
isoMap<
F extends PastaFieldElement<F>>({ - required (F, F, F) p,
- required List<F> iso,
})
Implementation
static (F, F, F) isoMap<F extends PastaFieldElement<F>>({
required (F, F, F) p,
required List<F> iso,
}) {
final x = p.$1;
final z = p.$3;
final y = p.$2;
final z2 = z.square();
final z3 = z2 * z;
final z4 = z2.square();
final z6 = z3.square();
final numX =
((iso[0] * x + iso[1] * z2) * x + iso[2] * z4) * x + iso[3] * z6;
final divX = (z2 * x + iso[4] * z4) * x + iso[5] * z6;
final numY =
(((iso[6] * x + iso[7] * z2) * x + iso[8] * z4) * x + iso[9] * z6) * y;
final divY =
(((x + iso[10] * z2) * x + iso[11] * z4) * x + iso[12] * z6) * z3;
final zo = divX * divY;
final xo = numX * divY * zo;
final yo = numY * divX * zo.square();
return (xo, yo, zo);
}