Annotation of OpenXM_contrib/PHC/Ada/Math_Lib/Supports/integer_linear_inequalities.adb, Revision 1.1.1.1
1.1 maekawa 1: with Standard_Floating_Numbers; use Standard_Floating_Numbers;
2: with Standard_Floating_Vectors; use Standard_Floating_Vectors;
3: with Standard_Floating_Matrices;
4: with Floating_Linear_Inequalities; use Floating_Linear_Inequalities;
5:
6: package body Integer_Linear_Inequalities is
7:
8: procedure Integer_Complementary_Slackness
9: ( tableau : in out Matrix; feasible : out boolean ) is
10: begin
11: Integer_Complementary_Slackness(tableau,tableau'last(2)-1,feasible);
12: end Integer_Complementary_Slackness;
13:
14: procedure Integer_Complementary_Slackness
15: ( tableau : in out Matrix; lastcol : in integer;
16: feasible : out boolean ) is
17:
18: tab : Standard_Floating_Matrices.Matrix
19: (tableau'range(1),tableau'first(2)..lastcol);
20: rhs,sol : Standard_Floating_Vectors.Vector(tab'range(1));
21: tol : constant double_float := 10.0**(-12); -- double precision
22: columns : Standard_Integer_Vectors.Vector(sol'range);
23:
24: begin
25: for i in tab'range(1) loop
26: for j in tab'range(2) loop
27: tab(i,j) := double_float(tableau(i,j));
28: end loop;
29: end loop;
30: for i in rhs'range loop
31: rhs(i) := double_float(tableau(i,tableau'last(2)));
32: end loop;
33: Complementary_Slackness(tab,lastcol,rhs,tol,sol,columns,feasible);
34: end Integer_Complementary_Slackness;
35:
36: end Integer_Linear_Inequalities;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>