public interface BilinearMapImpl extends java.util.function.BiFunction<GroupElementImpl,GroupElementImpl,GroupElementImpl>
e : G1 x G2 -> GT.
Bilinearity means that the map e is linear in both the first and second component.
G1, G2 and GT are groups.
Usually wrapped by a BilinearMap for actual use.
| Modifier and Type | Method and Description |
|---|---|
default GroupElementImpl |
apply(GroupElementImpl g1,
GroupElementImpl g2)
Corresponds to
this.apply(g1, g2, 1). |
GroupElementImpl |
apply(GroupElementImpl g1,
GroupElementImpl g2,
java.math.BigInteger exponent)
Computes \(e(g1,g2)^\text{exponent}\).
|
boolean |
isSymmetric()
Returns true if \(e(g,h) = e(h,g)\) for all g in G1, h in G2.
|
GroupElementImpl apply(GroupElementImpl g1, GroupElementImpl g2, java.math.BigInteger exponent)
Depending on the bilinear map and the involved groups, this may be more efficiently implemented than computing
it directly via apply(g1,g2).pow(exponent).
For example, implementations should do exponentiation in the group with the cheapest group operation.
g1 - left hand side argument for the pairing functiong2 - right hand side argument for the pairing functionexponent - the exponent to apply to the result of the pairingdefault GroupElementImpl apply(GroupElementImpl g1, GroupElementImpl g2)
this.apply(g1, g2, 1).apply in interface java.util.function.BiFunction<GroupElementImpl,GroupElementImpl,GroupElementImpl>g1 - left hand side argument for the pairing functiong2 - right hand side argument for the pairing functionboolean isSymmetric()