20 static char* CoeffString(
const coeffs r)
22 return ((
nforder *)r->data)->String();
24 static 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__);
73 static number EltMult(number a, number
b,
const coeffs r)
80 static number EltSub(number a, number
b,
const coeffs r)
87 static number EltAdd(number a, number
b,
const coeffs r)
94 static number EltDiv(number a, number
b,
const coeffs r)
96 Werror(
"%s called\n", __func__, a,
b, r);
99 static number EltIntDiv(number a, number
b,
const coeffs r)
101 Werror(
"IntDiv called on order elts", a,
b, r);
104 static number EltIntMod(number a, number
b,
const coeffs r)
106 Werror(
"IntMod called on order elts", a,
b, r);
109 static number EltExactDiv(number a, number
b,
const coeffs r)
111 Werror(
"%s called\n", __func__, a,
b, r);
115 static number EltInit(
long i,
const coeffs r)
133 static number EltInitMPZ(mpz_t
i,
const coeffs r)
136 Werror(
"%s called\n", __func__);
140 static int EltSize(number n,
const coeffs r)
143 Werror(
"%s called\n", __func__);
147 static long EltInt(number &n,
const coeffs r)
150 Werror(
"%s called\n", __func__);
154 static void EltMPZ(mpz_t
result, number &n,
const coeffs r)
157 Werror(
"%s called\n", __func__);
162 static number EltNeg(number a,
const coeffs r)
165 Werror(
"%s called\n", __func__);
168 static number EltInvers(number a,
const coeffs r)
171 Werror(
"%s called\n", __func__);
174 static number EltCopy(number a,
const coeffs r)
179 static 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);
221 static 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,...)