SV *sv
int radix
CODE:
- RETVAL = sv ? mp_fromsv(sv, "sv", "Catacomb::GF", radix, 1) : MP_ZERO;
+ RETVAL = sv ? mp_fromsv(sv, "sv", radix, 1) : MP_ZERO;
OUTPUT:
RETVAL
OUTPUT:
RETVAL
-int
-metrics(m)
- gf *m
- INTERFACE_MACRO:
- XSINTERFACE_FUNC
- XSINTERFACE_FUNC_SETMP
- INTERFACE:
- octets bits
-
-SV *
-storeb(m, i = -1)
- gf *m
- int i
- PREINIT:
- size_t sz;
- CODE:
- sz = (i < 0) ? mp_octets(m) : i;
- RETVAL = NEWSV(0, sz ? sz : 1);
- mp_storeb(m, SvPVX(RETVAL), sz);
- SvCUR_set(RETVAL, sz);
- SvPOK_on(RETVAL);
- OUTPUT:
- RETVAL
-
-SV *
-storel(m, i = -1)
- gf *m
- int i
- PREINIT:
- size_t sz;
- CODE:
- sz = (i < 0) ? mp_octets(m) : i;
- RETVAL = NEWSV(0, sz ? sz : 1);
- mp_storel(m, SvPVX(RETVAL), sz);
- SvCUR_set(RETVAL, sz);
- SvPOK_on(RETVAL);
- OUTPUT:
- RETVAL
-
-SV *
-tostring(m, radix = 16)
- gf *m
- int radix
- CODE:
- RETVAL = NEWSV(0, 0);
- mp_writesv(m, RETVAL, radix);
- OUTPUT:
- RETVAL
-
-SV *
-toint(m)
- gf *m
- CODE:
- RETVAL = newSViv(mp_toiv(m));
- OUTPUT:
- RETVAL
-
-SV *
-DESTROY(m)
- gf *m
- CODE:
- mp_drop(m);
- XSRETURN_UNDEF;
-
mp *
gf_sqr(a)
gf *a
INTERFACE:
add sub mul
+mp *
+logop(a, b)
+ gf *a
+ gf *b
+ C_ARGS:
+ MP_NEW, a, b
+ INTERFACE_MACRO:
+ XSINTERFACE_FUNC
+ XSINTERFACE_FUNC_SETMP
+ INTERFACE:
+ and or xor nand nor
+
+mp *
+unop(a)
+ gf *a
+ C_ARGS:
+ MP_NEW, a
+ INTERFACE_MACRO:
+ XSINTERFACE_FUNC
+ XSINTERFACE_FUNC_SETMP
+ INTERFACE:
+ not
+
gf *
shiftop(a, n)
- mp *a
+ gf *a
int n
C_ARGS:
MP_NEW, a, n
INTERFACE:
lsl lsr
-int
-gf_eq(a, b)
+gf *
+flipbits(a, n)
gf *a
- gf *b
- CODE:
- RETVAL = mp_eq(a, b);
- OUTPUT:
- RETVAL
+ unsigned long n
+ C_ARGS:
+ MP_NEW, a, n
+ INTERFACE_MACRO:
+ XSINTERFACE_FUNC
+ XSINTERFACE_FUNC_SETMP
+ INTERFACE:
+ setbit clearbit
int
gf_irreduciblep(a)
break;
}
-GF_Reduce *
-makereduce(x)
- gf *x
- CODE:
- RETVAL = CREATE(GF_Reduce);
- gfreduce_create(RETVAL, x);
- OUTPUT:
- RETVAL
-
MODULE = Catacomb PACKAGE = Catacomb::GF::Reduce PREFIX = gfreduce_
GF_Reduce *