 |
My Project
UNKNOWN_GIT_VERSION
|
Go to the source code of this file.
|
number | scalarproduct (bigintmat *a, bigintmat *b) |
|
bigintmat * | minkowksi (bigintmat **elementarray, int size_elementarray, number *poly, int deg, coeffs coef, int precision) |
|
bool | IsReal (number a, coeffs coef) |
|
bool | ImagGreaterZero (number a, coeffs coef) |
|
number | squareroot (number a, coeffs coef, int iteration) |
|
◆ ImagGreaterZero()
bool ImagGreaterZero |
( |
number |
a, |
|
|
coeffs |
coef |
|
) |
| |
◆ IsReal()
bool IsReal |
( |
number |
a, |
|
|
coeffs |
coef |
|
) |
| |
◆ minkowksi()
bigintmat* minkowksi |
( |
bigintmat ** |
elementarray, |
|
|
int |
size_elementarray, |
|
|
number * |
poly, |
|
|
int |
deg, |
|
|
coeffs |
coef, |
|
|
int |
precision |
|
) |
| |
Definition at line 948 of file lattice.cc.
952 if(elementarray ==
NULL || poly ==
NULL || coef != elementarray[0]->basecoeffs()){
957 for(
int i=1;
i<size_elementarray;
i++){
958 if(coef != elementarray[0]->basecoeffs()){
967 WerrorS(
"Ground field not implemented!\n");
972 WerrorS(
"degree of polynomial to small\n");
985 char* n[] = {(
char*)
"i"};
986 ring newring =
rDefault(coef, 1, n);
991 rootcont->
solver( precision+12);
993 if(number_roots != deg){
994 WerrorS(
"something went wrong: \n\tnot all roots found\n");
1000 paramComp.
par_name=(
const char*)
"i";
1004 number* roots =
new number[deg+1];
1005 number* complexroots =
new number[deg+1];
1008 for(
int j=0;
j<deg;
j++){
1026 for(
int j=0;
j<r2;
j++){
1030 delete complexroots;
1033 for(
int i=0;
i<size_elementarray;
i++){
1039 for(
int i=1;
i<= r1;
i++){
1041 for(
int l=0;
l< deg;
l++){
1042 for(
int j=0;
j<size_elementarray;
j++){
1057 for(
int i=1;
i<= r2;
i++){
1059 for(
int l=0;
l< deg;
l++){
1060 for(
int j=0;
j<size_elementarray;
j++){
1068 for(
int j=1;
j<=size_elementarray;
j++){
1076 for(
int i=0;
i<size_elementarray;
i++){
1080 for(
int i=0;
i<r1+r2;
i++){
1089 paramComp.
par_name=(
const char*)
"i";
◆ scalarproduct()
Definition at line 915 of file lattice.cc.
917 Werror(
"a->cols()!=1 in scalarproduct(a,b)\n");
921 Werror(
"b->cols()!=1 in scalarproduct(a,b)\n");
924 if(a->
rows()!=
b->rows()) {
925 Werror(
"b->cols()!=1 in scalarproduct(a,b)\n");
929 Werror(
"a->basecoeffs()!=b->basecoeffs() in scalarproduct(a,b)\n");
935 for(
int i = 1;
i <=
b->rows();
i++){
◆ squareroot()
number squareroot |
( |
number |
a, |
|
|
coeffs |
coef, |
|
|
int |
iteration |
|
) |
| |
static int si_min(const int a, const int b)
short float_len2
additional char-flags, rInit
static FORCE_INLINE BOOLEAN nCoeff_is_R(const coeffs r)
static FORCE_INLINE BOOLEAN nCoeff_is_Z(const coeffs r)
void rChangeCurrRing(ring r)
static FORCE_INLINE void n_InpMult(number &a, number b, const coeffs r)
multiplication of 'a' and 'b'; replacement of 'a' by the product a*b
@ n_long_C
complex floating point (GMP) numbers
bool solver(const int polishmode=PM_NONE)
number view(int i, int j) const
view an entry an entry. NOTE: starts at [1,1]
static FORCE_INLINE void n_Delete(number *p, const coeffs r)
delete 'p'
coeffs basecoeffs() const
coeffs nInitChar(n_coeffType t, void *parameter)
one-time initialisations for new coeffs in case of an error return NULL
static FORCE_INLINE BOOLEAN n_IsZero(number n, const coeffs r)
TRUE iff 'n' represents the zero element.
static FORCE_INLINE BOOLEAN nCoeff_is_long_C(const coeffs r)
@ n_long_R
real floating point (GMP) numbers
ring rDefault(const coeffs cf, int N, char **n, int ord_size, rRingOrder_t *ord, int *block0, int *block1, int **wvhdl, unsigned long bitmask)
static FORCE_INLINE BOOLEAN nCoeff_is_Q(const coeffs r)
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
static FORCE_INLINE number n_Add(number a, number b, const coeffs r)
return the sum of 'a' and 'b', i.e., a+b
static FORCE_INLINE void n_InpAdd(number &a, number b, const coeffs r)
addition of 'a' and 'b'; replacement of 'a' by the sum a+b
bool ImagGreaterZero(number a, coeffs coef)
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...
void set(int i, int j, number n, const coeffs C=NULL)
replace an entry with a copy (delete old + copy new!). NOTE: starts at [1,1]
gmp_complex * getRoot(const int i)
static FORCE_INLINE number n_RePart(number i, const coeffs cf)
The main handler for Singular numbers which are suitable for Singular polynomials.
static FORCE_INLINE BOOLEAN nCoeff_is_long_R(const coeffs r)
static FORCE_INLINE number n_Mult(number a, number b, const coeffs r)
return the product of 'a' and 'b', i.e., a*b
static FORCE_INLINE number n_Init(long i, const coeffs r)
a number representing i in the given coeff field/ring r
short float_len
additional char-flags, rInit
bool IsReal(number a, coeffs coef)
void fillContainer(number *_coeffs, number *_ievpoint, const int _var, const int _tdg, const rootType _rt, const int _anz)
void rDelete(ring r)
unconditionally deletes fields in r
static FORCE_INLINE number n_ImPart(number i, const coeffs cf)
void mult(unsigned long *result, unsigned long *a, unsigned long *b, unsigned long p, int dega, int degb)
void Werror(const char *fmt,...)
void rawset(int i, number n, const coeffs C=NULL)
replace an entry with the given number n (only delete old). NOTE: starts at [0]. Should be named set_...
static FORCE_INLINE BOOLEAN n_GreaterZero(number n, const coeffs r)
ordered fields: TRUE iff 'n' is positive; in Z/pZ: TRUE iff 0 < m <= roundedBelow(p/2),...
static FORCE_INLINE number n_Copy(number n, const coeffs r)
return a copy of 'n'
void WerrorS(const char *s)
const char * par_name
parameter name
number squareroot(number a, coeffs coef, int prec)
static FORCE_INLINE number n_Div(number a, number b, const coeffs r)
return the quotient of 'a' and 'b', i.e., a/b; raises an error if 'b' is not invertible in r exceptio...
bigintmat * bimChangeCoeff(bigintmat *a, coeffs cnew)
Liefert Kopier von Matrix a zurück, mit coeffs cnew statt den ursprünglichen.
int comp(const CanonicalForm &A, const CanonicalForm &B)
compare polynomials
complex root finder for univariate polynomials based on laguers algorithm
static void view(const intvec *v)