Functions
gnumpc.h File Reference
#include <singularconfig.h>
#include <misc/auxiliary.h>

Go to the source code of this file.

Functions

BOOLEAN ngcInitChar (coeffs r, void *)
 Initialize r (n_long_C) More...
 

Function Documentation

§ ngcInitChar()

BOOLEAN ngcInitChar ( coeffs  r,
void *   
)

Initialize r (n_long_C)

Definition at line 460 of file gnumpc.cc.

461 {
462  assume( getCoeffType(n) == n_long_C );
463  n->is_field=TRUE;
464  n->is_domain=TRUE;
465  n->rep=n_rep_gmp_complex;
466 
467  n->cfKillChar = ngcKillChar;
468  n->ch = 0;
469  n->cfCoeffString=ngcCoeffString;
470 
471  n->cfDelete = ngcDelete;
472  //n->cfNormalize=ndNormalize;
473  n->cfInit = ngcInit;
474  n->cfInt = ngcInt;
475  n->cfAdd = ngcAdd;
476  n->cfSub = ngcSub;
477  n->cfMult = ngcMult;
478  n->cfDiv = ngcDiv;
479  n->cfExactDiv= ngcDiv;
480  n->cfInpNeg = ngcNeg;
481  n->cfInvers = ngcInvers;
482  n->cfCopy = ngcCopy;
483  n->cfGreater = ngcGreater;
484  n->cfEqual = ngcEqual;
485  n->cfIsZero = ngcIsZero;
486  n->cfIsOne = ngcIsOne;
487  n->cfIsMOne = ngcIsMOne;
488  n->cfGreaterZero = ngcGreaterZero;
489 
490  n->cfWriteLong = ngcWrite;
491  n->cfWriteShort = ngcWrite;
492 
493  n->cfRead = ngcRead;
494  n->cfPower = ngcPower;
495  n->cfSetMap = ngcSetMap;
496  n->cfRePart = ngcRePart;
497  n->cfImPart = ngcImPart;
498  n->cfCoeffWrite = ngcCoeffWrite;
499  // cfSize = ndSize;
500 #ifdef LDEBUG
501  //n->cfDBTest = ndDBTest; // not yet implemented: ngcDBTest
502 #endif
503 
504  n->nCoeffIsEqual = ngcCoeffIsEqual;
505 
506  n->cfSetChar=ngcSetChar;
507 
508 // we need to initialize n->nNULL at least for minpoly printing
509  n->nNULL = n->cfInit(0,n);
510 
511 /*
512  //r->cfInitChar=nlInitChar;
513  r->cfKillChar=NULL;
514 
515  r->cfMult = nlMult;
516  r->cfSub = nlSub;
517  r->cfAdd = nlAdd;
518  r->cfDiv = nlDiv;
519  r->cfIntMod= nlIntMod;
520  r->cfExactDiv= nlExactDiv;
521  r->cfInit = nlInit;
522  r->cfSize = nlSize;
523  r->cfInt = nlInt;
524 #ifdef HAVE_RINGS
525  r->cfDivComp = NULL; // only for ring stuff
526  r->cfIsUnit = NULL; // only for ring stuff
527  r->cfGetUnit = NULL; // only for ring stuff
528  r->cfExtGcd = NULL; // only for ring stuff
529 #endif
530  r->cfInpNeg = nlNeg;
531  r->cfInvers= nlInvers;
532  r->cfCopy = nl_Copy;
533  r->cfRePart = nl_Copy;
534  r->cfImPart = ndReturn0;
535  r->cfWriteLong = nlWrite;
536  r->cfRead = nlRead;
537  r->cfNormalize=nlNormalize;
538  r->cfGreater = nlGreater;
539 #ifdef HAVE_RINGS
540  r->cfDivBy = NULL; // only for ring stuff
541 #endif
542  r->cfEqual = nlEqual;
543  r->cfIsZero = nlIsZero;
544  r->cfIsOne = nlIsOne;
545  r->cfIsMOne = nlIsMOne;
546  r->cfGreaterZero = nlGreaterZero;
547  r->cfPower = nlPower;
548  r->cfGetDenom = nlGetDenom;
549  r->cfGetNumerator = nlGetNumerator;
550  r->cfGcd = nlGcd;
551  r->cfLcm = nlLcm;
552  r->cfDelete= nlDelete;
553  r->cfSetMap = nlSetMap;
554  r->cfName = ndName;
555  r->cfInpMult=nlInpMult;
556  r->cfInit_bigint=nlCopyMap;
557 #ifdef LDEBUG
558  // debug stuff
559  r->cfDBTest=nlDBTest;
560 #endif
561 
562  // the variables:
563  r->nNULL = INT_TO_SR(0);
564  r->type = n_Q;
565  r->ch = 0;
566  r->has_simple_Alloc=FALSE;
567  r->has_simple_Inverse=FALSE;
568 */
569 
570  n->iNumberOfParameters = 1;
571  n->cfParameter = ngcParameter;
572 
573  char ** pParameterNames = (char **) omAlloc0(sizeof(char *));
574 
575  if( parameter != NULL)
576  {
577  LongComplexInfo* p = (LongComplexInfo*)parameter;
578  pParameterNames[0] = omStrDup(p->par_name);
579  // fix wrong parameters:
581  n->float_len = p->float_len;
582  n->float_len2 = p->float_len2;
583 
584  } else // default values, just for testing!
585  {
586  pParameterNames[0] = omStrDup("i");
587  n->float_len = SHORT_REAL_LENGTH;
588  n->float_len2 = SHORT_REAL_LENGTH;
589  }
590 
591  assume( pParameterNames != NULL );
592  assume( pParameterNames[0] != NULL );
593 
594  n->pParameterNames = (const char**)pParameterNames;
595 
596  // NOTE: n->complex_parameter was replaced by n_ParameterNames(n)[0]
597  // TODO: nfKillChar MUST destroy n->pParameterNames[0] (0-term. string) && n->pParameterNames (array of size 1)
598 
599  return FALSE;
600 }
void ngcPower(number x, int exp, number *lu, const coeffs r)
Definition: gnumpc.cc:238
static void ngcKillChar(coeffs r)
Definition: gnumpc.cc:439
number ngcRePart(number a, const coeffs r)
Definition: gnumpc.cc:290
void ngcDelete(number *a, const coeffs r)
Definition: gnumpc.cc:131
number ngcInit(long i, const coeffs r)
Definition: gnumpc.cc:94
void ngcWrite(number a, const coeffs r)
Definition: gnumpc.cc:401
number ngcImPart(number a, const coeffs r)
Definition: gnumpc.cc:298
#define SHORT_REAL_LENGTH
Definition: numbers.h:54
#define FALSE
Definition: auxiliary.h:97
return P p
Definition: myNF.cc:203
nMapFunc ngcSetMap(const coeffs src, const coeffs dst)
Get a mapping function from src into the domain of this type: long_C!
Definition: gnumpc.cc:697
long ngcInt(number &n, const coeffs r)
Definition: gnumpc.cc:106
#define TRUE
Definition: auxiliary.h:101
number ngcDiv(number a, number b, const coeffs r)
Definition: gnumpc.cc:221
BOOLEAN ngcCoeffIsEqual(const coeffs r, n_coeffType n, void *parameter)
Definition: gnumpc.cc:417
short float_len2
additional char-flags, rInit
Definition: coeffs.h:102
void ngcCoeffWrite(const coeffs r, BOOLEAN details)
Definition: gnumpc.cc:728
static char * ngcCoeffString(const coeffs r)
Definition: gnumpc.cc:452
void ngcSetChar(const coeffs r)
Definition: gnumpc.cc:602
short float_len
additional char-flags, rInit
Definition: coeffs.h:101
BOOLEAN ngcGreaterZero(number za, const coeffs r)
Note: MAY NOT WORK AS EXPECTED!
Definition: gnumpc.cc:309
number ngcSub(number la, number li, const coeffs r)
Definition: gnumpc.cc:199
#define assume(x)
Definition: mod2.h:403
complex floating point (GMP) numbers
Definition: coeffs.h:42
(gmp_complex), see gnumpc.h
Definition: coeffs.h:118
static FORCE_INLINE n_coeffType getCoeffType(const coeffs r)
Returns the type of coeffs domain.
Definition: coeffs.h:425
BOOLEAN ngcIsOne(number a, const coeffs r)
Definition: gnumpc.cc:346
BOOLEAN ngcIsZero(number za, const coeffs r)
Definition: gnumpc.cc:283
BOOLEAN ngcIsMOne(number a, const coeffs r)
Definition: gnumpc.cc:357
#define NULL
Definition: omList.c:10
number ngcMult(number a, number b, const coeffs r)
Definition: gnumpc.cc:210
number ngcAdd(number la, number li, const coeffs r)
Definition: gnumpc.cc:188
const char * ngcRead(const char *s, number *a, const coeffs r)
Definition: gnumpc.cc:368
BOOLEAN ngcGreater(number a, number b, const coeffs r)
Definition: gnumpc.cc:322
number ngcParameter(int i, const coeffs r)
Definition: gnumpc.cc:80
const char * par_name
parameter name
Definition: coeffs.h:103
number ngcInvers(number a, const coeffs r)
Definition: gnumpc.cc:169
number ngcNeg(number za, const coeffs r)
Definition: gnumpc.cc:157
BOOLEAN ngcEqual(number a, number b, const coeffs r)
Definition: gnumpc.cc:334
#define omAlloc0(size)
Definition: omAllocDecl.h:211
number ngcCopy(number a, const coeffs r)
Definition: gnumpc.cc:145
#define omStrDup(s)
Definition: omAllocDecl.h:263