20static char* CoeffString(
const coeffs r)
22 return ((
nforder *)r->data)->String();
24static void EltWrite(number a,
const coeffs r)
41 xx = (number)
b->transpose();
58 Print(
"KillChar %lx\n", r);
61 BOOLEAN EltDBTest(number,
const char *,
const int,
const coeffs)
69 Print(
"%s called\n", __func__);
73static number EltMult(number a, number
b,
const coeffs r)
80static number EltSub(number a, number
b,
const coeffs r)
87static number EltAdd(number a, number
b,
const coeffs r)
94static number EltDiv(number a, number
b,
const coeffs r)
96 Werror(
"%s called\n", __func__, a,
b, r);
99static number EltIntDiv(number a, number
b,
const coeffs r)
101 Werror(
"IntDiv called on order elts", a,
b, r);
104static number EltIntMod(number a, number
b,
const coeffs r)
106 Werror(
"IntMod called on order elts", a,
b, r);
109static number EltExactDiv(number a, number
b,
const coeffs r)
111 Werror(
"%s called\n", __func__, a,
b, r);
115static number EltInit(
long i,
const coeffs r)
133static number EltInitMPZ(mpz_t
i,
const coeffs r)
136 Werror(
"%s called\n", __func__);
140static int EltSize(number n,
const coeffs r)
143 Werror(
"%s called\n", __func__);
147static long EltInt(number &n,
const coeffs r)
150 Werror(
"%s called\n", __func__);
154static void EltMPZ(mpz_t
result, number &n,
const coeffs r)
157 Werror(
"%s called\n", __func__);
162static number EltNeg(number a,
const coeffs r)
165 Werror(
"%s called\n", __func__);
168static number EltInvers(number a,
const coeffs r)
171 Werror(
"%s called\n", __func__);
174static number EltCopy(number a,
const coeffs r)
179static const char * EltRead(
const char *
s, number * a,
const coeffs r)
187 Print(
"%s called\n", __func__, a,
b, r);
192 Print(
"%s called\n", __func__, a,
b, r);
217 Print(
"%s called\n", __func__, src, dst);
221static void EltDelete(number * a,
const coeffs r)
232 r->nCoeffIsEqual=order_cmp;
235 r->cfCoeffString=CoeffString;
236 r->cfCoeffWrite=WriteRing;
237 r->cfWriteShort=EltWrite;
243 r->cfExactDiv = EltExactDiv;
244 r->cfInitMPZ = EltInitMPZ;
248 r->cfInpNeg = EltNeg;
249 r->cfInvers = EltInvers;
253 r->cfWriteLong = EltWrite;
255 r->cfGreater = EltGreater;
256 r->cfEqual = EltEqual;
257 r->cfIsZero = EltIsZero;
258 r->cfIsOne = EltIsOne;
259 r->cfIsMOne = EltIsMOne;
260 r->cfGreaterZero = EltGreaterZero;
261 r->cfDelete = EltDelete;
262 r->cfSetMap = EltSetMap;
264 r->cfDBTest = EltDBTest;
void Write()
IO: writes the matrix into the current internal string buffer which must be started/ allocated before...
void elSub(bigintmat *a, bigintmat *b)
void elMult(bigintmat *a, bigintmat *b)
coeffs basecoeffs() const
void elAdd(bigintmat *a, bigintmat *b)
Coefficient rings, fields and other domains suitable for Singular polynomials.
static FORCE_INLINE n_coeffType getCoeffType(const coeffs r)
Returns the type of coeffs domain.
static FORCE_INLINE void n_Delete(number *p, const coeffs r)
delete 'p'
static FORCE_INLINE number n_Init(long i, const coeffs r)
a number representing i in the given coeff field/ring r
number(* nMapFunc)(number a, const coeffs src, const coeffs dst)
maps "a", which lives in src, into dst
const CanonicalForm int s
if(!FE_OPT_NO_SHELL_FLAG)(void) system(sys)
static void SetChar(const coeffs)
static void KillChar(coeffs cf)
The main handler for Singular numbers which are suitable for Singular polynomials.
void basis_elt(bigintmat *m, int i)
number EltCreateMat(nforder *a, bigintmat *b)
BOOLEAN n_nfOrderInit(coeffs r, void *parameter)
EXTERN_VAR n_coeffType nforder_type
void StringAppendS(const char *st)
void Werror(const char *fmt,...)