Data Structures | Functions
flintcf_Zn.h File Reference
#include "singularconfig.h"
#include "misc/auxiliary.h"

Go to the source code of this file.

Data Structures

struct  flintZn_struct
 

Functions

BOOLEAN flintZn_InitChar (coeffs cf, void *infoStruct)
 
coeffs flintZnInitCfByName (char *s, n_coeffType n)
 

Data Structure Documentation

◆ flintZn_struct

struct flintZn_struct

Definition at line 16 of file flintcf_Zn.h.

Data Fields
int ch
char * name

Function Documentation

◆ flintZn_InitChar()

BOOLEAN flintZn_InitChar ( coeffs  cf,
void *  infoStruct 
)

Definition at line 487 of file flintcf_Zn.cc.

488 {
489  flintZn_struct *pp=(flintZn_struct*)infoStruct;
490  cf->ch=pp->ch;
491 
492  cf->cfCoeffString = CoeffString;
493  cf->cfCoeffName = CoeffName;
494  cf->cfCoeffWrite = CoeffWrite;
495  cf->nCoeffIsEqual = CoeffIsEqual;
496  cf->cfKillChar = KillChar;
497  cf->cfSetChar = SetChar;
498  cf->cfMult = Mult;
499  cf->cfSub = Sub;
500  cf->cfAdd = Add;
501  cf->cfDiv = Div;
502  cf->cfExactDiv = ExactDiv; // ???
503  cf->cfInit = Init;
504  cf->cfInitMPZ = InitMPZ;
505  cf->cfSize = Size;
506  cf->cfInt = Int;
507  cf->cfMPZ = MPZ;
508  cf->cfInpNeg = Neg;
509  cf->cfInvers = Invers;
510  cf->cfCopy = Copy;
511  cf->cfRePart = Copy;
512  // default: cf->cfImPart = ndReturn0;
513  cf->cfWriteLong = WriteShort; //WriteLong;
514  cf->cfWriteShort = WriteShort;
515  cf->cfRead = Read;
516  cf->cfNormalize = Normalize;
517 
518  //cf->cfDivComp=
519  //cf->cfIsUnit=
520  //cf->cfGetUnit=
521  //cf->cfDivBy=
522 
523  cf->cfGreater=Greater;
524  cf->cfEqual =Equal;
525  cf->cfIsZero =IsZero;
526  cf->cfIsOne =IsOne;
527  cf->cfIsMOne =IsMOne;
528  cf->cfGreaterZero=GreaterZero;
529 
530  cf->cfPower = Power;
531  //default: cf->cfGetDenom = GetDenom;
532  //default: cf->cfGetNumerator = GetNumerator;
533  cf->cfGcd = Gcd;
534  cf->cfExtGcd = ExtGcd;
535  cf->cfLcm = Lcm;
536  cf->cfDelete = Delete;
537  cf->cfSetMap = SetMap;
538  // default: cf->cfInpMult
539  // default: cf->cfInpAdd
540  cf->cfFarey =Farey;
541  cf->cfChineseRemainder=ChineseRemainder;
542  cf->cfParDeg = ParDeg;
543  cf->cfParameter = Parameter;
544  // cf->cfClearContent = ClearContent;
545  // cf->cfClearDenominators = ClearDenominators;
546  cf->convFactoryNSingN=ConvFactoryNSingN;
547  cf->convSingNFactoryN=ConvSingNFactoryN;
548  cf->cfWriteFd = WriteFd;
549  cf->cfReadFd = ReadFd;
550 #ifdef LDEBUG
551  cf->cfDBTest = DBTest;
552 #endif
553 
554  cf->iNumberOfParameters = 1;
555  char **pn=(char**)omAlloc0(sizeof(char*));
556  pn[0]=(char*)omStrDup(pp->name);
557  cf->pParameterNames = (const char **)pn;
558  cf->has_simple_Inverse= FALSE;
559  cf->has_simple_Alloc= FALSE;
560  cf->is_field=FALSE;
561 
562  return FALSE;
563 }
static void WriteShort(number a, const coeffs r)
Definition: flintcf_Zn.cc:220
static number Mult(number a, number b, const coeffs c)
Definition: flintcf_Zn.cc:68
static void WriteFd(number a, const ssiInfo *d, const coeffs)
Definition: flintcf_Zn.cc:454
static number Sub(number a, number b, const coeffs c)
Definition: flintcf_Zn.cc:75
static const char * Read(const char *st, number *a, const coeffs r)
Definition: flintcf_Zn.cc:250
static BOOLEAN DBTest(number a, const char *f, const int l, const coeffs r)
Definition: flintcf_Zn.cc:482
static number Init(long i, const coeffs r)
Definition: flintcf_Zn.cc:130
static void Delete(number *a, const coeffs r)
Definition: flintcf_Zn.cc:353
#define FALSE
Definition: auxiliary.h:96
static number Lcm(number a, number b, const coeffs r)
Definition: flintcf_Zn.cc:349
static number Farey(number p, number n, const coeffs)
Definition: flintcf_Zn.cc:393
static number ExtGcd(number a, number b, number *s, number *t, const coeffs r)
Definition: flintcf_Zn.cc:340
static void KillChar(coeffs cf)
Definition: flintcf_Zn.cc:59
static long Int(number &n, const coeffs r)
Definition: flintcf_Zn.cc:154
static BOOLEAN IsOne(number a, const coeffs r)
Definition: flintcf_Zn.cc:310
static BOOLEAN CoeffIsEqual(const coeffs r, n_coeffType n, void *parameter)
Definition: flintcf_Zn.cc:52
static number InitMPZ(mpz_t i, const coeffs r)
Definition: flintcf_Zn.cc:139
static BOOLEAN Greater(number a, number b, const coeffs r)
Definition: flintcf_Zn.cc:287
static int Size(number n, const coeffs r)
Definition: flintcf_Zn.cc:150
static void Normalize(number &a, const coeffs r)
Definition: flintcf_Zn.cc:284
CanonicalForm pp(const CanonicalForm &)
CanonicalForm pp ( const CanonicalForm & f )
Definition: cf_gcd.cc:248
static int ParDeg(number x, const coeffs r)
Definition: flintcf_Zn.cc:401
static void Power(number a, int i, number *result, const coeffs r)
Definition: flintcf_Zn.cc:326
static number ChineseRemainder(number *x, number *q, int rl, BOOLEAN sym, CFArray &inv_cache, const coeffs)
Definition: flintcf_Zn.cc:397
static void CoeffWrite(const coeffs r, BOOLEAN details)
Definition: flintcf_Zn.cc:47
static BOOLEAN GreaterZero(number k, const coeffs r)
Definition: flintcf_Zn.cc:320
static number Neg(number a, const coeffs r)
Definition: flintcf_Zn.cc:174
static number Parameter(const int i, const coeffs r)
Definition: flintcf_Zn.cc:405
static number ConvFactoryNSingN(const CanonicalForm n, const coeffs r)
Definition: flintcf_Zn.cc:414
static BOOLEAN IsZero(number a, const coeffs r)
Definition: flintcf_Zn.cc:306
static number ReadFd(const ssiInfo *d, const coeffs r)
Definition: flintcf_Zn.cc:467
static char * CoeffName(const coeffs r)
Definition: flintcf_Zn.cc:421
static char * CoeffString(const coeffs r)
Definition: flintcf_Zn.cc:427
static BOOLEAN IsMOne(number k, const coeffs r)
Definition: flintcf_Zn.cc:314
static number Add(number a, number b, const coeffs c)
Definition: flintcf_Zn.cc:82
static void MPZ(mpz_t result, number &n, const coeffs r)
Definition: flintcf_Zn.cc:164
static number Div(number a, number b, const coeffs c)
Definition: flintcf_Zn.cc:89
static number Invers(number a, const coeffs r)
Definition: flintcf_Zn.cc:179
static number Gcd(number a, number b, const coeffs r)
Definition: flintcf_Zn.cc:333
static CanonicalForm ConvSingNFactoryN(number n, BOOLEAN setChar, const coeffs r)
Definition: flintcf_Zn.cc:417
static void SetChar(const coeffs r)
Definition: flintcf_Zn.cc:64
static number ExactDiv(number a, number b, const coeffs c)
Definition: flintcf_Zn.cc:111
static nMapFunc SetMap(const coeffs src, const coeffs dst)
Definition: flintcf_Zn.cc:362
#define omAlloc0(size)
Definition: omAllocDecl.h:211
static number Copy(number a, const coeffs r)
Definition: flintcf_Zn.cc:202
static BOOLEAN Equal(number a, number b, const coeffs r)
Definition: flintcf_Zn.cc:302
#define omStrDup(s)
Definition: omAllocDecl.h:263

◆ flintZnInitCfByName()

coeffs flintZnInitCfByName ( char *  s,
n_coeffType  n 
)

Definition at line 433 of file flintcf_Zn.cc.

434 {
435  const char start[]="flint:Z/";
436  const int start_len=strlen(start);
437  if (strncmp(s,start,start_len)==0)
438  {
439  s+=start_len;
440  int p;
441  char st[10];
442  int l=sscanf(s,"%d[%s",&p,st);
443  if (l==2)
444  {
446  info.ch=p;
447  while (st[strlen(st)-1]==']') st[strlen(st)-1]='\0';
448  info.name=st;
449  return nInitChar(n,(void*)&info);
450  }
451  }
452  return NULL;
453 }
const CanonicalForm int s
Definition: facAbsFact.cc:55
const ExtensionInfo & info
< [in] sqrfree poly
#define NULL
Definition: omList.c:12
int p
Definition: cfModGcd.cc:4019
int l
Definition: cfEzgcd.cc:93
coeffs nInitChar(n_coeffType t, void *parameter)
one-time initialisations for new coeffs in case of an error return NULL
Definition: numbers.cc:349