My Project
Loading...
Searching...
No Matches
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)
 
void ngcSetChar (const coeffs r)
 

Function Documentation

◆ ngcInitChar()

BOOLEAN ngcInitChar ( coeffs r,
void * parameter )

Initialize r (n_long_C)

Definition at line 560 of file gnumpc.cc.

561{
563 n->is_field=TRUE;
564 n->is_domain=TRUE;
565 n->rep=n_rep_gmp_complex;
566
567 n->cfKillChar = ngcKillChar;
568 n->ch = 0;
569 n->cfCoeffName=ngcCoeffName;
570 n->cfCoeffWrite = ngcCoeffWrite;
571
572 n->cfDelete = ngcDelete;
573 //n->cfNormalize=ndNormalize;
574 n->cfInit = ngcInit;
575 n->cfInitMPZ = ngcInitMPZ;
576 n->cfInt = ngcInt;
577 n->cfAdd = ngcAdd;
578 n->cfInpAdd = ngcInpAdd;
579 n->cfSub = ngcSub;
580 n->cfMult = ngcMult;
581 n->cfInpMult = ngcInpMult;
582 n->cfDiv = ngcDiv;
583 n->cfExactDiv= ngcDiv;
584 n->cfInpNeg = ngcNeg;
585 n->cfInvers = ngcInvers;
586 n->cfCopy = ngcCopy;
587 n->cfGreater = ngcGreater;
588 n->cfEqual = ngcEqual;
589 n->cfIsZero = ngcIsZero;
590 n->cfIsOne = ngcIsOne;
591 n->cfIsMOne = ngcIsMOne;
592 n->cfGreaterZero = ngcGreaterZero;
593 n->cfSize = ngcSize;
594
595 n->cfWriteLong = ngcWrite;
596 n->cfWriteShort = ngcWrite;
597
598 n->cfRead = ngcRead;
599 n->cfPower = ngcPower;
600 n->cfSetMap = ngcSetMap;
601 n->cfRePart = ngcRePart;
602 n->cfImPart = ngcImPart;
603 // cfSize = ndSize;
604#ifdef LDEBUG
605 n->cfDBTest = ngcDBTest; // not yet implemented: ngcDBTest
606#endif
607
608 n->nCoeffIsEqual = ngcCoeffIsEqual;
609
610 n->cfSetChar=ngcSetChar;
611
612/*
613 //r->cfInitChar=nlInitChar;
614 r->cfKillChar=NULL;
615
616 r->cfMult = nlMult;
617 r->cfSub = nlSub;
618 r->cfAdd = nlAdd;
619 r->cfDiv = nlDiv;
620 r->cfIntMod= nlIntMod;
621 r->cfExactDiv= nlExactDiv;
622 r->cfInit = nlInit;
623 r->cfSize = nlSize;
624 r->cfInt = nlInt;
625 r->cfDivComp = NULL; // only for ring stuff
626 r->cfIsUnit = NULL; // only for ring stuff
627 r->cfGetUnit = NULL; // only for ring stuff
628 r->cfExtGcd = NULL; // only for ring stuff
629 r->cfInpNeg = nlNeg;
630 r->cfInvers= nlInvers;
631 r->cfCopy = nl_Copy;
632 r->cfRePart = nl_Copy;
633 r->cfImPart = ndReturn0;
634 r->cfWriteLong = nlWrite;
635 r->cfRead = nlRead;
636 r->cfNormalize=nlNormalize;
637 r->cfGreater = nlGreater;
638 r->cfDivBy = NULL; // only for ring stuff
639 r->cfEqual = nlEqual;
640 r->cfIsZero = nlIsZero;
641 r->cfIsOne = nlIsOne;
642 r->cfIsMOne = nlIsMOne;
643 r->cfGreaterZero = nlGreaterZero;
644 r->cfPower = nlPower;
645 r->cfGetDenom = nlGetDenom;
646 r->cfGetNumerator = nlGetNumerator;
647 r->cfGcd = nlGcd;
648 r->cfLcm = nlLcm;
649 r->cfDelete= nlDelete;
650 r->cfSetMap = nlSetMap;
651 r->cfName = ndName;
652 r->cfInpMult=nlInpMult;
653#ifdef LDEBUG
654 // debug stuff
655 r->cfDBTest=nlDBTest;
656#endif
657
658 // the variables:
659 r->type = n_Q;
660 r->ch = 0;
661 r->has_simple_Alloc=FALSE;
662 r->has_simple_Inverse=FALSE;
663*/
664
665 n->iNumberOfParameters = 1;
666 n->cfParameter = ngcParameter;
667
668 char ** pParameterNames = (char **) omAlloc0(sizeof(char *));
669
670 if( parameter != NULL)
671 {
672 LongComplexInfo* p = (LongComplexInfo*)parameter;
673 pParameterNames[0] = omStrDup(p->par_name);
674 // fix wrong parameters:
675 if (p->float_len<SHORT_REAL_LENGTH) p->float_len=SHORT_REAL_LENGTH;
676 n->float_len = p->float_len;
677 n->float_len2 = p->float_len2;
678
679 } else // default values, just for testing!
680 {
681 pParameterNames[0] = omStrDup("i");
682 n->float_len = SHORT_REAL_LENGTH;
683 n->float_len2 = SHORT_REAL_LENGTH;
684 }
685
686 assume( pParameterNames != NULL );
687 assume( pParameterNames[0] != NULL );
688
689 n->pParameterNames = (const char**)pParameterNames;
690
691 // NOTE: n->complex_parameter was replaced by n_ParameterNames(n)[0]
692 // TODO: nfKillChar MUST destroy n->pParameterNames[0] (0-term. string) && n->pParameterNames (array of size 1)
693
694 return FALSE;
695}
#define TRUE
Definition auxiliary.h:101
#define FALSE
Definition auxiliary.h:97
int p
Definition cfModGcd.cc:4086
@ n_long_C
complex floating point (GMP) numbers
Definition coeffs.h:41
static FORCE_INLINE n_coeffType getCoeffType(const coeffs r)
Returns the type of coeffs domain.
Definition coeffs.h:429
@ n_rep_gmp_complex
(gmp_complex), see gnumpc.h
Definition coeffs.h:125
static void ngcKillChar(coeffs r)
Definition gnumpc.cc:406
static number ngcImPart(number a, const coeffs r)
Definition gnumpc.cc:265
static number ngcDiv(number a, number b, const coeffs r)
Definition gnumpc.cc:198
static void ngcDelete(number *a, const coeffs r)
Definition gnumpc.cc:93
static void ngcInpMult(number &a, number b, const coeffs R)
Definition gnumpc.cc:188
static BOOLEAN ngcDBTest(number, const char *, const int, const coeffs r)
Definition gnumpc.cc:27
static number ngcSub(number a, number b, const coeffs R)
Definition gnumpc.cc:169
static number ngcCopy(number a, const coeffs r)
Definition gnumpc.cc:107
static number ngcInvers(number a, const coeffs R)
Definition gnumpc.cc:131
static number ngcInitMPZ(mpz_t m, const coeffs)
Definition gnumpc.cc:521
void ngcSetChar(const coeffs r)
Definition gnumpc.cc:697
static void ngcPower(number x, int exp, number *u, const coeffs r)
Definition gnumpc.cc:215
static number ngcAdd(number a, number b, const coeffs R)
Definition gnumpc.cc:151
static nMapFunc ngcSetMap(const coeffs src, const coeffs dst)
Definition gnumpc.cc:529
static BOOLEAN ngcIsMOne(number a, const coeffs r)
Definition gnumpc.cc:324
static BOOLEAN ngcCoeffIsEqual(const coeffs r, n_coeffType n, void *parameter)
Definition gnumpc.cc:384
static BOOLEAN ngcGreaterZero(number a, const coeffs r)
Definition gnumpc.cc:276
static number ngcInit(long i, const coeffs r)
Definition gnumpc.cc:49
static number ngcRePart(number a, const coeffs r)
Definition gnumpc.cc:257
static void ngcCoeffWrite(const coeffs r, BOOLEAN)
Definition gnumpc.cc:427
static BOOLEAN ngcGreater(number a, number b, const coeffs r)
Definition gnumpc.cc:289
static number ngcParameter(int i, const coeffs r)
Definition gnumpc.cc:35
static void ngcWrite(number a, const coeffs r)
Definition gnumpc.cc:368
static int ngcSize(number n, const coeffs R)
Definition gnumpc.cc:75
static number ngcNeg(number a, const coeffs R)
Definition gnumpc.cc:119
static const char * ngcRead(const char *s, number *a, const coeffs r)
Definition gnumpc.cc:335
static BOOLEAN ngcIsZero(number a, const coeffs r)
Definition gnumpc.cc:68
static number ngcMult(number a, number b, const coeffs R)
Definition gnumpc.cc:180
static void ngcInpAdd(number &a, number b, const coeffs R)
Definition gnumpc.cc:159
static char * ngcCoeffName(const coeffs r)
Definition gnumpc.cc:419
static BOOLEAN ngcIsOne(number a, const coeffs r)
Definition gnumpc.cc:313
static long ngcInt(number &i, const coeffs r)
Definition gnumpc.cc:61
static BOOLEAN ngcEqual(number a, number b, const coeffs r)
Definition gnumpc.cc:301
#define assume(x)
Definition mod2.h:389
#define SHORT_REAL_LENGTH
Definition numbers.h:57
#define omStrDup(s)
#define omAlloc0(size)
#define NULL
Definition omList.c:12

◆ ngcSetChar()

void ngcSetChar ( const coeffs r)

Definition at line 697 of file gnumpc.cc.

698{
699 setGMPFloatDigits(r->float_len, r->float_len2);
700}
void setGMPFloatDigits(size_t digits, size_t rest)
Set size of mantissa digits - the number of output digits (basis 10) the size of mantissa consists of...