PIPS
|
This header provides functions to test whether a constraint system is feasible, using the simplex method. More...
#include <stdlib.h>
#include <stdio.h>
#include <stdint.h>
#include <strings.h>
#include <limits.h>
#include "boolean.h"
#include "assert.h"
#include "vecteur.h"
#include "contrainte.h"
#include "sc.h"
Go to the source code of this file.
Data Structures | |
struct | vec_s |
Type of vectors. More... | |
struct | constr_s |
Type of linear constraint. More... | |
struct | table_s |
Type of simplex tableau. More... | |
struct | vartbl_s |
Type of variable tables. More... | |
Macros | |
#define | DEBUG(code) {} |
Functions | |
static void * | safe_malloc (size_t size) |
static bool | sc_get_feasibility (Psysteme sys, int ofl_ctrl) |
Main Function. More... | |
Variables | |
Each variable is represented by a non-negative, integer value. | |
#define | VAR_NULL (-1) |
A special value used to represent the absence of variable. More... | |
#define | VAR_MAXNB (1971) |
Maximum number of variables. More... | |
#define | var_fprint(stream, var) (fprintf(stream, "x%d", var)) |
Output var on stdio stream stream. More... | |
#define | var_print(var) (var_fprint(stdout, var)) |
Output var on stdout . More... | |
typedef int | var_t |
Type of variables. More... | |
Vectors | |
A vector is a structure to map each variable to a rational value. | |
#define | VEC_NULL NULL |
The empty vector. More... | |
#define | vec_init(vec) (vec = VEC_NULL) |
Set vec to be the empty vector. More... | |
#define | vec_print(vec) (vec_fprint(stdout, vec)) |
Output vec on stdout . More... | |
typedef struct vec_s | vec_s |
Type of vectors. More... | |
typedef struct vec_s * | vec_p |
static void | vec_clear (vec_p *pvec) |
Free the space occupied by pvec. More... | |
static void | vec_set (vec_p *pvec, vec_p vec) |
Copy vec into pvec. More... | |
static void | vec_append_atfirst (vec_p *pvec, var_t var, qval_t coeff) |
Add the element (var, @coeff) to pvec, in first position. More... | |
static void | vec_append (vec_p *pvec, var_t var, qval_t coeff) |
Add the element (var, coeff) to pvec. More... | |
static void | vec_get_coeff (qval_t coeff, vec_p vec, var_t var) |
Get the value associated to var in vec, and store it into coeff. More... | |
static void | vec_iadd (vec_p *pvec, vec_p vec) |
Set pvec to pvec + vec. More... | |
static void | vec_imul (vec_p *pvec, qval_t coeff) |
Set pvec to coeff times pvec. More... | |
static void | vec_iaddmul (vec_p *pvec, qval_t coeff, vec_p vec) |
Set pvec to pvec + coeff times vec. More... | |
static void | vec_ineg (vec_p vec) |
Set vec to -vec. More... | |
static int NOWUNUSED | vec_fprint (FILE *stream, vec_p vec) |
Output vec on stdio stream stream. More... | |
Linear Constraints | |
A linear constraint is either a linear equality (a1 x1 + ...
| |
#define | constr_get_coeff(coeff, constr, var) (vec_get_coeff(coeff, (constr)->vec, var)) |
Get the coefficient of var in constr, and store it into coeff. More... | |
#define | constr_print(constr) (constr_fprint(stdout, constr)) |
Output constr on stdout . More... | |
enum | constrrel_t { CONSTR_EQ , CONSTR_LE } |
Type of linear constraint relations. More... | |
typedef struct constr_s | constr_s |
Type of linear constraint. More... | |
typedef struct constr_s * | constr_p |
typedef constr_s | constr_t[1] |
Type of linear constraint. More... | |
static void | constr_init (constr_p constr) |
Initialize constr and set it to 0 = 0. More... | |
static void | constr_clear (constr_p constr) |
Free the space occupied by constr. More... | |
static void NOWUNUSED | constr_set (constr_p constr1, constr_p constr2) |
Copy constr2 into constr1. More... | |
static void | constr_iadd (constr_p constr1, constr_p constr2) |
Set constr1 to constr1 + constr2. More... | |
static void | constr_imul (constr_p constr, qval_t coeff) |
Set constr to coeff times constr. More... | |
static void | constr_iaddmul (constr_p constr1, qval_t coeff, constr_p constr2) |
Set constr1 to constr1 + coeff times constr2. More... | |
static void | constr_makepos (constr_p constr) |
Turn constr into an equivalent constraint whose constant term is non-negative. More... | |
static void | constr_apply_pivot (constr_p constr, var_t pivot_var, constr_p pivot_constr) |
Make pivot_var coefficient null in constr, using pivot_constr. More... | |
static int NOWUNUSED | constr_fprint (FILE *stream, constr_p constr) |
Output constr on stdio stream stream. More... | |
Simplex Tableau | |
A simplex tableau consists in a list of constraint, an objective function to minimize and its current value. Those data evolve when the simplex is running. | |
#define | table_get_nbvars(tbl) ((tbl)->nbvars) |
Number of variables in tbl. More... | |
#define | table_get_nbconstrs(tbl) ((tbl)->nbconstrs) |
Number of constraints in tbl. More... | |
#define | table_print(tbl) (table_fprint(stdout, tbl)) |
Output tbl on stdout . More... | |
typedef struct table_s | table_s |
Type of simplex tableau. More... | |
typedef struct table_s * | table_p |
typedef table_s | table_t[1] |
Type of simplex tableau. More... | |
static void | table_init (table_p tbl, int nbconstrs) |
Initialize tbl, with room for nbconstrs constraints. More... | |
static void | table_clear (table_p tbl) |
Free the space occupied by tbl. More... | |
static void | table_makepos (table_p tbl) |
Turn constraints into tbl into equivalent ones, whose constant term is non-negative. More... | |
static void | table_addsignvars (table_p tbl) |
Ensure that all variables in tbl are non-negative. More... | |
static void | table_addofsvars (table_p tbl) |
Ensure that all constraints in tbl are equalities. More... | |
static int NOWUNUSED | table_fprint (FILE *stream, table_p tbl) |
Output tbl on stdio stream stream. More... | |
static void | table_canonicalize (table_p tbl) |
Canonicalize tbl: ensure that all variables are non-negative, and all constraints are equalities whose constant term is non-negative. More... | |
static void | table_set_obj (table_p tbl) |
Initialize the objective function and value from constraints in tbl. More... | |
static void | table_addobjvars (table_p tbl) |
Add objective variables to each constraint of @tbl whose constant term is not zero. More... | |
static void | table_prepare (table_p tbl) |
Canonicalize tbl, set the objective and add objective variables. More... | |
static var_t | table_get_pivotvar (table_p tbl) |
Get the next pivot variable in @tbl. More... | |
static var_t | table_get_assocvar (table_p tbl, int row) |
Retrieve the variable associated with the row (i.e. More... | |
static int | table_get_pivotrow (table_p tbl, var_t var) |
static bool | table_get_pivot (table_p tbl, var_t *pvar, int *prow) |
Get the next pivot variable and row in @tbl, and store them in pvar and prow respectively. More... | |
static void | table_apply_pivot (table_p tbl, var_t var, int row) |
Apply pivot (var, row) in tbl. More... | |
static void | table_run_simplex (table_p tbl) |
Run simplex algorithm on @tbl. More... | |
static bool | table_get_feasibility (table_p tbl) |
Determine whether the constraint system described in tbl is feasible, using simplex method. More... | |
Datatype Conversion | |
Here are utility functions to convert Linear types ( In most of conversion functions, a variable table vartbl is passed, to help translating Linear named variables into indices. | |
#define | vartbl_clear(vartbl) |
Free the space occupied by vartbl. More... | |
typedef struct vartbl_s * | vartbl_p |
typedef vartbl_s | vartbl_t[1] |
Type of variable tables. More... | |
static void | vartbl_init (vartbl_p vartbl) |
Initialize @vartbl to an empty table. More... | |
static var_t | vartbl_find (vartbl_p vartbl, Variable name) |
Get the variable index associated to name, creating a new one if necessary. More... | |
static void | vec_set_vecteur (vartbl_t vartbl, vec_p *pvec, Pvecteur vec) |
Copy vec into pvec. More... | |
static void | constr_set_contrainte (vartbl_t vartbl, constr_p constr1, Pcontrainte constr2, bool is_ineq) |
Copy constr2 into constr1. More... | |
static void | table_init_set_systeme (table_p tbl, Psysteme sys) |
Initialize tbl from sys. More... | |
This header provides functions to test whether a constraint system is feasible, using the simplex method.
It can be used with any of the headers arith_fixprec.c
or arith_mulprec.c
, this in fixed- or multiple-precision.
Definition in file sc_simplex_feasibility.h.
#define constr_get_coeff | ( | coeff, | |
constr, | |||
var | |||
) | (vec_get_coeff(coeff, (constr)->vec, var)) |
Get the coefficient of var in constr, and store it into coeff.
Definition at line 415 of file sc_simplex_feasibility.h.
#define constr_print | ( | constr | ) | (constr_fprint(stdout, constr)) |
Output constr on stdout
.
Definition at line 504 of file sc_simplex_feasibility.h.
#define DEBUG | ( | code | ) | {} |
Definition at line 50 of file sc_simplex_feasibility.h.
#define table_get_nbconstrs | ( | tbl | ) | ((tbl)->nbconstrs) |
Number of constraints in tbl.
Definition at line 569 of file sc_simplex_feasibility.h.
#define table_get_nbvars | ( | tbl | ) | ((tbl)->nbvars) |
Number of variables in tbl.
Definition at line 564 of file sc_simplex_feasibility.h.
#define table_print | ( | tbl | ) | (table_fprint(stdout, tbl)) |
Output tbl on stdout
.
Definition at line 961 of file sc_simplex_feasibility.h.
#define var_fprint | ( | stream, | |
var | |||
) | (fprintf(stream, "x%d", var)) |
Output var on stdio stream stream.
Definition at line 90 of file sc_simplex_feasibility.h.
#define VAR_MAXNB (1971) |
Maximum number of variables.
Definition at line 85 of file sc_simplex_feasibility.h.
#define VAR_NULL (-1) |
A special value used to represent the absence of variable.
Definition at line 80 of file sc_simplex_feasibility.h.
#define var_print | ( | var | ) | (var_fprint(stdout, var)) |
Output var on stdout
.
Definition at line 95 of file sc_simplex_feasibility.h.
#define vartbl_clear | ( | vartbl | ) |
Free the space occupied by vartbl.
Definition at line 998 of file sc_simplex_feasibility.h.
#define vec_init | ( | vec | ) | (vec = VEC_NULL) |
Set vec to be the empty vector.
Definition at line 125 of file sc_simplex_feasibility.h.
#define VEC_NULL NULL |
The empty vector.
Definition at line 120 of file sc_simplex_feasibility.h.
#define vec_print | ( | vec | ) | (vec_fprint(stdout, vec)) |
Output vec on stdout
.
Definition at line 348 of file sc_simplex_feasibility.h.
typedef constr_s constr_t[1] |
Type of linear constraint.
Definition at line 381 of file sc_simplex_feasibility.h.
Type of simplex tableau.
The objective function and the associated value are stored into a constraint obj
, other constraints are in the constraint table constr
.
typedef table_s table_t[1] |
Type of simplex tableau.
Definition at line 531 of file sc_simplex_feasibility.h.
Type of variables.
Definition at line 75 of file sc_simplex_feasibility.h.
typedef vartbl_s vartbl_t[1] |
Type of variable tables.
Definition at line 985 of file sc_simplex_feasibility.h.
Type of vectors.
Typically, most of values are equal to zero, so a sparse, linked-list structure is used. Internally, variables are ordered by decreasing order.
enum constrrel_t |
Type of linear constraint relations.
Enumerator | |
---|---|
CONSTR_EQ | equality |
CONSTR_LE | inequality |
Definition at line 363 of file sc_simplex_feasibility.h.
Make pivot_var coefficient null in constr, using pivot_constr.
pivot_constr must be an equality.
Definition at line 474 of file sc_simplex_feasibility.h.
References constr_get_coeff, constr_iaddmul(), qval_clear, qval_init, and qval_neg.
Referenced by table_apply_pivot().
|
static |
Free the space occupied by constr.
Definition at line 396 of file sc_simplex_feasibility.h.
References constr_s::cst, qval_clear, constr_s::vec, and vec_clear().
Referenced by table_clear().
Output constr on stdio stream stream.
Definition at line 488 of file sc_simplex_feasibility.h.
References CONSTR_EQ, constr_s::cst, fprintf(), qval_fprint, constr_s::rel, constr_s::vec, and vec_fprint().
Referenced by table_fprint().
Set constr1 to constr1 + constr2.
constr2 must be an equality.
Definition at line 422 of file sc_simplex_feasibility.h.
References assert, CONSTR_EQ, constr_s::cst, qval_add, constr_s::rel, constr_s::vec, and vec_iadd().
Referenced by table_set_obj().
Set constr1 to constr1 + coeff times constr2.
constr2 must be an equality or coeff a non-negative value.
Definition at line 444 of file sc_simplex_feasibility.h.
References constr_s::cst, qval_add, qval_clear, qval_equal_i, qval_init, qval_mul, constr_s::vec, and vec_iaddmul().
Referenced by constr_apply_pivot().
Set constr to coeff times constr.
constr must be an equality or coeff a non-negative value.
Definition at line 434 of file sc_simplex_feasibility.h.
References constr_s::cst, qval_mul, constr_s::vec, and vec_imul().
Referenced by table_apply_pivot().
|
static |
Initialize constr and set it to 0 = 0.
Definition at line 386 of file sc_simplex_feasibility.h.
References CONSTR_EQ, constr_s::cst, qval_init, constr_s::rel, constr_s::vec, and vec_init.
Referenced by table_init().
|
static |
Turn constr into an equivalent constraint whose constant term is non-negative.
constr must be an equality.
Definition at line 461 of file sc_simplex_feasibility.h.
References assert, CONSTR_EQ, constr_s::cst, qval_cmp_i, qval_neg, constr_s::rel, constr_s::vec, and vec_ineg().
Referenced by table_makepos().
Copy constr2 into constr1.
Definition at line 405 of file sc_simplex_feasibility.h.
References constr_s::cst, qval_set, constr_s::rel, constr_s::vec, and vec_set().
|
static |
Copy constr2 into constr1.
Definition at line 1037 of file sc_simplex_feasibility.h.
References CONSTR_EQ, CONSTR_LE, constr_s::cst, qval_set_i, constr_s::rel, Svecteur::succ, TCST, Svecteur::val, Svecteur::var, constr_s::vec, vec_set_vecteur(), and Scontrainte::vecteur.
Referenced by table_init_set_systeme().
|
static |
Definition at line 56 of file sc_simplex_feasibility.h.
References abort, fprintf(), and malloc().
Referenced by sc_get_feasibility(), table_init(), vec_append_atfirst(), vec_iadd(), vec_iaddmul(), and vec_set().
Main Function.
Determine whether a system sys of equations and inequations is feasible. Parameter ofl_ctrl indicates whether an overflow control is performed (possible values: NO_OFL_CTRL
, FWD_OFL_CTRL
).
Definition at line 1085 of file sc_simplex_feasibility.h.
References CATCH, fprintf(), free(), FWD_OFL_CTRL, overflow_error, RETHROW, safe_malloc(), simplex_arithmetic_error, table_clear(), table_get_feasibility(), table_init_set_systeme(), timeout_error, and UNCATCH.
|
static |
Add objective variables to each constraint of @tbl whose constant term is not zero.
Definition at line 728 of file sc_simplex_feasibility.h.
References assert, table_s::constrs, constr_s::cst, table_s::nbconstrs, table_s::nbvars, qval_clear, qval_cmp_i, qval_equal_i, qval_init, qval_set_i, constr_s::vec, and vec_append_atfirst().
Referenced by table_prepare().
|
static |
Ensure that all constraints in tbl are equalities.
A new offset variable is introduced into inequalities to turn them in equalities. E.g., inequality a1 x1 + ... + an xn <= b becomes: a1 x1 + ... + an xn + y = b.
Definition at line 666 of file sc_simplex_feasibility.h.
References CONSTR_EQ, CONSTR_LE, table_s::constrs, table_s::nbconstrs, table_s::nbvars, qval_clear, qval_init, qval_set_i, constr_s::rel, constr_s::vec, and vec_append_atfirst().
Referenced by table_canonicalize().
|
static |
Ensure that all variables in tbl are non-negative.
Each occurrence of a unknown-sign variable a x is turned into a x+ - a x-, where @x+ and @x- are new, non-negative variables. Each occurrence of a negative variable a x is turned into -a x', where x' is a new, non-negative variable. We try to do this only when necessary, to limit the amount of newly created variables.
Definition at line 593 of file sc_simplex_feasibility.h.
References assert, vec_s::coeff, CONSTR_EQ, table_s::constrs, constr_s::cst, table_s::nbconstrs, table_s::nbvars, qval_clear, qval_cmp_i, qval_init, qval_neg, constr_s::rel, vec_s::succ, value_sign, vec_s::var, VAR_MAXNB, VAR_NULL, constr_s::vec, vec_append_atfirst(), and VEC_NULL.
Referenced by table_canonicalize().
Apply pivot (var, row) in tbl.
Definition at line 865 of file sc_simplex_feasibility.h.
References constr_apply_pivot(), constr_get_coeff, constr_imul(), table_s::constrs, table_s::nbconstrs, table_s::obj, qval_clear, qval_init, and qval_inv.
Referenced by table_run_simplex().
|
static |
Canonicalize tbl: ensure that all variables are non-negative, and all constraints are equalities whose constant term is non-negative.
Definition at line 688 of file sc_simplex_feasibility.h.
References DEBUG, fprintf(), table_addofsvars(), table_addsignvars(), table_fprint(), and table_makepos().
Referenced by table_prepare().
|
static |
Free the space occupied by tbl.
Definition at line 551 of file sc_simplex_feasibility.h.
References constr_clear(), table_s::constrs, free(), table_s::nbconstrs, and table_s::obj.
Referenced by sc_get_feasibility().
Output tbl on stdio stream stream.
Definition at line 930 of file sc_simplex_feasibility.h.
References constr_fprint(), table_s::constrs, fprintf(), table_s::nbconstrs, table_s::obj, table_get_assocvar(), and var_fprint.
Referenced by table_canonicalize(), table_prepare(), and table_run_simplex().
Retrieve the variable associated with the row (i.e.
constraint) row in tbl.
Definition at line 781 of file sc_simplex_feasibility.h.
References vec_s::coeff, constr_get_coeff, table_s::constrs, table_s::nbconstrs, qval_clear, qval_equal_i, qval_init, vec_s::succ, vec_s::var, VAR_NULL, constr_s::vec, and VEC_NULL.
Referenced by table_fprint(), and table_get_pivotrow().
Determine whether the constraint system described in tbl is feasible, using simplex method.
Definition at line 920 of file sc_simplex_feasibility.h.
References table_s::obj, qval_equal_i, table_prepare(), and table_run_simplex().
Referenced by sc_get_feasibility().
Get the next pivot variable and row in @tbl, and store them in pvar and prow respectively.
Definition at line 855 of file sc_simplex_feasibility.h.
References table_get_pivotrow(), and table_get_pivotvar().
Referenced by table_run_simplex().
Definition at line 818 of file sc_simplex_feasibility.h.
References assert, constr_get_coeff, table_s::constrs, constr_s::cst, table_s::nbconstrs, qval_clear, qval_cmp, qval_cmp_i, qval_div, qval_init, qval_set, table_get_assocvar(), and VAR_NULL.
Referenced by table_get_pivot().
Get the next pivot variable in @tbl.
Bland's rule is used to ensure termination: pivot variable is the lowest-numbered variable whose objective coefficient is negative.
Definition at line 765 of file sc_simplex_feasibility.h.
References vec_s::coeff, table_s::obj, qval_cmp_i, vec_s::succ, vec_s::var, VAR_NULL, and VEC_NULL.
Referenced by table_get_pivot().
Initialize tbl, with room for nbconstrs constraints.
Definition at line 536 of file sc_simplex_feasibility.h.
References constr_init(), table_s::constrs, table_s::nbconstrs, table_s::nbvars, table_s::obj, and safe_malloc().
Referenced by table_init_set_systeme().
Initialize tbl from sys.
Definition at line 1054 of file sc_simplex_feasibility.h.
References constr_set_contrainte(), table_s::constrs, Ssysteme::egalites, Ssysteme::inegalites, Ssysteme::nb_eq, Ssysteme::nb_ineq, table_s::nbvars, Scontrainte::succ, table_init(), vartbl_clear, and vartbl_init().
Referenced by sc_get_feasibility().
|
static |
Turn constraints into tbl into equivalent ones, whose constant term is non-negative.
All constraints must be equalities.
Definition at line 576 of file sc_simplex_feasibility.h.
References constr_makepos(), table_s::constrs, and table_s::nbconstrs.
Referenced by table_canonicalize().
|
static |
Canonicalize tbl, set the objective and add objective variables.
Definition at line 748 of file sc_simplex_feasibility.h.
References DEBUG, fprintf(), table_addobjvars(), table_canonicalize(), table_fprint(), and table_set_obj().
Referenced by table_get_feasibility().
|
static |
Run simplex algorithm on @tbl.
Definition at line 888 of file sc_simplex_feasibility.h.
References DEBUG, exit, fprintf(), table_apply_pivot(), table_fprint(), table_get_pivot(), and var_fprint.
Referenced by table_get_feasibility().
|
static |
Initialize the objective function and value from constraints in tbl.
Definition at line 714 of file sc_simplex_feasibility.h.
References constr_iadd(), table_s::constrs, table_s::nbconstrs, and table_s::obj.
Referenced by table_prepare().
Get the variable index associated to name, creating a new one if necessary.
Definition at line 1004 of file sc_simplex_feasibility.h.
References vartbl_s::names, and vartbl_s::nbvars.
Referenced by vec_set_vecteur().
|
static |
Initialize @vartbl to an empty table.
Definition at line 990 of file sc_simplex_feasibility.h.
References vartbl_s::nbvars.
Referenced by table_init_set_systeme().
Add the element (var, coeff) to pvec.
Definition at line 182 of file sc_simplex_feasibility.h.
References vec_s::coeff, qval_equal_i, vec_s::succ, vec_s::var, vec_append_atfirst(), and VEC_NULL.
Referenced by vec_set_vecteur().
Add the element (var, @coeff) to pvec, in first position.
var must be greater to any variable in pvec s.t. pvec remains consistent.
Definition at line 169 of file sc_simplex_feasibility.h.
References assert, vec_s::coeff, qval_init, qval_set, safe_malloc(), vec_s::succ, vec_s::var, and VEC_NULL.
Referenced by table_addobjvars(), table_addofsvars(), table_addsignvars(), and vec_append().
|
static |
Free the space occupied by pvec.
Definition at line 130 of file sc_simplex_feasibility.h.
References free(), qval_clear, vec_s::succ, and VEC_NULL.
Referenced by constr_clear(), vec_imul(), vec_set(), and vec_set_vecteur().
Output vec on stdio stream stream.
Definition at line 318 of file sc_simplex_feasibility.h.
References vec_s::coeff, fprintf(), qval_cmp_i, qval_fprint, qval_neg, vec_s::succ, vec_s::var, var_fprint, and VEC_NULL.
Referenced by constr_fprint().
Get the value associated to var in vec, and store it into coeff.
Definition at line 195 of file sc_simplex_feasibility.h.
References vec_s::coeff, qval_set, qval_set_i, vec_s::succ, vec_s::var, and VEC_NULL.
Set pvec to pvec + vec.
Definition at line 211 of file sc_simplex_feasibility.h.
References assert, vec_s::coeff, free(), qval_add, qval_clear, qval_equal_i, qval_init, qval_set, safe_malloc(), vec_s::succ, vec_s::var, and VEC_NULL.
Referenced by constr_iadd().
Set pvec to pvec + coeff times vec.
Definition at line 263 of file sc_simplex_feasibility.h.
References assert, vec_s::coeff, free(), qval_add, qval_clear, qval_equal_i, qval_init, qval_mul, safe_malloc(), vec_s::succ, vec_s::var, and VEC_NULL.
Referenced by constr_iaddmul().
Set pvec to coeff times pvec.
Definition at line 247 of file sc_simplex_feasibility.h.
References vec_s::coeff, qval_equal_i, qval_mul, vec_s::succ, vec_clear(), and VEC_NULL.
Referenced by constr_imul().
|
static |
Set vec to -vec.
Definition at line 308 of file sc_simplex_feasibility.h.
References vec_s::coeff, qval_neg, vec_s::succ, and VEC_NULL.
Referenced by constr_makepos().
Copy vec into pvec.
Definition at line 143 of file sc_simplex_feasibility.h.
References vec_s::coeff, qval_init, qval_set, safe_malloc(), vec_s::succ, vec_s::var, vec_clear(), and VEC_NULL.
Referenced by constr_set().
Copy vec into pvec.
Definition at line 1019 of file sc_simplex_feasibility.h.
References qval_clear, qval_init, qval_set_i, Svecteur::succ, TCST, Svecteur::val, Svecteur::var, vartbl_find(), vec_append(), and vec_clear().
Referenced by constr_set_contrainte().