X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb-perl/blobdiff_plain/f9952aec1cf6c64a5681308eea817b6113a37433..fcd15e0b7a3d0f0ca2f30953573f8d1f6b8e8bd2:/field.xs diff --git a/field.xs b/field.xs index 5121979..78067c4 100644 --- a/field.xs +++ b/field.xs @@ -97,23 +97,23 @@ type(f) OUTPUT: RETVAL -mp * -zero(f) +fe * +_zero(f) Field *f CODE: RETVAL = MP_COPY(f->zero); OUTPUT: RETVAL -mp * -one(f) +fe * +_one(f) Field *f CODE: RETVAL = MP_COPY(f->one); OUTPUT: RETVAL -mp * +fe * m(f) Field *f CODE: @@ -121,6 +121,14 @@ m(f) OUTPUT: RETVAL +fe * +q(f) + Field *f + CODE: + RETVAL = MP_COPY(f->q); + OUTPUT: + RETVAL + UV nbits(f) Field *f @@ -137,8 +145,8 @@ noctets(f) OUTPUT: RETVAL -mp * -rand(f, r = &rand_global) +fe * +_rand(f, r = &rand_global) Field *f grand *r CODE: @@ -155,19 +163,19 @@ samep(f, ff) OUTPUT: RETVAL -mp * +fe * in(f, x) Field *f - mp *x + fe *x CODE: RETVAL = F_IN(f, MP_NEW, x); OUTPUT: RETVAL -mp * +fe * out(f, x) Field *f - mp *x + fe *x CODE: RETVAL = F_OUT(f, MP_NEW, x); OUTPUT: @@ -176,91 +184,93 @@ out(f, x) bool zerop(f, x) Field *f - mp *x + fe *x CODE: RETVAL = F_ZEROP(f, x); OUTPUT: RETVAL -mp * +fe * neg(f, x) Field *f - mp *x + fe *x CODE: RETVAL = F_NEG(f, MP_NEW, x); OUTPUT: RETVAL -mp * +fe * add(f, x, y) Field *f - mp *x - mp *y + fe *x + fe *y CODE: RETVAL = F_ADD(f, MP_NEW, x, y); OUTPUT: RETVAL -mp * +fe * sub(f, x, y) Field *f - mp *x - mp *y + fe *x + fe *y CODE: RETVAL = F_SUB(f, MP_NEW, x, y); OUTPUT: RETVAL -mp * +fe * mul(f, x, y) Field *f - mp *x - mp *y + fe *x + fe *y CODE: RETVAL = F_MUL(f, MP_NEW, x, y); OUTPUT: RETVAL -mp * +fe * sqr(f, x) Field *f - mp *x + fe *x CODE: RETVAL = F_SQR(f, MP_NEW, x); OUTPUT: RETVAL -mp * +fe * inv(f, x) Field *f - mp *x + fe *x CODE: + if (F_ZEROP(f, x)) + croak("division by zero"); RETVAL = F_INV(f, MP_NEW, x); OUTPUT: RETVAL -mp * +fe * reduce(f, x) Field *f - mp *x + fe *x CODE: RETVAL = F_REDUCE(f, MP_NEW, x); OUTPUT: RETVAL -mp * +fe * sqrt(f, x) Field *f - mp *x + fe *x CODE: RETVAL = F_SQRT(f, MP_NEW, x); OUTPUT: RETVAL -mp * +fe * quadsolve(f, x) Field *f - mp *x + fe *x CODE: if (F_TYPE(f) != FTY_BINARY) croak("quadsolve only works on binary fields"); @@ -268,10 +278,10 @@ quadsolve(f, x) OUTPUT: RETVAL -mp * +fe * dbl(f, x) Field *f - mp *x + fe *x CODE: if (F_TYPE(f) != FTY_PRIME) croak("dbl only works on prime fields"); @@ -279,10 +289,10 @@ dbl(f, x) OUTPUT: RETVAL -mp * +fe * tpl(f, x) Field *f - mp *x + fe *x CODE: if (F_TYPE(f) != FTY_PRIME) croak("tpl only works on prime fields"); @@ -290,10 +300,10 @@ tpl(f, x) OUTPUT: RETVAL -mp * +fe * qdl(f, x) Field *f - mp *x + fe *x CODE: if (F_TYPE(f) != FTY_PRIME) croak("qdl only works on prime fields"); @@ -301,10 +311,10 @@ qdl(f, x) OUTPUT: RETVAL -mp * +fe * hlv(f, x) Field *f - mp *x + fe *x CODE: if (F_TYPE(f) != FTY_PRIME) croak("hlv only works on prime fields"); @@ -312,3 +322,10 @@ hlv(f, x) OUTPUT: RETVAL +SV * +get(f) + Field *f + CODE: + RETVAL = info_field(f); + OUTPUT: + RETVAL