[[paramchap]]
== Param functions ==

Pairings are initialized from _pairing parameters_, which are objects of type
`pbc_param_t`. Some applications can ignore this data type because
`pairing_init_set_str()` handles it behind the scenes: it reads a string as a
`pbc_param_t`, then initializes a pairing with these parameters.

include::gen/param.txt[]

[[paramgenchap]]
=== Param generation ===

These were used to prepare the sample parameters in the +param+ subdirectory.

We label the pairing families with capital letters roughly in the order of
discovery, so we can refer to them easily. Type A is fastest. Type D is a good
choice when elements should be short but is slower. Type F has even shorter
elements but is slower still. The speed differences are hardware-dependent, and
also change when preprocessing is used. Type B and C are unimplemented.

The +pbc_cm_t+ data type holds CM parameters that are used to generate type D
and G curves.

include::gen/cminfo.txt[]

include::gen/aparam.txt[]

include::gen/a1param.txt[]

include::gen/dparam.txt[]

include::gen/eparam.txt[]

include::gen/fparam.txt[]

include::gen/gparam.txt[]