[BACK]Return to integer_linear_inequalities.adb CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / PHC / Ada / Math_Lib / Supports

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>