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

Annotation of OpenXM_contrib/PHC/Ada/Math_Lib/Supports/linear_programming.adb, Revision 1.1

1.1     ! maekawa     1: with Dictionaries;
        !             2:
        !             3: package body Linear_Programming is
        !             4:
        !             5:   procedure Primal_Simplex
        !             6:                  ( dic : in out Matrix; eps : in double_float;
        !             7:                    in_bas,out_bas : in out Standard_Integer_Vectors.Vector;
        !             8:                    nit : in out natural; unbounded : out boolean ) is
        !             9:
        !            10:     unbound : boolean;
        !            11:
        !            12:   begin
        !            13:     while not Dictionaries.Primal_Optimal(dic,eps) loop
        !            14:       Dictionaries.Primal_Update(dic,in_bas,out_bas,eps,unbound);
        !            15:       nit := nit + 1;
        !            16:       exit when unbound;
        !            17:     end loop;
        !            18:     unbounded := unbound;
        !            19:   end Primal_Simplex;
        !            20:
        !            21:   procedure Generic_Primal_Simplex
        !            22:                  ( dic : in out Matrix; eps : in double_float;
        !            23:                    in_bas,out_bas : in out Standard_Integer_Vectors.Vector;
        !            24:                    nit : in out natural; unbounded : out boolean ) is
        !            25:
        !            26:     unbound : boolean;
        !            27:
        !            28:   begin
        !            29:     while not Dictionaries.Primal_Optimal(dic,eps) loop
        !            30:       Report(dic,in_bas,out_bas);
        !            31:       Dictionaries.Primal_Update(dic,in_bas,out_bas,eps,unbound);
        !            32:       nit := nit + 1;
        !            33:       exit when unbound;
        !            34:     end loop;
        !            35:     Report(dic,in_bas,out_bas);
        !            36:     unbounded := unbound;
        !            37:   end Generic_Primal_Simplex;
        !            38:
        !            39:   procedure Dual_Simplex
        !            40:                  ( dic : in out Matrix; eps : in double_float;
        !            41:                    in_bas,out_bas : in out Standard_Integer_Vectors.Vector;
        !            42:                    nit : in out natural; feasible : out boolean ) is
        !            43:
        !            44:     feasi : boolean;
        !            45:
        !            46:   begin
        !            47:     while not Dictionaries.Dual_Optimal(dic,eps) loop
        !            48:       Dictionaries.Dual_Update(dic,in_bas,out_bas,eps,feasi);
        !            49:       nit := nit + 1;
        !            50:       exit when not feasi;
        !            51:     end loop;
        !            52:     feasible := feasi;
        !            53:   end Dual_Simplex;
        !            54:
        !            55:   procedure Generic_Dual_Simplex
        !            56:                  ( dic : in out Matrix; eps : in double_float;
        !            57:                    in_bas,out_bas : in out Standard_Integer_Vectors.Vector;
        !            58:                    nit : in out natural; feasible : out boolean ) is
        !            59:
        !            60:     feasi : boolean;
        !            61:
        !            62:   begin
        !            63:     while not Dictionaries.Dual_Optimal(dic,eps) loop
        !            64:       Report(dic,in_bas,out_bas);
        !            65:       Dictionaries.Dual_Update(dic,in_bas,out_bas,eps,feasi);
        !            66:       nit := nit + 1;
        !            67:       exit when not feasi;
        !            68:     end loop;
        !            69:     Report(dic,in_bas,out_bas);
        !            70:     feasible := feasi;
        !            71:   end Generic_Dual_Simplex;
        !            72:
        !            73: end Linear_Programming;

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>