Loading...
Searching...
No Matches
cf_util.cc File Reference

miscellaneous functions, not necessarily related to canonical forms. More...

`#include "globaldefs.h"`
`#include "config.h"`
`#include "cf_util.h"`
`#include <stdio.h>`
`#include <stdlib.h>`

Go to the source code of this file.

## Functions

int | ipower (int b, int m)
| int ipower ( int b, int m )
int | ilog2 (int v)
int | igcd (int a, int b)
void | factoryError_intern (const char *s)

## Variables

VAR void(* | factoryError )(const char *s) = factoryError_intern

## Detailed Description

miscellaneous functions, not necessarily related to canonical forms.

Used by: fac_cantzass.cc, gfops.cc

Definition in file cf_util.cc.

## Function Documentation

## factoryError_intern()

void factoryError_intern | ( | const char * | s | ) |

Definition at line 75 of file cf_util.cc.

{
fputs(s,stderr);
abort();
}
s
const CanonicalForm int s
Definition facAbsFact.cc:51

## igcd()

int igcd | ( | int | a,
|  | int | b )

Definition at line 56 of file cf_util.cc.

{
if ( a < 0 ) a = -a;
if ( b < 0 ) b = -b;
int c;
while ( b != 0 )
{
c = a % b;
a = b;
b = c;
}
return a;
}
b
CanonicalForm b
Definition cfModGcd.cc:4111

## ilog2()

int ilog2 | ( | int | v | ) |

Definition at line 42 of file cf_util.cc.

{
const unsigned int b[] = {0x2, 0xC, 0xF0, 0xFF00, 0xFFFF0000};
const unsigned int S[] = {1, 2, 4, 8, 16};
unsigned int r = 0; // result of log2(v) will go here
if (v & b[4]) { v >>= S[4]; r |= S[4]; }
if (v & b[3]) { v >>= S[3]; r |= S[3]; }
if (v & b[2]) { v >>= S[2]; r |= S[2]; }
if (v & b[1]) { v >>= S[1]; r |= S[1]; }
if (v & b[0]) { v >>= S[0]; r |= S[0]; }
return (int)r;
}
v
const Variable & v
< [in] a sqrfree bivariate poly
Definition facBivar.h:39

## ipower()

int ipower | ( | int | b,
|  | int | m )

int ipower ( int b, int m )

ipower() - calculate b^m in standard integer arithmetic.

Note: Beware of overflows.

Definition at line 27 of file cf_util.cc.

{
int prod = 1;
while ( m != 0 )
{
if ( m % 2 != 0 )
prod *= b;
m /= 2;
if ( m != 0 )
b *= b;
}
return prod;
}
m
int m
Definition cfEzgcd.cc:128
prod
fq_nmod_poly_t prod
Definition facHensel.cc:100

## Variable Documentation

## factoryError

VAR void(* factoryError) (const char *s) | ( | const char * | s | ) | = factoryError_intern

Definition at line 80 of file cf_util.cc.