COSTUMIZATION OF DECODING

OVERVIEW

It is easy to control what algorithms are used by decoding, for example if you want to replace unvariate polynomial multiplication with your own function or if the ring you are implementing has caracteristic 2.

DESCRIPTION

The file include/decoding/rings/GF17.c is an example of how to use macros defined below.

#define R NAME

R contains the name NAME of the ring you are implementing. See decoding-rings(3) for details.

#define RING_COMM_CAR2

Tell decoding that your ring has caracteristic 2. It is not mandatory to specify it. When defined it activates certain fast algorithms specific to caracteristic 2.

#define MY_UPOL_MUL myfunc

Replace default univariate polynomial multiplication by myfunc. See decoding-lowlevels(3) for the prototype of my_func.

#define MY_UPOL_SHIFT myfunc

Replace default univariate polynomial shifting by myfunc. See decoding-lowlevels(3) for the prototype of my_func.

#define MY_DBPOL_MUL myfunc

Replace default dense bivariate polynomial multiplication by myfunc. See decoding-lowlevels(3) for the prototype of my_func.

#define MY_DBPOL_SHIFT myfunc

Replace default dense bivariate polynomial shfting by myfunc. See decoding-lowlevels(3) for the prototype of my_func.

#define MY_UPOL_ROOTS myfunc

Replace default univariate root finding by myfunc. See decoding-lowlevels(3) for the prototype of my_func. Note that decoding provides no algorithm for univariate root finding.

#define GF_MAGMA_DECL "k := GF(p^n)"

This macro is useful only for test purpose with MAGMA. See decoding-rings(3) for details.

AUTHOR

Written by Guillaume Quintin (coincoin169g@gmail.com).

SEE ALSO

decoding-rings(3),decoding-lowlevels(3), MAGMA(http://magma.maths.usyd.edu.au/magma/)