Converts e to byte, writing the result in the buffer data.
The number of bytes it will write can be determined from calling
element_length_in_bytes(). Returns number of bytes written.

int element_from_bytes(element_t e, unsigned char *data)

Reads e from the buffer data, and returns the number of bytes read.

int element_to_bytes_x_only(unsigned char *data, element_t e)

Assumes e is a point on an elliptic curve.
Writes the x-coordinate of e to the buffer data

int element_from_bytes_x_only(element_t e, unsigned char *data)

Assumes e is a point on an elliptic curve.
Sets e to a point with
x-coordinate represented by the buffer data. This is not unique.
For each x-coordinate, there exist two different points, at least
for the elliptic curves in PBC. (They are inverses of each other.)

int element_length_in_bytes_x_only(element_t e)

Assumes e is a point on an elliptic curve.
Returns the length in bytes needed to hold the x-coordinate of e.

int element_to_bytes_compressed(unsigned char *data, element_t e)

If possible, outputs a compressed form of the element e to
the buffer of bytes data.
Currently only implemented for points on an elliptic curve.

int element_from_bytes_compressed(element_t e, unsigned char *data)

Sets element e to the element in compressed form in the buffer of bytes
data.
Currently only implemented for points on an elliptic curve.

int element_length_in_bytes_compressed(element_t e)

Returns the number of bytes needed to hold e in compressed form.
Currently only implemented for points on an elliptic curve.

int element_item_count(element_t e)

For points, returns the number of coordinates.
For polynomials, returns the number of coefficients.
Otherwise returns zero.

element_t element_item(element_t e, int i)

For points, returns nth coordinate.
For polynomials, returns coefficient of xn.
Otherwise returns NULL.
The element the return value points to may be modified.