[BACK]Return to plane_representations.adb CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / PHC / Ada / Schubert

Annotation of OpenXM_contrib/PHC/Ada/Schubert/plane_representations.adb, Revision 1.1

1.1     ! maekawa     1: with Standard_Floating_Numbers;          use Standard_Floating_Numbers;
        !             2: with Standard_Complex_Numbers;           use Standard_Complex_Numbers;
        !             3:
        !             4: package body Plane_Representations is
        !             5:
        !             6:   function Localize ( locmap : Standard_Natural_Matrices.Matrix;
        !             7:                       plamat : Standard_Complex_Matrices.Matrix )
        !             8:                     return Standard_Complex_Matrices.Matrix is
        !             9:
        !            10:     res : Standard_Complex_Matrices.Matrix(plamat'range(1),plamat'range(2));
        !            11:     tol : constant double_float := 10.0**(-10);
        !            12:     done_j : boolean;
        !            13:
        !            14:   begin
        !            15:     for j in locmap'range(2) loop
        !            16:       done_j := false;
        !            17:       for i in locmap'range(1) loop
        !            18:         if locmap(i,j) = 1
        !            19:          then if AbsVal(plamat(i,j)) > tol
        !            20:                then for k in plamat'range(1) loop
        !            21:                       if AbsVal(plamat(k,j)) > tol
        !            22:                        then res(k,j) := plamat(k,j)/plamat(i,j);
        !            23:                        else res(k,j) := plamat(k,j);
        !            24:                       end if;
        !            25:                     end loop;
        !            26:                     res(i,j) := Create(1.0);
        !            27:               end if;
        !            28:                      done_j := true;
        !            29:          else res(i,j) := plamat(i,j);
        !            30:         end if;
        !            31:         exit when done_j;
        !            32:       end loop;
        !            33:     end loop;
        !            34:     return res;
        !            35:   end Localize;
        !            36:
        !            37:   function Vector_Rep ( plamat : Standard_Complex_Matrices.Matrix )
        !            38:                       return Standard_Complex_Vectors.Vector is
        !            39:
        !            40:     dim : constant natural := plamat'length(1)*plamat'length(2);
        !            41:     res : Standard_Complex_Vectors.Vector(1..dim);
        !            42:     cnt : natural := 0;
        !            43:
        !            44:   begin
        !            45:     for i in plamat'range(1) loop
        !            46:       for j in plamat'range(2) loop
        !            47:         cnt := cnt + 1;
        !            48:         res(cnt) := plamat(i,j);
        !            49:       end loop;
        !            50:     end loop;
        !            51:     return res;
        !            52:   end Vector_Rep;
        !            53:
        !            54:   function Vector_Rep ( locmap : Standard_Natural_Matrices.Matrix;
        !            55:                         plamat : Standard_Complex_Matrices.Matrix )
        !            56:                       return Standard_Complex_Vectors.Vector is
        !            57:
        !            58:     dim : constant natural := plamat'length(1)*plamat'length(2);
        !            59:     res : Standard_Complex_Vectors.Vector(1..dim);
        !            60:     cnt : natural := 0;
        !            61:
        !            62:   begin
        !            63:     for i in plamat'range(1) loop
        !            64:       for j in plamat'range(2) loop
        !            65:         if locmap(i,j) = 2
        !            66:          then cnt := cnt + 1;
        !            67:               res(cnt) := plamat(i,j);
        !            68:         end if;
        !            69:       end loop;
        !            70:     end loop;
        !            71:     return res(1..cnt);
        !            72:   end Vector_Rep;
        !            73:
        !            74:   function Matrix_Rep ( locmap : Standard_Natural_Matrices.Matrix;
        !            75:                         plavec : Standard_Complex_Vectors.Vector )
        !            76:                       return Standard_Complex_Matrices.Matrix is
        !            77:
        !            78:     res : Standard_Complex_Matrices.Matrix(locmap'range(1),locmap'range(2));
        !            79:     cnt : natural := 0;
        !            80:
        !            81:   begin
        !            82:     for i in locmap'range(1) loop
        !            83:       for j in locmap'range(2) loop
        !            84:         if locmap(i,j) = 0
        !            85:          then res(i,j) := Create(0.0);
        !            86:          elsif locmap(i,j) = 1
        !            87:              then res(i,j) := Create(1.0);
        !            88:              else cnt := cnt + 1;
        !            89:                   res(i,j) := plavec(cnt);
        !            90:         end if;
        !            91:       end loop;
        !            92:     end loop;
        !            93:     return res;
        !            94:   end Matrix_Rep;
        !            95:
        !            96: end Plane_Representations;

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