[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Linear constraints of level 0 (`ap_lincons0.h')

datatype: ap_constyp_t
 
typedef enum ap_constyp_t {
  AP_CONS_EQ,    /* equality constraint */
  AP_CONS_SUPEQ, /* >= constraint */
  AP_CONS_SUP,   /* > constraint */
  AP_CONS_EQMOD, /* congruence equality constraint */
  AP_CONS_DISEQ  /* disequality constraint */
} ap_constyp_t;
Datatype for type of constraints.

datatype: ap_lincons0_t
 
typedef struct ap_lincons0_t {
  ap_linexpr0_t* linexpr0;   /* expression */
  ap_constyp_t constyp;      /* type of constraint */
  ap_scalar_t* scalar;       /* maybe NULL.

				For EQMOD constraint, indicates the
				modulo */
} ap_lincons0_t;
Datatype for constraints.

Constraints are meant to be manipulated freely via their components. Creating the constraint [1,2]x0 + 5/2x1 >=0 and then freeing it can be done with
 
ap_lincons0_t cons = ap_lincons0_make(AP_CONS_SUPEQ,
				      ap_linexpr0_alloc(AP_LINEXPR_SPARSE,2),
                                      NULL);
ap_linexpr0_set_list(cons.linexpr0,
		     AP_COEFF_I_INT, 1,2, 0,
		     AP_COEFF_S_FRAC, 5,2, 1,
		     AP_END);
ap_lincons0_clear(&cons);

datatype: ap_lincons0_array_t
 
typedef struct ap_lincons0_array_t {
  ap_lincons0_t* p;
  size_t size;
} ap_lincons0_array_t;
Datatype for arrays of constraints.

Arrays are accessed directly, for example by writing array->p[i] (of type ap_lincons0_t), array->p[i].constyp and array->p[i].linexpr0.

One can assign a constraint to the index index by writing: array->p[index] = ap_lincons0_make(constyp,expr).

Allocating linear constraints of level 0  
Tests on linear constraints of level 0  
Arrays of linear constraints of level 0  
Change of dimensions and permutations of linear constraints of level 0  



This document was generated on September, 10 2009 using texi2html