22 puts(
"nforder_Register called");
72 if (cmp && cmp != O)
return FALSE;
89 number2
b = (number2) arg->
Data();
90 if (r && b->cf != r)
return FALSE;
100 if (r && (*result)->order() !=
r)
return FALSE;
107 *result = (long) arg->
Data();
113 switch (arg->
Typ()) {
115 *result = (number)arg->
Data();
121 *result = (number)arg->
Data();
128 number2 n = (number2)arg->
Data();
194 blackbox *
b=(blackbox*)
omAlloc0(
sizeof(blackbox));
223 #define returnNumber(_res, _n, _R) \ 225 number2 _r = (number2)omAlloc(sizeof(struct snumber2)); \ 228 _res->rtyp = CNUMBER_CMD; \ 240 for(
int i=0;
i<n;
i++) {
271 WerrorS(
"usage: IdealFromMat(order, basis matrix)");
277 WerrorS(
"3:usage: IdealFromMat(order, basis matrix)");
290 WerrorS(
"usage: EltFromMat(order, matrix)");
296 WerrorS(
"2:usage: EltFromMat(order, matrix)");
307 WerrorS(
"usage: Discriminant(order)");
320 WerrorS(
"usage: pMaximalOrder(order, int)");
324 long p = (int)(
long)arg->
Data();
343 long p = (
int)(long)arg->
Data();
358 WerrorS(
"usage: NFOrderSimplify(order)");
378 WerrorS(
"EltTrace(elt in order)");
383 number t = o->elTrace(aa);
397 WerrorS(
"EltNorm(elt in order)");
402 number t = o->elNorm(aa);
410 number2
a = (number2) arg->
Data();
427 long p = (int)(
long)arg->
Data();
428 number
P =
n_Init(p, a->basecoeffs());
443 psModulFunctions->iiAddCproc(
449 psModulFunctions->iiAddCproc(
455 psModulFunctions->iiAddCproc(
461 psModulFunctions->iiAddCproc(
467 psModulFunctions->iiAddCproc(
473 psModulFunctions->iiAddCproc(
479 psModulFunctions->iiAddCproc(
485 psModulFunctions->iiAddCproc(
491 psModulFunctions->iiAddCproc(
497 psModulFunctions->iiAddCproc(
503 psModulFunctions->iiAddCproc(
511 "nforder: orders in number fields");
static BOOLEAN nforder_ideal_Assign(leftv l, leftv r)
Class used for (list of) interpreter objects.
static void * nforder_ideal_Init(blackbox *)
static BOOLEAN pMaximalOrder(leftv result, leftv arg)
static char * nforder_ideal_String(blackbox *b, void *d)
static BOOLEAN oneStep(leftv result, leftv arg)
static BOOLEAN build_ring(leftv result, leftv arg)
nforder_ideal * nf_idMult(nforder_ideal *A, nforder_ideal *B)
static BOOLEAN nforder_ideal_bb_setup()
BOOLEAN checkArgumentIsBigintmat(leftv arg, coeffs r, bigintmat **result)
static void * nforder_ideal_Copy(blackbox *, void *d)
static FORCE_INLINE number n_Init(long i, const coeffs r)
a number representing i in the given coeff field/ring r
static BOOLEAN nforder_ideal_Op2(int op, leftv l, leftv r1, leftv r2)
number EltCreateMat(nforder *a, bigintmat *b)
BOOLEAN n_nfOrderInit(coeffs r, void *parameter)
BOOLEAN checkBigintmatDim(bigintmat *b, int r, int c)
void WerrorS(const char *s)
static BOOLEAN nforder_simplify(leftv result, leftv arg)
nforder * pmaximal(nforder *o, number p)
BOOLEAN checkArgumentIsBigint(leftv arg, number *result)
static BOOLEAN elt_from_mat(leftv result, leftv arg)
bigintmat * elRepMat(bigintmat *a)
static void nforder_Register()
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
nforder * onestep(nforder *o, number p, coeffs c)
nforder_ideal * nf_idPower(nforder_ideal *A, int i)
Coefficient rings, fields and other domains suitable for Singular polynomials.
n_coeffType nRegister(n_coeffType n, cfInitCharProc p)
static BOOLEAN eltRepMat(leftv result, leftv arg)
#define returnNumber(_res, _n, _R)
BOOLEAN checkArgumentIsNumber2(leftv arg, coeffs r, number2 *result)
The main handler for Singular numbers which are suitable for Singular polynomials.
void StringSetS(const char *st)
void StringAppendS(const char *st)
BOOLEAN checkArgumentIsNFOrderIdeal(leftv arg, coeffs r, nforder_ideal **result)
static int nforder_type_id
int SI_MOD_INIT() Order(SModulFunctions *psModulFunctions)
only used if HAVE_RINGS is defined: ?
BOOLEAN checkArgumentIsOrder(leftv arg, nforder *cmp, nforder **result)
void diagonalForm(bigintmat *A, bigintmat **S, bigintmat **T)
static FORCE_INLINE n_coeffType getCoeffType(const coeffs r)
Returns the type of coeffs domain.
static BOOLEAN ideal_from_mat(leftv result, leftv arg)
void module_help_main(const char *newlib, const char *help)
BOOLEAN dimension(leftv res, leftv args)
coeffs basecoeffs() const
static BOOLEAN eltNorm(leftv result, leftv arg)
BOOLEAN checkArgumentIsInt(leftv arg, int *result)
coeffs basecoeffs() const
static void nforder_ideal_destroy(blackbox *, void *d)
static BOOLEAN discriminant(leftv result, leftv arg)
nforder_ideal * nf_idAdd(nforder_ideal *A, nforder_ideal *B)
const char * getBlackboxName(const int t)
return the name to the type given by t (r/o)
static BOOLEAN eltTrace(leftv result, leftv arg)
int setBlackboxStuff(blackbox *bb, const char *n)
define a new type
static BOOLEAN smithtest(leftv result, leftv arg)
coeffs nInitChar(n_coeffType t, void *parameter)
one-time initialisations for new coeffs in case of an error return NULL