diff options
Diffstat (limited to 'moon-abe/pbc-0.5.14/doc/basics.txt')
-rw-r--r-- | moon-abe/pbc-0.5.14/doc/basics.txt | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/moon-abe/pbc-0.5.14/doc/basics.txt b/moon-abe/pbc-0.5.14/doc/basics.txt deleted file mode 100644 index c9549f72..00000000 --- a/moon-abe/pbc-0.5.14/doc/basics.txt +++ /dev/null @@ -1,58 +0,0 @@ -=== Basics === - -Programs using the PBC library should include the file `pbc.h`: - - #include <pbc.h> - -and linked against the PBC library and the GMP library, e.g. - - $ gcc program.c -L. -lpbc -lgmp - -The file `pbc.h` already includes `gmp.h`. - -PBC follows GMP in several respects: - -* Output arguments generally precede input arguments. -* The same variable can be used as input and output in one call. -* Before a variable may be used it must be initialized exactly once. -When no longer needed it must be cleared. For efficiency, unnecessary -initializating and clearing should be avoided. -* PBC variables ending with +_t+ behave the same as -GMP variables in function calls: effectively as call-by references. -In other words, as in GMP, if a function that modifies an input variable, -that variable remains modified when control return is returned to the caller. -* Like GMP, variables automatically allocate memory when needed. -By default, +malloc()+ and friends are called but this can be changed. -* PBC functions are mostly reentrant. - -Since the PBC library is built on top of GMP, the GMP types -are available. PBC types are similar to GMP types. -The following example is paraphrased from an example in the GMP -manual, and shows how to declare the PBC data type +element_t+. - - element_t sum; - struct foo { element_t x, y; }; - element_t vec[20]; - -GMP has the +mpz_t+ type for integers, +mpq_t+ for rationals and so on. -In contrast, PBC uses the +element_t+ data type for elements of different -algebraic structures, such as elliptic curve groups, polynomial rings and -finite fields. Functions assume their inputs come from appropriate algebraic -structures. - -PBC data types and functions can be categorized as follows. The first two alone -suffice for a range of applications. - - - +element_t+: elements of an algebraic structure. - - +pairing_t+: pairings where elements belong; can initialize from sample - pairing parameters bundled with PBC in the +param+ subdirectory. - - +pbc_param_t+: used to generate pairing parameters. - - +pbc_cm_t+: parameters for constructing curves via the CM method; sometimes - required by +pbc_param_t+. - - +field_t+: algebraic structures: groups, rings and fields; used internally - by +pairing_t+. - - a few miscellaneous functions, such as ones controlling how random bits are - generated. - -Functions operating on a given data type usually have the same prefix, e.g. -those involving +element_t+ objects begin with +element_+. |