PIPS
|
#include "arithmetique.h"
#include <stdio.h>
#include "assert.h"
#include "iproblem.h"
#include "iabrev.h"
#include "rproblem.h"
Go to the source code of this file.
Functions | |
static int | xbug (Pproblem XX, int nu) |
========================================================================= More... | |
static int | xdeb (Pproblem XX, int nu) |
static void | vzphase (Pproblem XX, int n) |
static void | vzstep (Pproblem XX, int n) |
static void | vznowstep (Pproblem XX) |
static void | vznewstep (Pproblem XX, int n) |
void | tableau_janus (Pinitpb II, Pproblem XX) |
static void | symbol (Pproblem XX, int v) |
N note: if use janus.c then not static DN. More... | |
static void | symbold (Pproblem XX, int v) |
static void | vzcut (Pproblem XX, int i, int divisor, int i2) |
static void symboldn(Pproblem XX,int v) /***************************\/ More... | |
static void | igvoir3 (Pproblem XX, int ia, int ib, int carre, int ip, int jp, int carre2, int ip2, int jp2, int fleche, int ifl) |
static void | igvoir (Pproblem XX, int ia, int ib) |
fin igvoir3 More... | |
static void | w1voir (Pproblem XX, int ix) |
fin igvoir More... | |
static void | wvoir (Pproblem XX) |
tatic void wvoir(Pproblem XX) More... | |
static void | vzemptycol (Pproblem XX, int j) |
static void stepvoir(Pproblem XX) /**** acces pour mise au point janus *\/ More... | |
static void | vzredundant (Pproblem XX, int i, int i2) |
static void | vzgcd (Pproblem XX, int i, int gcd, int viz) |
static void | vzextgcd (Pproblem XX, int a1, int a2, int u1, int u2, int u3, int zvx) |
static void | term (Pproblem XX, int s, Value k, int x) |
static void | ucformula (Pproblem XX, Value u1, Value u2, int v, int new1, int new2) |
static void | vzunimod (Pproblem XX, Value u1, Value u2, int u3, int za, int zb, int old1, int old2, int new1, int new2) |
static int | integrite (float vf) |
======================================================================= More... | |
static Value | dessus (float vf) |
static Value | dessous (float vf) |
static void | integerrealline (Pproblem XX, struct rproblem *RR, int ii, int ir) |
fprintf(FTRACE,"variable flottante=%14.7f dessus=%d dessous=%d\\\\\n", vf,dessus(vf),dessous(vf)); if (vf>0) testdessusdessous(XX,-vf); } void testsdessusdessous(Pproblem XX) { testdessusdessous(XX,0); testdessusdessous(XX,7.6543); testdessusdessous(XX,4.000002); testdessusdessous(XX,4.000001); testdessusdessous(XX,1.999995); testdessusdessous(XX,1.999999); } in case of test - end More... | |
static void | integertoreal (Pproblem XX, struct rproblem *RR, int mini) |
static void | messrsimplex (Pproblem XX, struct rproblem *RR, int r, int ph) |
static float | localnewrsimplex (Pproblem XX, struct rproblem *RR, int min) |
static float | localrsimplex (Pproblem XX, int min) |
static void | copybound (Pproblem XX, Pproblem YY) |
static void | vid (Pproblem XX) |
static void | vidr (struct rproblem *RR) |
static int | copystructure (Pproblem XX, Pproblem YY) |
tatic int copystructure(Pproblem XX,Pproblem YY) More... | |
static int | janus_egalite (Pproblem XX, int i) |
========================================================================= More... | |
static int | freevariable (Pproblem XX, int v) |
static int costvariable(Pproblem XX) /**************************\/ More... | |
static int | cutvariable (Pproblem XX, int v) |
static int | fluidvariable (Pproblem XX, int v) |
static int | cutline (Pproblem XX, int i) |
static int | fluidline (Pproblem XX, int i) |
static int | freecolumn (Pproblem XX, int j) |
static int cutcolumn(Pproblem XX,int j) /*****************************\/ More... | |
static int | emptylhs (Pproblem XX, int i) |
static int | useless (Pproblem XX, int i) |
static int | presence (Pproblem XX, int iv) |
static int | newfreevariable (Pproblem XX) |
static Value | dn_multiply (Value v1, Value v2) |
======================================================================== More... | |
static Value | correctm (Pproblem XX, Value k1, Value k2) |
static int | corrects (Pproblem XX, Value k1, Value k2) |
static int | ipivotage2 (Pproblem XX, int i1, int j1, int ipiv1, int ipiv2, int vtu) |
======================================================================== More... | |
static int | ipivotage (Pproblem XX, int i1, int j1) |
static int | redundant (Pproblem XX, int i1, int i2) |
static int | satisfait (Pproblem XX) |
static int | makecolumnfree (Pproblem XX, int jx) |
========================================================================= More... | |
static void | celimination (Pproblem XX, int j1) |
========================================================================= More... | |
static void | emptycolelim (Pproblem XX, int j1) |
static void | permutec (Pproblem XX, int j1, int j2) |
static void | permutel (Pproblem XX, int i1, int i2) |
static void | oppositeline (Pproblem XX, int io) |
static void | retirer (Pproblem XX, int i1) |
static void | retirerineq (Pproblem XX, int i1) |
static void badretirerineq(Pproblem XX,int i1) /***********************\/ More... | |
static void | razcut (Pproblem XX) |
static int | possible (Pproblem XX, int j) |
======================================================================= More... | |
static void | fourier0 (Pproblem XX, int j) |
static void | ajouter (Pproblem XX, Value sk, int ip1, int i) |
fin fourier0 More... | |
static void | fourier1 (Pproblem XX, int pn, int j, int ip1) |
integer fourier elimination criterion and: More... | |
static void | fourier22 (Pproblem XX, int j) |
fin fourier1 More... | |
static Value | pgcd2 (Value z1, Value z2) |
fin fourier22 More... | |
static Value | extgcd (Pproblem XX, Value a1, Value a2, Value *pu1, Value *pu2, Value *pu3, int zvx) |
tatic int extgcd(Pproblem XX,int a1,int a2,int *pu1,int *pu2,int *pu3, int zvx) { int v1,v2,v3,t1,t2,t3,q; if (a1==0 || a2==0) return(1); pu1=1 ; *pu2=0 ; *pu3=abs(a1) ; v1=0 ; v2=1 ; v3=abs(a2) ; while (v3!=0) { q=*pu3/v3 ; t1= *pu1 -v1*q ; t2= *pu2-v2*q ; t3=*pu3-v3*q ; pu1=v1 ; *pu2=v2 ; *pu3=v3 ; v1=t1 ; v2=t2 ; v3=t3 ; } if (a1<0) *pu1= - *pu1 ; if (a2<0) *pu2= - *pu2 ; if(VISU>=zvx) vzextgcd(XX, a1, a2, *pu1, *pu2, *pu3,zvx); return(0); }DN More... | |
static int | jnsegment (Pproblem XX, int ik, int j1, int j2) |
static int | jsegment (Pproblem XX, int ik, int j1, int j2, Value p) |
static Value | pgcdsegment (Pproblem XX, int ik, int j1, int j2) |
static int | changing2 (Pproblem XX, int i1, int ja, int jb) |
static int | build0 (Pproblem XX, int i1, int jj, int *pj1) |
static int | build1 (Pproblem XX, int i1, int jj) |
static Value | cfloor (Value v1, Value v2) |
======================================================================= More... | |
static int | newcut (Pproblem XX) |
static void | coupe (Pproblem XX, int i1, int i2, Value abpivot) |
static int | cutiteration (Pproblem XX, int i1, int j1, int turb) |
static Value | pgcd2in (Value z1, Value z2) |
======================================================================= More... | |
static Value | pgcdseg (Pproblem XX, int ik, int j1, int j2) |
static Value | inequaldivision (Pproblem XX, int i) |
static int | gcdtest (Pproblem XX, int i, int *pj1, Value *ppivot, int viz) |
======================================================================= More... | |
static int | dualentier (Pproblem XX) |
======================================================================= More... | |
static void | razfreq (Pproblem XX) |
fin dualentier More... | |
static int | iprimal (Pproblem XX, int minimum, int i2, int stopcout) |
static void voirfreq(Pproblem XX) /*****\/ More... | |
static void | anonymouscopyline (Pproblem XX, int is, int id) |
fin iprimal ================================================ More... | |
static void | copyline (Pproblem XX, int is, int id) |
static void | inhibit (Pproblem XX, int in) |
========================= PROCEDURES FOR FAST =========================== More... | |
static void | remettre (Pproblem XX, int in) |
static int | remise (Pproblem XX, int icf) |
static int | fast (Pproblem XX, Pproblem ZZ) |
static void | anonymctol (Pproblem XX, int js, int id) |
========================== fin fast =================================== More... | |
static void | columntoline (Pproblem XX, int js, int id) |
static void | boundline (Pproblem XX, int io, Value bou) |
static int | addnonbasicbound (Pproblem XX, int jnb, Value nbb, int nonfixe) |
static void | addedbound (Pproblem XX, int iv, Value borne) |
static int | modifyconstr (Pproblem XX, int jfixe, int ifixe, Value k, int ineq) |
static int | findandmod (Pproblem XX, int v, Value k, int ineq) |
static int | hb (struct rproblem *RR, int iv) |
================================================================== More... | |
static void | copyrline (struct rproblem *RR, int is, int id) |
static void | rinverse (struct rproblem *RR, int ir) |
static int | recherche (struct rproblem *RR, int varia) |
static void | razcoutr (struct rproblem *RR, int mini) |
static int | preparephase2 (Pproblem XX, struct rproblem *RR, int rvar, int mini, int kost) |
static int | phase1 (Pproblem XX, struct rproblem *RR) |
static int | phase2 (Pproblem XX, struct rproblem *RR, int rvar, int mini) |
static int | dealtvariable (Pproblem XX, int v) |
static int | inevariable (Pproblem XX, int v) |
static int | majlowbounds (Pproblem XX, struct rproblem *RR, int ope) |
static void etatfonctions(Pproblem XX) More... | |
static int | upperbound (Pproblem XX, struct rproblem *RR, int iv, int rvar, float epss) |
static int cutbounds(Pproblem XX,struct rproblem *RR,int iv, int rvar,float epss) More... | |
static int | lowbound (Pproblem XX, struct rproblem *RR, int iv, int rvar, int *first, float epss) |
static Value | boundssum (Pproblem XX) |
static int | computebounds (Pproblem XX, struct rproblem *RR, int up) |
static void | voirbornes (Pproblem XX) |
static void | listehb (Pproblem XX, struct rproblem *RR) |
static int | choose (Pproblem XX, struct rproblem *RR) |
static int | ajout (Pproblem XX) |
static int | majuu (Pproblem XX, Pproblem UU, struct rproblem *RR) |
static int | majb (Pproblem XX, Pproblem UU, struct rproblem *RR) |
static int | failuresp (Pproblem XX, struct rproblem *RR, int *compb) |
static int | reducedpb (Pproblem XX, Pproblem VV, struct rproblem *RR) |
static int | splitpb (Pproblem XX, Pproblem VV, struct rproblem *RR, int jfixe, int ifixe, Value k, int ineq) |
static int | recup (Pproblem XX, Pproblem VV) |
MMM4. More... | |
static int | reduction (Pproblem XX, struct rproblem *RR) |
static int | eclater (Pproblem XX, Pproblem UU, Pproblem VV, struct rproblem *RR) |
static int | failure (Pproblem XX, Pproblem UU, Pproblem VV, struct rproblem *RR) |
static int | fastplus (Pproblem XX, Pproblem VV, struct rproblem *RR) |
static int | pseudocopie (Pproblem XX, Pproblem YY, int condition) |
static int | iprimalplus (Pproblem XX, struct rproblem *RR, int minimum, int i2, int stopcout) |
int | dynam (Pproblem XX, int nd) |
======================================================================= More... | |
static int | vzlast (Pproblem XX) |
======================================================================= More... | |
static int | is2 (Pproblem XX, Pproblem VV, struct rproblem *RR) |
======================================================================= More... | |
static int | init_janus (Pinitpb II, Pproblem XX, int suit1) |
int | isolve (Pinitpb II, Pproblem XX, int suite) |
Definition at line 1531 of file isolve.c.
References addnonbasicbound(), anonymouscopyline(), B, boundline(), G, IC1, MX, NEGAL, newcut(), and NX.
Referenced by ajout().
f (nonfixe)
Definition at line 1522 of file isolve.c.
References anonymctol(), boundline(), celimination(), MX, NEGAL, newcut(), and value_zero_p.
Referenced by addedbound(), and modifyconstr().
Definition at line 1819 of file isolve.c.
References addedbound(), dealtvariable(), fprintf(), FTRACE, G, problem::ibound, IC1, problem::ilbound, inevariable(), int_to_value, MX, NUMAX, PMET2, razcut(), REDON, retirerineq(), symbold(), value_assign, value_neg_p, value_pos_p, VW4, VW6, VW7, wvoir(), and XBUG.
Referenced by eclater(), and reduction().
fin fourier0
0
if (jk !=j) si j transmis
0
Definition at line 849 of file isolve.c.
References AK, DK, dn_multiply(), NX, value_addto, value_assign, value_notzero_p, value_one_p, and VALUE_ZERO.
Referenced by fourier1().
========================== fin fast ===================================
0
Definition at line 1507 of file isolve.c.
References AK, DK, NX, value_assign, VALUE_MONE, and VALUE_ZERO.
Referenced by addnonbasicbound(), and columntoline().
fin iprimal ================================================
line is (source) is copied on line id
0
Definition at line 1432 of file isolve.c.
References AK, DK, NX, and value_assign.
Referenced by addedbound(), and copyline().
Definition at line 1518 of file isolve.c.
References DK, MX, NEGAL, oppositeline(), permutel(), and value_addto.
Referenced by addedbound(), and addnonbasicbound().
Definition at line 1736 of file isolve.c.
References B, dealtvariable(), G, problem::ibound, IC1, problem::ilbound, MX, NX, value_addto, value_substract, and VALUE_ZERO.
Referenced by computebounds().
A unitary coefficient is built on equation i1
jj,NX
n1+1,NX
Definition at line 1050 of file isolve.c.
References AK, changing2(), fprintf(), FTRACE, G, jnsegment(), makecolumnfree(), NX, value_notone_p, VISU, VRESULT, XBUG, XDEB, and ZVEV.
Referenced by dualentier(), and is2().
nitary or single coefficient built on inequality i1
o non-zero coefficient
recherche coefficient=delta
n sait que valeur absolue d'un coefficient=pgcd
t98 2eme exemple RR1828 7.3.2
Definition at line 1065 of file isolve.c.
References AK, changing2(), fprint_Value(), fprintf(), FTRACE, jnsegment(), jsegment(), NX, permutec(), pgcdsegment(), value_abs, value_assign, value_ne, VALUE_ZERO, VISU, VRESULT, and ZVNG.
Referenced by is2().
=========================================================================
PROCEDURES FOR HANDLING MATRIX
=========================================================================
column j1 is eliminated (and replaced by column NX)
0
Definition at line 763 of file isolve.c.
References AK, B, MX, NX, and value_assign.
Referenced by addnonbasicbound(), and is2().
=======================================================================
PROCEDURES FOR CUT OPERATIONS
=======================================================================
printf(stderr,"cfloor VALUE_ZERO)");
printf(stderr,"cfloor_neg ");fprint_Value(stderr,v);fprintf(stderr,")");
Definition at line 1088 of file isolve.c.
References value_assign, value_decrement, value_div, VALUE_ONE, value_plus, value_pos_p, VALUE_ZERO, and value_zero_p.
Referenced by coupe(), and inequaldivision().
3!=1 t97
si pas d'incident
Definition at line 1022 of file isolve.c.
References AK, B, dn_multiply(), extgcd(), igvoir3(), MX, newfreevariable(), value_assign, value_div, value_minus, value_plus, VISU, vzunimod(), XBUG, and ZVU1.
Referenced by build0(), and build1().
f (VIS2&&XX->bestup>=2)
Definition at line 1802 of file isolve.c.
References B, problem::bestlow, problem::bestup, dealtvariable(), fprint_Value(), fprintf(), FTRACE, G, hb(), problem::ibound, IC1, problem::ilbound, int_to_value, MSR, MX, NX, PCOMP, RR, problem::state, symbold(), problem::tilt, value_assign, value_eq, value_gt, value_lt, VALUE_ZERO, problem::vbest, voirbornes(), VW4, and XBUG.
Referenced by eclater(), and failuresp().
Definition at line 1512 of file isolve.c.
References anonymctol(), B, and G.
Referenced by modifyconstr().
pss=0.000001;
s
Definition at line 1746 of file isolve.c.
References B, problem::bestlow, problem::bestup, boundssum(), dealtvariable(), problem::decrement, rproblem::epss, fprint_Value(), fprintf(), FTRACE, G, problem::ibound, IC1, problem::ilbound, inevariable(), lowbound(), majlowbounds(), MX, NX, phase1(), PMET2, REDON, RR, s1, problem::state, problem::tilt, upperbound(), value_assign, value_minus, VALUE_ZERO, value_zero_p, problem::vbest, VRVID, VW2, VW3, VW4, and XBUG.
Referenced by failuresp().
Definition at line 435 of file isolve.c.
References problem::ibound, problem::ilbound, problem::numax, and value_assign.
Referenced by copystructure(), and majb().
line is (source) is copied on line id)
Definition at line 1571 of file isolve.c.
References RR.
Referenced by preparephase2().
tatic int copystructure(Pproblem XX,Pproblem YY)
nt copystructure(Pproblem XX,Pproblem YY)
Y->result=XX->result;
Y->jinfini=XX->jinfini;
Y->nub=XX->nub;
Definition at line 447 of file isolve.c.
References problem::ak, problem::b, problem::choixpiv, problem::choixprim, copybound(), problem::critermax, problem::dk, problem::dyn, problem::forcer, problem::fourier, problem::ftrace, problem::g, problem::ic1, problem::icout, problem::lastfree, problem::mcontr, problem::met2, problem::met3, problem::met4, problem::met5, problem::met6, problem::met7, problem::met8, problem::meth, problem::minimum, problem::mx, problem::negal, problem::niter, problem::ntp, problem::ntrac2, problem::ntrac3, problem::ntrace, problem::numax, problem::numero, problem::nvar, problem::nvpos, problem::nx, problem::remove, problem::state, problem::tmax, problem::turbo, value_assign, problem::varc, and problem::vdum.
Referenced by eclater(), fast(), fastplus(), iprimalplus(), pseudocopie(), and recup().
Definition at line 575 of file isolve.c.
References assert, fprintf(), FTRACE, k1, k2, value_direct_multiply, value_div, value_eq, value_notzero_p, VISU, and ZVO.
Referenced by ipivotage2().
Definition at line 589 of file isolve.c.
References assert, fprintf(), FTRACE, k1, k2, value_eq, value_minus, value_plus, VISU, and ZVO.
Referenced by ipivotage2().
fprintf(stderr,"\n(in coupe: abpivot = ");fprint_Value(stderr,abpivot);fprintf(stderr,"");
fprintf(stderr," DKi2 =");fprint_Value(stderr,DK(i2));fprintf(stderr,"\n");
0
fprintf(stderr," AKi2j2 = ");fprint_Value(stderr,AK(i2,j2));fprintf(stderr,"\n");
vc2 4
vc4 6
vc3 5
uppression annulee 13juin 00
Definition at line 1105 of file isolve.c.
References AK, cfloor(), DK, fprint_Value(), fprintf(), FTRACE, G, NX, symbol(), value_assign, VISU, vzcut(), w1voir(), and ZVC1.
Referenced by cutiteration().
surrogate cut
PPP9
Definition at line 1129 of file isolve.c.
References AK, coupe(), cutline(), DK, problem::dturb, fluidline(), fprintf(), FTRACE, IC1, igvoir3(), ipivotage(), ipivotage2(), problem::jturb, localrsimplex(), MX, newcut(), problem::nturb, NUB, NX, PMETH, retirer(), problem::tturb, value_abs, value_assign, value_notone_p, VALUE_ZERO, value_zero_p, VISU, VRBUG, VROVF, wvoir(), ZVCP1, ZVCP2, and ZVCP3.
Referenced by dualentier(), fast(), iprimal(), and is2().
is the constraint a cut inequality ?
Definition at line 498 of file isolve.c.
References cutvariable(), and G.
Referenced by cutiteration(), and razcut().
Definition at line 492 of file isolve.c.
References NUMAX.
Referenced by cutline(), fluidvariable(), makecolumnfree(), redundant(), and useless().
Definition at line 1626 of file isolve.c.
Referenced by ajout(), boundssum(), choose(), computebounds(), listehb(), lowbound(), majlowbounds(), majuu(), reduction(), and voirbornes().
|
static |
Definition at line 368 of file isolve.c.
References dessus().
Referenced by iprimalplus(), and upperbound().
|
static |
Definition at line 362 of file isolve.c.
References integrite().
Referenced by dessous(), iprimalplus(), and lowbound().
========================================================================
PROCEDURES for data overflow test
========================================================================
Definition at line 563 of file isolve.c.
References assert, fprintf(), value_direct_multiply, value_div, value_eq, VALUE_NAN, VALUE_ZERO, and value_zero_p.
Referenced by ajouter(), changing2(), extgcd(), fourier22(), gcdtest(), ipivotage2(), pgcd2(), and pgcd2in().
=======================================================================
BASIC ALL-INTEGER SIMPLEX PROCEDURES
=======================================================================
available solution
more than one possible pivot
1=MX;
f (VISU) fprintf(FTRACE,"Etat sortie dyn=%d r=%d\\\\\n",DYN,r);
Definition at line 1241 of file isolve.c.
References AK, build0(), CHOIXPIV, cutiteration(), DK, DYN, dynam(), fprintf(), FTRACE, G, IC1, igvoir(), ipivotage2(), problem::jturb, MTDI2, MX, newcut(), NITER, problem::nturb, NX, pivot(), PMETH, satisfait(), problem::turbo, value_addto, value_assign, value_gt, value_lt, value_neg_p, value_posz_p, VALUE_ZERO, value_zero_p, VISU, VRFIN, VROVF, VRVID, wvoir(), XBUG, ZVDEND, ZVDS, and ZVS.
Referenced by fastplus(), and is2().
=======================================================================
DYNAM.c
=======================================================================
truct problem AVV; struct rproblem ARR; vid(&AVV); vidr(&ARR);
printf(FTRACE,"fourier=%d varc=%d choixpiv=%d forcer=%d\\\\\n", PFOURIER,VARC,CHOIXPIV,FORCER);
lse if (ca!=10) printf("commande ?\n");
rintf("selon c c=%c\n",c); printf("selon d c=%d\n",c);
=isalpha(c); printf("produit par isalpha v=%d\n",v);
=isdigit(c); printf("produit par isdigit v=%d\n",v);
rintf("conversion \n"); v=atoi(&c); printf("produit par atoi v=%d\n",v);
rintf("action direct:0 suite:1 visu:2 dynam:3 ? ");scanf("%2d",&v);
Definition at line 2082 of file isolve.c.
References problem::dyit, DYN, problem::ftrace, problem::itdirect, NITER, problem::niter, printf(), VISU, and wvoir().
Referenced by dualentier(), ipivotage2(), isolve(), and sc_to_iproblem().
sss
Definition at line 1949 of file isolve.c.
References ajout(), choose(), copystructure(), problem::cu, problem::dk, fprintf(), FTRACE, hb(), problem::lu, NX, presence(), recup(), RR, splitpb(), UU, value_assign, value_increment, value_le, value_notzero_p, problem::vbest, vid(), vidr(), VRFIN, VRVID, VW4, and XBUG.
Referenced by failure().
empty column j1 is eliminated and replaced by column NX
0
Definition at line 771 of file isolve.c.
References AK, B, MX, NX, value_assign, and value_notzero_p.
Referenced by fourier0(), fourier1(), fourier22(), and is2().
|
static |
tatic int extgcd(Pproblem XX,int a1,int a2,int *pu1,int *pu2,int *pu3, int zvx) { int v1,v2,v3,t1,t2,t3,q; if (a1==0 || a2==0) return(1); pu1=1 ; *pu2=0 ; *pu3=abs(a1) ; v1=0 ; v2=1 ; v3=abs(a2) ; while (v3!=0) { q=*pu3/v3 ; t1= *pu1 -v1*q ; t2= *pu2-v2*q ; t3=*pu3-v3*q ; pu1=v1 ; *pu2=v2 ; *pu3=v3 ; v1=t1 ; v2=t2 ; v3=t3 ; } if (a1<0) *pu1= - *pu1 ; if (a2<0) *pu2= - *pu2 ; if(VISU>=zvx) vzextgcd(XX, a1, a2, *pu1, *pu2, *pu3,zvx); return(0); }DN
Definition at line 982 of file isolve.c.
References dn_multiply(), value_abs, value_assign, value_div, value_minus, value_neg_p, value_notzero_p, VALUE_ONE, value_oppose, VALUE_ZERO, value_zero_p, VISU, and vzextgcd().
Referenced by changing2().
Definition at line 1964 of file isolve.c.
References problem::bloquer, problem::dk, eclater(), failuresp(), fprintf(), FTRACE, listehb(), majb(), MSR, recup(), reducedpb(), reduction(), RR, problem::tilt, UU, value_assign, VRFIN, VRVID, VW3, VW4, and XBUG.
Referenced by check_delete_workspace(), fastplus(), and unsplit_internal().
X->bestup<=PCOMP
s
Definition at line 1861 of file isolve.c.
References problem::bestup, problem::bloquer, choose(), computebounds(), elimination(), fprintf(), FTRACE, hb(), MSR, PCOMP, phase1(), PMET2, RR, problem::state, problem::tilt, value_le, VALUE_ONE, problem::vbest, voirbornes(), VRVID, VW3, VW4, VW7, wvoir(), and XBUG.
Referenced by failure().
PPP3
no solution
Definition at line 1451 of file isolve.c.
References AK, copyline(), copystructure(), cutiteration(), DK, fprint_Value(), fprintf(), FTRACE, G, IC1, ICOUT, inhibit(), iprimal(), problem::jinfini, MX, newcut(), NITER, NUB, NX, PMET3, PMETH, remettre(), remise(), satisfait(), symbold(), value_addto, value_assign, value_lt, value_mone_p, value_neg_p, value_posz_p, value_uminus, VALUE_ZERO, VISU, VRBUG, VRFIN, VRINF, VRINS, VRVID, VW2, VW4, vzlast(), wvoir(), XBUG, ZVSAT3, and ZVSAT4.
Referenced by fastplus().
sss
PP8 mise au point
evoir utilite
PP7
PP6
sss
Definition at line 1988 of file isolve.c.
References copystructure(), CRITERMAX, DK, problem::dk, dualentier(), failure(), fast(), fprint_Value(), fprintf(), FTRACE, ICOUT, NITER, NX, PMET3, PMETH, RR, TMAX, value_assign, value_uminus, vid(), VRFIN, VRINS, VW2, VW4, vzlast(), wvoir(), and XBUG.
Referenced by is2().
Definition at line 1557 of file isolve.c.
References fprint_Value(), fprintf(), FTRACE, modifyconstr(), presence(), VW4, VW5, and XBUG.
Referenced by iprimalplus(), majuu(), and reduction().
Definition at line 501 of file isolve.c.
References fluidvariable(), and G.
Referenced by cutiteration(), and is2().
or cut variable
Definition at line 495 of file isolve.c.
References cutvariable(), and freevariable().
Referenced by fluidline().
all non-zero coefficients of a column have the same sign
vv
Definition at line 834 of file isolve.c.
References AK, B, emptycolelim(), fprintf(), FTRACE, G, IC1, MX, retirer(), value_notzero_p, VISU, vznowstep(), wvoir(), ZVF1, ZVF3, and ZVS.
Referenced by is2().
integer fourier elimination criterion and:
a single positive coefficient or a single negative coefficient
f (pn==1)
ligne ip1 sur ligne i
Definition at line 870 of file isolve.c.
References ajouter(), AK, B, emptycolelim(), fprint_Value(), fprintf(), FTRACE, IC1, MX, retirer(), value_assign, value_neg_p, value_one_p, value_pos_p, value_uminus, VISU, vznowstep(), wvoir(), ZVF1, ZVF3, and ZVS.
Referenced by is2().
fin fourier1
integer fourier elimination criterion and: 2 positive coefficients and 2 negative coefficients
vv
0
Definition at line 892 of file isolve.c.
References AK, B, DK, dn_multiply(), emptycolelim(), fprintf(), FTRACE, G, IC1, MX, NX, value_assign, value_minus, value_pos_p, value_zero_p, VISU, vznowstep(), wvoir(), ZVF1, ZVF2, ZVF3, and ZVS.
Referenced by is2().
static int cutcolumn(Pproblem XX,int j) /*****************************\/
{ return(cutvariable(XX,B(j))); } static int fluidcolumn(Pproblem XX, int j) /**************************\/ { return(fluidvariable(XX,B(j))); }
Definition at line 510 of file isolve.c.
References B, and freevariable().
Referenced by is2(), and makecolumnfree().
static int costvariable(Pproblem XX) /**************************\/
{ return(NV+1); }
Definition at line 486 of file isolve.c.
Referenced by fluidvariable(), freecolumn(), and symbol().
=======================================================================
GCD TEST
=======================================================================
GCD test + division by GCD ** 0: fails * -1: empty polyedron
is LHS empty?
GCD test
division by GCD
Definition at line 1213 of file isolve.c.
References AK, DK, dn_multiply(), fprint_Value(), fprintf(), FTRACE, NX, pgcdsegment(), value_abs, value_assign, value_div, value_division, value_gt, value_ne, value_notzero_p, VALUE_ONE, value_one_p, value_zero_p, VISU, and vzgcd().
Referenced by is2().
|
static |
rint latex arrays * ak et dk between lines ia and ib
istances
0
0
Definition at line 178 of file isolve.c.
References AK, B, DK, fprint_Value(), fprintf(), FTRACE, G, IC1, ICOUT, janus_egalite(), NX, symbol(), value_abs, value_assign, value_neg_p, value_notone_p, and value_notzero_p.
Referenced by changing2(), cutiteration(), igvoir(), is2(), and vzredundant().
return 0: all coefficients are null * otherwise gcd
is LHS empty?
2000
division by GCD
Definition at line 1191 of file isolve.c.
References AK, cfloor(), DK, fprint_Value(), fprintf(), FTRACE, G, NX, pgcdseg(), symbol(), value_assign, value_division, value_gt, VALUE_ONE, VALUE_ZERO, value_zero_p, VISU, vznowstep(), w1voir(), wvoir(), ZVI1, ZVI3, and ZVS.
Referenced by is2().
Definition at line 1629 of file isolve.c.
Referenced by ajout(), computebounds(), lowbound(), majlowbounds(), and voirbornes().
ICOUT: ligne ou se trouve la fonction cout a optimiser; information indiquee par le step 1 (initialisations); en absence de cout, =0
111111111111111111111111 VERIFICATIONS INITIALISATIONS 11111111111111
equations a la fin, inequations m sens
erniere inequation
tepvoir(XX);
Definition at line 2396 of file isolve.c.
References A, abs, AK, B, D, DK, E, fprintf(), FTRACE, G, IC1, ICOUT, LASTFREE, MAXCOLONNES, MAXLIGNES, MC, problem::minimum, MX, NEGAL, NITER, NP, problem::nredun, NUMAX, NUMERO, NV, NX, TMAX, value_assign, value_uminus, VDUM, VISU, VRCAL, VRDEB, VRESULT, wvoir(), ZVA1, ZVA4, ZVB, and ZVS.
Referenced by isolve().
fprintf(FTRACE,"variable flottante=%14.7f dessus=%d dessous=%d\\\\\n", vf,dessus(vf),dessous(vf)); if (vf>0) testdessusdessous(XX,-vf); } void testsdessusdessous(Pproblem XX) { testdessusdessous(XX,0); testdessusdessous(XX,7.6543); testdessusdessous(XX,4.000002); testdessusdessous(XX,4.000001); testdessusdessous(XX,1.999995); testdessusdessous(XX,1.999999); } in case of test - end
Definition at line 384 of file isolve.c.
References AK, DK, G, problem::minimum, MSR, NX, and RR.
Referenced by integertoreal().
Definition at line 390 of file isolve.c.
References B, fprintf(), FTRACE, IC1, ICOUT, integerrealline(), MSR, MX, problem::ntrac3, NX, PRECR, and RR.
Referenced by localnewrsimplex(), phase1(), and phase2().
|
static |
Definition at line 717 of file isolve.c.
References ipivotage2(), and MX.
Referenced by cutiteration(), is2(), and modifyconstr().
========================================================================
PIVOTING PROCEDURE
======================================================================== La matrice ak et les seconds membres dk sont entiers Le pivot est egal a 1 ou -1. le pivotage de la matrice s'effectue a partir de la ligne i1 et de la colonne j1. Les numeros de la variable d'ecart (basique) de la ligne i1, et de la variable independante (hors-base) de la colonne j1, contenus respectivement dans les tableaux g et b, sont permutes. Dans le cas de l'elimination d'une egalite, l'operation equivaut a chasser de la base une variable d'ecart identiquement nulle
variables travail
printf(stderr,"%d %d %d %d %d \n",i1,j1,ipiv1,ipiv2,vtu);
printf(stderr,"%d %d ",i,j);fprint_Value(stderr,pv);fprintf(stderr," "); fprint_Value(stderr,p2);fprintf(stderr," ");fprint_Value(stderr,p3);fprintf(stderr," "); fprint_Value(stderr,pd);fprintf(stderr," ");fprint_Value(stderr,pp);fprintf(stderr," "); fprint_Value(stderr,dn_tmp);fprintf(stderr," \n");
f(VISU)
0
0
printf(stderr,"ketthucipivotage2 :i %dj %d pv",i,j);fprint_Value(stderr,pv);fprintf(stderr," p2"); fprint_Value(stderr,p2);fprintf(stderr," p3");fprint_Value(stderr,p3);fprintf(stderr," pd"); fprint_Value(stderr,pd);fprintf(stderr," pp");fprint_Value(stderr,pp);fprintf(stderr," dn_tmp"); fprint_Value(stderr,dn_tmp);fprintf(stderr," \n");
Definition at line 604 of file isolve.c.
References AK, B, correctm(), corrects(), DK, dn_multiply(), problem::dturb, DYN, dynam(), fprint_Value(), fprintf(), FTRACE, G, janus_egalite(), NITER, NX, symbol(), TMAX, problem::tturb, problem::turbo, value_abs, value_assign, value_mone_p, value_neg_p, value_notone_p, value_notzero_p, value_oppose, value_substract, value_uminus, VALUE_ZERO, value_zero_p, VISU, VRBUG, VRESULT, VRFIN, VRINS, VROVF, wvoir(), ZVP1, and ZVP2.
Referenced by cutiteration(), dualentier(), and ipivotage().
static void voirfreq(Pproblem XX) /*****\/
{ int i; fprintf(FTRACE,"FREQUENCY:\\\\\n"); for (i=1 ; i<=NUMAX ; i++) if (XX->frequency[i]) fprintf(FTRACE,"frequence %d: %d\\\\\n",i,XX->frequency[i]); }
encore provisoire
very particular case, some variables are unconstrained
olution infinie
10/2/98
PPP9
Definition at line 1363 of file isolve.c.
References AK, CHOIXPIV, CHOIXPRIM, CRITERMAX, cutiteration(), DK, fprint_Value(), fprintf(), problem::frequency, FTRACE, G, IC1, problem::jinfini, localrsimplex(), MX, NITER, NTP, NUB, NX, pivot(), PMETH, razfreq(), satisfait(), TMAX, value_assign, value_div, value_lt, value_ne, value_neg_p, value_notzero_p, value_pos_p, value_posz_p, VALUE_TO_FLOAT, value_uminus, VALUE_ZERO, VISU, VRBUG, VRFIN, VRINF, VW6, vzphase(), wvoir(), ZVBR3, and ZVPRI.
Referenced by fast(), iprimalplus(), and isolve().
|
static |
sss
s
f (XX->minimum)
descendant
ascendant. Par curiosite, si 5, ->inequation
MMM5
rovisoire
MMM5
MMM4
f(PMETH==8) XBUG(39);
esure cout step 1
Definition at line 2019 of file isolve.c.
References copystructure(), dessous(), dessus(), DK, problem::dk, findandmod(), fprint_Value(), fprintf(), FTRACE, G, ICOUT, iprimal(), localrsimplex(), problem::marque, problem::minimum, NITER, NX, PDICO, PMET2, possible(), pseudocopie(), reducedpb(), problem::repere, RR, solution(), splitpb(), problem::state, value_assign, value_div, value_eq, value_lt, value_minus, VALUE_ONE, value_plus, value_uminus, VALUE_ZERO, vid(), vidr(), VIS2, VRESULT, VRFIN, VRINS, VRVID, VW1, VW2, VW4, wvoir(), and XBUG.
Referenced by is2().
=======================================================================
MAIN PROCEDURE
=======================================================================
nlibre: information donnee par step 4 au step 5
nt forcer; forcer=(PFOURIER>3);
ICOUT: ligne ou se trouve la fonction cout a optimiser; information indiquee par le step 1 (initialisations); en absence de cout, =0
111111111111111111111111 VERIFICATIONS INITIALISATIONS 11111111111111
22222222222222222222 ELIMINATION EGALITES 22222222222222222222222222
equation surabondante ou incompatible
603
next line : t602
hoice of the equality with the smallest rhs
unimodular change of variables is necessary
equalities still remain
2323232323232323232323 INEQUALITIES DIVISION 23232323232323232323
3333333333333333333333 FOURIER-MOTZKIN trivial 33333333333333333333333
4444444444444444444 FOURIER-MOTZKIN - DUMMY ELIMINATIONS 4444444444444
rovisoire
***** pas de pivot unitaire possible
criteres F-M 1 et 2
dummy elimination
auvais
envisager traitement cas trivial NX==1
555555555555555 NON-NEGATIVE VARIABLES 55555555555555
regroupement des variables contraintes
rovisoire
segment libre est vide!
tres provisoire
5656565656565656 FOURIER ON CONSTRAINED VARIABLES 5656565656565656
f (freecolumn(XX,j))
66666666666666 VARIOUS REDUNDANT INEQUALITIES 666666666666666
66666666666666666 RESOLUTION SIMPLEXE ENTIERS phase 1 666666666666666666
777777777777777777 OPTIMISATION FONCTION COUT ENTIERE 777777777777777777
./shj p-6 ./shj p3-7
Definition at line 2158 of file isolve.c.
References AK, B, build0(), build1(), celimination(), CHOIXPIV, CRITERMAX, cutiteration(), DK, dualentier(), emptycolelim(), emptylhs(), fastplus(), fluidline(), FORCER, fourier0(), fourier1(), fourier22(), fprint_Value(), fprintf(), freecolumn(), FTRACE, G, gcdtest(), IC1, ICOUT, igvoir3(), inequaldivision(), int_to_value, ipivotage(), iprimalplus(), janus_egalite(), jnsegment(), MAXNX, problem::minimum, MSR, MTDAI, MTDI2, MX, NEGAL, NREDUN, problem::nredun, NTP, NUMAX, NUMERO, NX, PCOMP, PDICO, permutec(), permutel(), PFOURIER, pivot(), PMET2, PMET3, PMETH, possible(), PRECR, REDON, redundant(), problem::remove, retirer(), RR, satisfait(), useless(), value_abs, value_assign, value_lt, VALUE_MONE, value_mone_p, value_neg_p, value_notone_p, value_notzero_p, VALUE_ONE, value_one_p, value_pos_p, value_substract, value_uminus, VALUE_ZERO, value_zero_p, VARC, VISU, VRDEB, VREDUN, VRESULT, VRFIN, VRVID, VW2, vzemptycol(), vznewstep(), vznowstep(), vzredundant(), vzstep(), wvoir(), XBUG, ZVEV, ZVFEC, ZVFW, ZVG2, ZVN1, ZVN2, ZVNPC, ZVNW, ZVR1, ZVR3, ZVS, and ZVTS.
Referenced by isolve(), main(), reducedpb(), sc_cute_convex_hull(), splitpb(), and stencil8().
printf(FTRACE,"fourier=%d varc=%d choixpiv=%d forcer=%d\\\\\n", PFOURIER,VARC,CHOIXPIV,FORCER);
uit2=suite/10; suit1=suite-10*suit2;
f (su3) fprintf(FTRACE,"DEBUT ISOLVE icout=%d\\\\\n",ICOUT);
topcout
sss
Definition at line 2458 of file isolve.c.
References DYN, dynam(), ICOUT, init_janus(), iprimal(), is2(), problem::minimum, vid(), vidr(), VISU, VRESULT, vzlast(), and ZVL.
Referenced by sc_janus_feasibility().
=========================================================================
PROCEDURES FOR INFORMATION ABOUT VARIABLES AND SYSTEM
=========================================================================
Definition at line 480 of file isolve.c.
Referenced by igvoir3(), ipivotage2(), is2(), and vzcut().
ndique indice jk sur segment ligne ik tel que abs(coefficient)non nul, sinon renvoie -1
Definition at line 999 of file isolve.c.
Referenced by build0(), build1(), and is2().
printf(FTRACE,"Real dual simplex x[0]=%13.6f\\\\\n",vpara.x[0]);
f (VW6) fprintf(FTRACE,"REEL-PRIMAL:%13.6f \n",rrp);
X->itemp=rsr; XX->ftemp=RR->x[0]; * revoir
Definition at line 414 of file isolve.c.
References fprintf(), FTRACE, integertoreal(), messrsimplex(), min, MSR, realsimplex(), RR, and VW6.
Referenced by localrsimplex().
Definition at line 432 of file isolve.c.
References localnewrsimplex(), min, and rproblem::x.
Referenced by cutiteration(), iprimal(), and iprimalplus().
|
static |
remplacer par 7
Definition at line 1709 of file isolve.c.
References dealtvariable(), problem::decrement, dessus(), rproblem::epss, fprint_Value(), fprintf(), FTRACE, problem::ibound, problem::ilbound, inevariable(), majlowbounds(), messrsimplex(), MSR, phase2(), problem::rbound, problem::rlbound, RR, problem::rrbest, symbold(), problem::tilt, value_addto, value_assign, value_minus, value_neg_p, value_notzero_p, VALUE_ZERO, value_zero_p, problem::vbest, VRVID, VW2, and VW6.
Referenced by computebounds().
MMM3
s
VRFIN)
s
Definition at line 1852 of file isolve.c.
References copybound(), fprintf(), FTRACE, majuu(), PMET2, RR, satisfait(), UU, voirbornes(), VW4, wvoir(), and XBUG.
Referenced by failure().
static void etatfonctions(Pproblem XX)
{ int iv; if (!REDON) return; fprintf(FTRACE,"FONCTIONS "); /*sans info*\/ for (iv=1; iv<=NUMAX ; iv++) if (inevariable(XX,iv)) if (presence(XX,iv)) if (value_notzero_p(XX->ilbound[iv])) {symbold(XX,iv);fprintf(FTRACE,"(");fprint_Value(FTRACE,XX->ilbound[iv]);fprintf(FTRACE,") "); } fprintf(FTRACE,"\\\\\n"); }
mai1999
tatfonctions(XX);
mai1999
Definition at line 1640 of file isolve.c.
References B, dealtvariable(), fprint_Value(), fprintf(), FTRACE, G, problem::ibound, IC1, problem::ilbound, inevariable(), MSR, MX, NUMAX, NX, recherche(), REDON, RR, problem::state, problem::utilb, value_assign, VALUE_MONE, value_neg_p, value_pos_p, VALUE_ZERO, VW3, VW5, and XBUG.
Referenced by computebounds(), lowbound(), and upperbound().
Definition at line 1838 of file isolve.c.
References dealtvariable(), findandmod(), fprint_Value(), fprintf(), FTRACE, problem::ibound, problem::ilbound, MSR, NUMAX, RR, UU, value_assign, value_ge, value_minus, value_pos_p, VALUE_ZERO, vidr(), VW3, VW4, and XBUG.
Referenced by majb().
=========================================================================
PROCEDURE FOR REPLACING A CONSTRAINED VARIABLE BY A FREE VARIABLE
=========================================================================
Definition at line 743 of file isolve.c.
References AK, B, cutvariable(), DK, fprintf(), freecolumn(), FTRACE, G, MAXMX, MX, newfreevariable(), NX, value_assign, VALUE_MONE, VALUE_ZERO, VISU, VRDEB, w1voir(), and ZVVF.
Referenced by build0().
Definition at line 406 of file isolve.c.
References fprintf(), FTRACE, RR, and VRVID.
Referenced by localnewrsimplex(), lowbound(), phase2(), and upperbound().
==0: celimination(XX,jfixe);
Definition at line 1539 of file isolve.c.
References addnonbasicbound(), B, columntoline(), DK, G, IC1, ipivotage(), MX, NEGAL, newcut(), NUMERO, permutel(), retirer(), TMAX, value_substract, VW5, wvoir(), and XBUG.
Referenced by findandmod(), and splitpb().
Definition at line 1102 of file isolve.c.
References G, MAXMX, MX, NUMERO, and VRDEB.
Referenced by addedbound(), addnonbasicbound(), cutiteration(), dualentier(), fast(), and modifyconstr().
Definition at line 539 of file isolve.c.
References LASTFREE.
Referenced by changing2(), and makecolumnfree().
0
Definition at line 801 of file isolve.c.
References AK, DK, NX, and value_oppose.
Referenced by boundline().
lines i1 and i2 are permuted
0
Definition at line 790 of file isolve.c.
References AK, DK, G, NX, and value_assign.
Referenced by boundline(), inhibit(), is2(), modifyconstr(), remettre(), and retirerineq().
fin fourier22
======================================================================= PROCEDURES FOR UNIMODULAR CHANGES OF VARIABLES
=======================================================================
retour 0 si z1==z2==0
Definition at line 956 of file isolve.c.
References dn_multiply(), value_abs, value_assign, value_div, value_minus, and value_notzero_p.
Referenced by pgcdsegment().
=======================================================================
INEQUALITY DIVISION
=======================================================================
retour 0 si z1==z2==0
Definition at line 1174 of file isolve.c.
References dn_multiply(), value_abs, value_assign, value_div, value_minus, and value_notzero_p.
Referenced by pgcdseg().
return: 0 if all coefficients null - otherwise gcd
Definition at line 1182 of file isolve.c.
References AK, pgcd2in(), value_assign, value_one_p, and VALUE_ZERO.
Referenced by inequaldivision().
return: 0 if all coefficients null - otherwise gcd
Definition at line 1014 of file isolve.c.
References AK, pgcd2(), value_assign, value_one_p, and VALUE_ZERO.
Referenced by build1(), and gcdtest().
Definition at line 1610 of file isolve.c.
References integertoreal(), MSR, razcoutr(), realsimplex(), and RR.
Referenced by computebounds(), failuresp(), and phase2().
repetee pour verifications
ntrouvable
Definition at line 1614 of file isolve.c.
References integertoreal(), messrsimplex(), MSR, phase1(), preparephase2(), razcoutr(), realsimplex(), RR, VIS2, and XBUG.
Referenced by lowbound(), simbad(), and upperbound().
=======================================================================
PROCEDURES FOR FOURIER-MOTZKIN
=======================================================================
Fourier-Motzkin should not spoil functions
Definition at line 828 of file isolve.c.
References AK, IC1, and value_notzero_p.
Referenced by iprimalplus(), and is2().
Definition at line 1593 of file isolve.c.
References copyrline(), rproblem::n, razcoutr(), recherche(), rinverse(), and RR.
Referenced by phase2().
Definition at line 533 of file isolve.c.
References B, problem::cu, G, IC1, problem::lu, MX, and NX.
Referenced by eclater(), findandmod(), and voirbornes().
Definition at line 2012 of file isolve.c.
References copystructure(), problem::state, and XBUG.
Referenced by iprimalplus().
|
static |
|
static |
fin dualentier
=======================================================================
Definition at line 1355 of file isolve.c.
References problem::frequency, and NUMAX.
Referenced by iprimal().
line
column
Definition at line 1582 of file isolve.c.
References RR.
Referenced by majlowbounds(), and preparephase2().
MMM4.
Definition at line 1936 of file isolve.c.
References copystructure(), problem::marque, PMET2, and XBUG.
Referenced by eclater(), and failure().
Definition at line 1892 of file isolve.c.
References fprintf(), FTRACE, G, ICOUT, is2(), MX, NEGAL, NV, NX, problem::repere, RR, symbold(), VIS2, VRESULT, VRFIN, VRVID, VW2, VW4, VW5, and wvoir().
Referenced by failure(), and iprimalplus().
Definition at line 1941 of file isolve.c.
References ajout(), dealtvariable(), findandmod(), problem::ibound, problem::ilbound, problem::numax, RR, value_assign, value_eq, vidr(), and XBUG.
Referenced by failure().
Definition at line 720 of file isolve.c.
References rproblem::a, AK, B, cutvariable(), DK, NX, value_assign, value_minus, value_neg_p, value_notzero_p, and value_pos_p.
Referenced by chernikova(), DoRedundantsStatements(), is2(), remove_redundants(), and vertex_redundant_p().
line i1 is removed (and replaced by line MX)
0
Definition at line 806 of file isolve.c.
References AK, DK, G, MX, NX, and value_assign.
Referenced by cutiteration(), fourier0(), fourier1(), is2(), modifyconstr(), remise(), and retirerineq().
static void badretirerineq(Pproblem XX,int i1) /***********************\/
{ if (NEGAL) permutel(XX,i1,MX-NEGAL); retirer(XX,MX-NEGAL); }
Definition at line 817 of file isolve.c.
References MX, NEGAL, permutel(), and retirer().
Referenced by ajout(), and razcut().
|
static |
Definition at line 1909 of file isolve.c.
References B, copyline(), fprint_Value(), fprintf(), FTRACE, G, hb(), ICOUT, is2(), modifyconstr(), MSR, MX, NV, NX, problem::repere, RR, symbol(), value_uminus, problem::vbest, VIS2, VRESULT, VRFIN, VRVID, VW2, VW3, VW4, VW6, wvoir(), and XBUG.
Referenced by eclater(), and iprimalplus().
N note: if use janus.c then not static DN.
static void tableauk(Pproblem XX,int j1,int j2)
{ int i,j,i00; i00=1 ; if (j1>NX) {fprintf(FTRACE," --- pas de colonne %d ----\n",j1); return; }; if (j2>NX) {fprintf(FTRACE," --- pas de colonne %d ----\n",j2); return; }; fprintf(FTRACE,"%d %d %d %d\n",NX,MX,NX,i00); for (i=i00 ; i<=MX ; i++ ) { fprintf(FTRACE,"1 "); if (j2>0) { for (j=1 ; j <= NX ; j++) { if (j==j1) fprint_Value(FTRACE,AK(i,j2)); else if (j==j2) fprint_Value(FTRACE,AK(i,j1)); else fprint_Value(FTRACE,AK(i,j)); /*if (j==j1) fprintf(FTRACE," %2d",AK(i,j2)); else if (j==j2) fprintf(FTRACE," %2d",AK(i,j1)); else fprintf(FTRACE," %2d",AK(i,j));DN*\/ } } else { for (j=1 ; j <= NX ; j++) if (j!=j1) fprint_Value(FTRACE,AK(i,j)); if (j1>0 && (j1 <= NX)) fprint_Value(FTRACE,AK(i,j1)); /*for (j=1 ; j <= NX ; j++) if (j!=j1) fprintf(FTRACE," %2d",AK(i,j)); if (j1>0 && (j1 <= NX)) fprintf(FTRACE," %2d",AK(i,j1));DN*\/ } fprint_Value(FTRACE,DK(i)); fprintf(FTRACE," \n"); /*fprintf(FTRACE," %3d\n",DK(i));DN*\/ } }
Definition at line 113 of file isolve.c.
References abs, fprintf(), freevariable(), FTRACE, and NUMAX.
Referenced by coupe(), db_get_module_list_initial_order(), gfc2pips_code2instruction_(), igvoir3(), inequaldivision(), ipivotage2(), splitpb(), symbold(), term(), ucformula(), vzcut(), vzemptycol(), and vzunimod().
Definition at line 120 of file isolve.c.
References fprintf(), FTRACE, and symbol().
Referenced by ajout(), choose(), fast(), listehb(), lowbound(), reducedpb(), upperbound(), and voirbornes().
printf(FTRACE,"%%%4d",E(i)); for (j=1 ; j <= NV ; j++) fprintf(FTRACE," %2d",A(i,j)); fprintf(FTRACE," %3d\n",D(i));DN
printf(FTRACE," \\\\\n");
Definition at line 69 of file isolve.c.
References A, D, E, fprint_Value(), fprintf(), FTRACE, MC, NP, and NV.
Referenced by sc_to_iproblem().
Definition at line 315 of file isolve.c.
References fprint_Value(), fprintf(), FTRACE, symbol(), value_abs, value_neg_p, value_notone_p, value_zero_p, and x.
Referenced by di_polynome_var_subst_null(), monome_to_expression(), old_prototype_factorize(), polynome_scalar_add(), polynome_scalar_addition(), polynome_to_vecteur(), prototype_factorize(), prototype_var_subst(), ucformula(), and vecteur_mult().
static int cutbounds(Pproblem XX,struct rproblem *RR,int iv, int rvar,float epss)
{
float rrv; int r; if (VW6) {fprintf(FTRACE,"bornes cut "); symbold(XX,iv);} if ((r=phase2(XX,RR,rvar,1))) return(r); rrv=RR->x[0]+epss; fprintf(FTRACE,"var [%d] max=%13.6f ",iv,rrv); if (rrv<1) fprintf(FTRACE," {*}CTILT {*}\\\\\n"); if ((r=phase2(XX,RR,rvar,-1))) return(r); rrv=RR->x[0]-epss; fprintf(FTRACE," min=%13.6f\\\\\n",rrv); return(0); }
Definition at line 1685 of file isolve.c.
References problem::decrement, dessous(), rproblem::epss, fprint_Value(), fprintf(), FTRACE, problem::ibound, majlowbounds(), messrsimplex(), MSR, phase2(), problem::rbound, RR, problem::state, symbold(), problem::utilb, value_addto, value_assign, value_lt, value_minus, VALUE_ONE, VW3, and VW6.
Referenced by computebounds(), find_motif(), and xml_tiling().
Definition at line 521 of file isolve.c.
References rproblem::a, AK, B, cutvariable(), DK, NX, value_assign, value_neg_p, and value_pos_p.
Referenced by is2(), and partition_to_unstructured().
|
static |
Definition at line 439 of file isolve.c.
References problem::state.
Referenced by eclater(), fastplus(), iprimalplus(), and isolve().
|
static |
Definition at line 442 of file isolve.c.
References RR.
Referenced by eclater(), iprimalplus(), isolve(), majuu(), and reduction().
|
static |
etour
Definition at line 1776 of file isolve.c.
References dealtvariable(), fprint_Value(), fprintf(), FTRACE, problem::ibound, problem::ilbound, inevariable(), NUMAX, presence(), REDON, symbold(), and value_notzero_p.
Referenced by choose(), failuresp(), and majb().
static void symboldn(Pproblem XX,int v) /***************************\/
{ symbold(XX,v);fprintf(FTRACE,"\\\\\n"); }
f (line==1) symbol(XX,G(i)); else fprintf(FTRACE," cut") ;
0
Definition at line 126 of file isolve.c.
References AK, B, DK, fprint_Value(), fprintf(), FTRACE, G, IC1, janus_egalite(), line, NX, symbol(), value_abs, value_assign, value_neg_p, value_notone_p, and value_notzero_p.
Referenced by coupe().
static void stepvoir(Pproblem XX) /**** acces pour mise au point janus *\/
{
if (NV>100) {
int i,j; Value cab,cmax;//DN coeef max cmax = VALUE_ZERO; for ( i=1 ; i <= MX ; i++) for ( j=1 ; j <= NX ; j++) if (value_assign(cab,value_abs(AK(i,j)))) if value_gt(cab,cmax) value_assign(cmax,cab); {fprintf(FTRACE,"COEFFICIENT MAXIMUM=");fprint_Value(FTRACE,cmax);fprintf(FTRACE," \n");} return; }
wvoir(XX); /*i0*\/ }
Definition at line 279 of file isolve.c.
References B, fprintf(), FTRACE, and symbol().
Referenced by is2().
=======================================================================
RESULT PROCEDURE
=======================================================================
Definition at line 2136 of file isolve.c.
References fprintf(), FTRACE, MAXMX, MX, NITER, NUB, NX, VISU, VRBUG, VRCAL, VRDEB, VRESULT, VRFIN, VRINF, VRINS, VROVF, VRVID, wvoir(), and ZVL2.
Referenced by fast(), fastplus(), and isolve().
|
static |
Definition at line 62 of file isolve.c.
References MAJSTEP, NSTEP, and vzstep().
Referenced by fourier0(), fourier1(), fourier22(), inequaldivision(), is2(), and vzredundant().
|
static |
Definition at line 330 of file isolve.c.
References fprintf(), FTRACE, symbol(), ucformula(), VDUM, VISU, wvoir(), and ZVU1.
Referenced by changing2().
fin igvoir
Definition at line 245 of file isolve.c.
References igvoir().
Referenced by coupe(), inequaldivision(), and makecolumnfree().
|
static |
tatic void wvoir(Pproblem XX)
0
Definition at line 249 of file isolve.c.
References AK, fprint_Value(), fprintf(), FTRACE, igvoir(), MX, NV, NX, value_abs, value_assign, value_gt, and VALUE_ZERO.
Referenced by ajout(), cutiteration(), dualentier(), dynam(), failuresp(), fast(), fastplus(), fourier0(), fourier1(), fourier22(), inequaldivision(), init_janus(), ipivotage2(), iprimal(), iprimalplus(), is2(), majb(), modifyconstr(), reducedpb(), splitpb(), vzgcd(), vzlast(), and vzunimod().
=========================================================================
SIMPLEXE for integer variables
ALL-INTEGER METHODS
Jean Claude SOGNO
Projet CHLOE – INRIA ROCQUENCOURT
Juin 1994
========================================================================= ========================================================================= Duong NGUYEN QUE
Adaption to abstract computation: janusvalue
CRI-ENSMP
========================================================================= ============================================================== PROCEDURES for printing computation information
==============================================================
Definition at line 29 of file isolve.c.
References fprintf(), FTRACE, PMET2, PMET3, PMETH, printf(), VIS2, VISU, and VRBUG.