Annotation of OpenXM_contrib/PHC/Ada/Math_Lib/Polynomials/matrix_indeterminates.adb, Revision 1.1
1.1 ! maekawa 1: with Characters_and_Numbers; use Characters_and_Numbers;
! 2: with Standard_Complex_Numbers; use Standard_Complex_Numbers;
! 3: with Standard_Natural_Vectors;
! 4:
! 5: package body Matrix_Indeterminates is
! 6:
! 7: procedure Initialize_Symbols ( n,d : in natural ) is
! 8: begin
! 9: Symbol_Table.Init(n*d);
! 10: for i in 1..n loop
! 11: for j in 1..d loop
! 12: declare
! 13: s : Symbol := X_ij(i,j);
! 14: begin
! 15: Symbol_Table.Add(s);
! 16: end;
! 17: end loop;
! 18: end loop;
! 19: end Initialize_Symbols;
! 20:
! 21: function X_ij ( i,j : natural ) return Symbol is
! 22:
! 23: res : Symbol;
! 24:
! 25: begin
! 26: res(1) := 'x';
! 27: res(2) := Convert_Hexadecimal(i);
! 28: res(3) := Convert_Hexadecimal(j);
! 29: for i in 4..res'last loop
! 30: res(i) := ' ';
! 31: end loop;
! 32: return res;
! 33: end X_ij;
! 34:
! 35: function Monomial ( n,d,i,j : natural ) return Poly is
! 36:
! 37: res : Poly;
! 38: t : Term;
! 39:
! 40: begin
! 41: t.cf := Create(1.0);
! 42: t.dg := new Standard_Natural_Vectors.Vector'(1..n*d => 0);
! 43: t.dg((i-1)*d+j) := 1;
! 44: res := Create(t);
! 45: Clear(t.dg);
! 46: return res;
! 47: end Monomial;
! 48:
! 49: procedure Reduce_Symbols ( locmap : in Matrix ) is
! 50:
! 51: d : constant natural := locmap'length(2);
! 52:
! 53: begin
! 54: for i in reverse locmap'range(1) loop
! 55: for j in reverse locmap'range(2) loop
! 56: if locmap(i,j) /= 2
! 57: then Symbol_Table.Remove(X_ij(i,j));
! 58: end if;
! 59: end loop;
! 60: end loop;
! 61: end Reduce_Symbols;
! 62:
! 63: procedure Clear_Symbols is
! 64: begin
! 65: Symbol_Table.Clear;
! 66: end Clear_Symbols;
! 67:
! 68: end Matrix_Indeterminates;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>