polylib 5.22.8
ext_ehrhart.c File Reference
#include <polylib/polylib.h>
#include <stdlib.h>

Go to the source code of this file.

Classes

struct  _Polyhedron_union
 

Macros

#define WS   200
 

Typedefs

typedef struct _Polyhedron_union Polyhedron_union
 

Functions

static int ppcm1 (int a, int b)
 
MatrixCalcBase (Matrix *R)
 
static void Soustraire_ligne (Matrix *R, int l1, int l2, int piv)
 
static int existepivot (Matrix *R, int l)
 
static void swap_line (Matrix *R, int l1, int l2)
 
int pgcd1 (int a, int b)
 
void new_eadd (evalue *e1, evalue *res)
 
MatrixReduce_Matrix (Matrix *Mat)
 
void Scalar_product (Value *p1, Value *p2, unsigned length, Value *r)
 
MatrixOrthogonal_Base (Matrix *Mat)
 
void Remove_Element (Enumeration *en, Enumeration **re, Enumeration *prev)
 
void Remove_RedundantDomains (Enumeration **Ures)
 
int IncludeInRes (Polyhedron *p, Enumeration *e, unsigned MR)
 
PolyhedronDMUnion (Enumeration *en, unsigned MR)
 
void AffConstraints (Polyhedron *Poldisj)
 
int Degenerate (Enumeration *en)
 
EnumerationDomain_Enumerate (Polyhedron *D, Polyhedron *C, unsigned MAXRAYS, const char **pn)
 
EnumerationPolyhedron_Image_Enumerate (Polyhedron *D, Polyhedron *C, Matrix *T, unsigned MAXRAYS, const char **par_name)
 

Macro Definition Documentation

◆ WS

#define WS   200

Definition at line 3 of file ext_ehrhart.c.

Typedef Documentation

◆ Polyhedron_union

Function Documentation

◆ AffConstraints()

void AffConstraints ( Polyhedron Poldisj)

◆ CalcBase()

◆ Degenerate()

int Degenerate ( Enumeration en)

Definition at line 659 of file ext_ehrhart.c.

References _evalue::d, _enumeration::EP, value_mone_p, value_notzero_p, and _evalue::x.

Referenced by Domain_Enumerate().

◆ DMUnion()

Polyhedron * DMUnion ( Enumeration en,
unsigned  MR 
)

Definition at line 640 of file ext_ehrhart.c.

References DomainUnion(), _enumeration::next, and _enumeration::ValidityDomain.

Referenced by Domain_Enumerate().

◆ Domain_Enumerate()

◆ existepivot()

static int existepivot ( Matrix R,
int  l 
)
static

Definition at line 198 of file ext_ehrhart.c.

References matrix::NbRows, matrix::p, value_notzero_p, and value_zero_p.

Referenced by CalcBase().

◆ IncludeInRes()

int IncludeInRes ( Polyhedron p,
Enumeration e,
unsigned  MR 
)

Definition at line 630 of file ext_ehrhart.c.

References _enumeration::next, PolyhedronIncludes(), and _enumeration::ValidityDomain.

Referenced by Domain_Enumerate().

◆ new_eadd()

◆ Orthogonal_Base()

◆ pgcd1()

int pgcd1 ( int  a,
int  b 
)

Definition at line 230 of file ext_ehrhart.c.

Referenced by ppcm1().

◆ Polyhedron_Image_Enumerate()

◆ ppcm1()

int ppcm1 ( int  a,
int  b 
)
static

Definition at line 528 of file ext_ehrhart.c.

References pgcd1().

Referenced by new_eadd().

◆ Reduce_Matrix()

Matrix * Reduce_Matrix ( Matrix Mat)

Definition at line 494 of file ext_ehrhart.c.

References matrix::NbColumns, matrix::NbRows, matrix::p, and value_clear.

Referenced by Polyhedron_Image_Enumerate().

◆ Remove_Element()

void Remove_Element ( Enumeration en,
Enumeration **  re,
Enumeration prev 
)

Definition at line 598 of file ext_ehrhart.c.

References _enumeration::next.

Referenced by Remove_RedundantDomains().

◆ Remove_RedundantDomains()

void Remove_RedundantDomains ( Enumeration **  Ures)

◆ Scalar_product()

void Scalar_product ( Value *  p1,
Value *  p2,
unsigned  length,
Value *  r 
)

Definition at line 512 of file ext_ehrhart.c.

References value_addmul, and value_set_si.

Referenced by Orthogonal_Base(), and Polyhedron_Image_Enumerate().

◆ Soustraire_ligne()

static void Soustraire_ligne ( Matrix R,
int  l1,
int  l2,
int  piv 
)
static

◆ swap_line()

static void swap_line ( Matrix R,
int  l1,
int  l2 
)
static

Definition at line 218 of file ext_ehrhart.c.

References matrix::NbColumns, matrix::p, and value_assign.

Referenced by CalcBase().