TaPAS  0.2
Functions
genepi-util.h File Reference

Generic operations on GENEPI sets. More...

#include <genepi/genepi.h>
#include <genepi/genepi-util-inline.h>

Go to the source code of this file.

Functions

genepi_setgenepi_set_imply (genepi_solver *solver, genepi_set *S1, genepi_set *S2)
 Computes $\overline{S1} \cup S2$.
 
genepi_setgenepi_set_equiv (genepi_solver *solver, genepi_set *S1, genepi_set *S2)
 Computes $\overline{S1}\cap\overline{S2} \cup S1\cap S2$.
 
genepi_setgenepi_set_if_then_else (genepi_solver *solver, genepi_set *i, genepi_set *t, genepi_set *e)
 Computes $i \cap t \cup \overline{i} \cap e$.
 
genepi_setgenepi_set_linear_transform (genepi_solver *solver, int n, int *alpha, int c, genepi_set **X)
 Computes $\{ z \mid \exists x_{i}\in X[i]\mbox{for i =} 1\dots n, z = \Sigma_{i=1}^n \alpha[i].x_i + c \}$.
 
static genepi_setgenepi_set_aX_plus_bY (genepi_solver *solver, int a, genepi_set *X, int b, genepi_set *Y)
 Computes $\{ z \mid \exists x \in X, \exists x \in Y, z = a.x+b.y \}$.
 
static genepi_setgenepi_set_add (genepi_solver *solver, genepi_set *X, genepi_set *Y)
 Computes $\{ z \mid \exists x \in X, \exists x \in Y, z = x+y \}$.
 
genepi_setgenepi_set_add_constant (genepi_solver *solver, int a, genepi_set *X, int *c, int cden)
 Computes $\{ z \mid \exists x \in X, cden . z[i] = cden.a.x[i] + c[i] \}$.
 
static genepi_setgenepi_set_sub (genepi_solver *solver, genepi_set *X, genepi_set *Y)
 Computes $\{ z \mid \exists x \in X, \exists x \in Y, z = x-y \}$.
 
static genepi_setgenepi_set_scale (genepi_solver *solver, int s, genepi_set *X)
 Computes $\{ s.x \mid s\in {\cal Z} \wedge x \in X \}$.
 
genepi_setgenepi_set_mul_vector (genepi_solver *solver, genepi_set *X, int width, const int *vector, int den)
 Given a set X of scalar values and a vector/den, computes the set $\{ \vec{z} \mid \exists x \in X den.\vec{z} = x.\vec{vector} \}$.
 
static genepi_setgenepi_set_neg (genepi_solver *solver, genepi_set *X)
 Computes $\{ -x \mid x \in X \}$.
 
genepi_setgenepi_set_cartesian_product (genepi_solver *solver, genepi_set *X, genepi_set *Y)
 Computes $X\times Y$.
 
genepi_setgenepi_set_singleton (genepi_solver *solver, int width, const int *vector, int den)
 Computes $\{ (vector[0]/den,\dots,vector[width-1]/den)\}$.
 
genepi_setgenepi_set_delta (genepi_solver *solver, genepi_set *X, genepi_set *Y)
 Computes $X \setminus Y \cup Y \setminus X $.
 
genepi_setgenepi_set_diff (genepi_solver *solver, genepi_set *X, genepi_set *Y)
 Computes $X \setminus Y$.
 
genepi_setgenepi_set_interleave (genepi_solver *solver, int nb_X, genepi_set **X)
 Computes a genepi_set encoding the interleaving of columns of X[i]s.
 
genepi_setgenepi_set_instable (genepi_solver *solver, genepi_set *X)
 Computes $\{ (x_1,x_1+x_2,x_2) \in X\times (X+X)\times X | x_1+x_2\not\in X $.
 
genepi_setgenepi_set_monoid (genepi_solver *solver, genepi_set *X)
 Computes $X^*$.
 

Detailed Description

Generic operations on GENEPI sets.

Definition in file genepi-util.h.