Annotation of OpenXM_contrib/PHC/Ada/Schubert/ts_mathom.adb, Revision 1.1
1.1 ! maekawa 1: with text_io,integer_io; use text_io,integer_io;
! 2: with Standard_Complex_Numbers; use Standard_Complex_Numbers;
! 3: with Standard_Complex_Numbers_io; use Standard_Complex_Numbers_io;
! 4: with Standard_Complex_Matrices; use Standard_Complex_Matrices;
! 5: with Standard_Complex_Matrices_io; use Standard_Complex_Matrices_io;
! 6: with Matrix_Homotopies;
! 7:
! 8: procedure ts_mathom is
! 9:
! 10: -- DESCRIPTION :
! 11: -- Test of the package Matrix_Homotopies.
! 12:
! 13: procedure Read is
! 14:
! 15: n,m : natural;
! 16:
! 17: begin
! 18: new_line;
! 19: put_line("Adding a new matrix homotopy");
! 20: new_line;
! 21: put("Give number of rows : "); get(n);
! 22: put("Give number of columns : "); get(m);
! 23: declare
! 24: start,target : Matrix(1..n,1..m);
! 25: begin
! 26: put("Give "); put(n,1); put("x"); put(m,1);
! 27: put_line(" complex matrix as start : "); get(start);
! 28: put("Give "); put(n,1); put("x"); put(m,1);
! 29: put_line(" complex matrix as target : "); get(target);
! 30: Matrix_Homotopies.Add(start,target);
! 31: put_line("Matrix homotopy added...");
! 32: end;
! 33: end Read;
! 34:
! 35: procedure Modify is
! 36:
! 37: k,n,m : natural;
! 38: ans : character;
! 39:
! 40: begin
! 41: new_line;
! 42: put_line("Modifying or adding a matrix homotopy.");
! 43: new_line;
! 44: put("Give the number of the map : "); get(k);
! 45: put("Give number of rows : "); get(n);
! 46: put("Give number of columns : "); get(m);
! 47: declare
! 48: start,target : Matrix(1..n,1..m);
! 49: begin
! 50: put("Do you want to modify the start ? (y/n) "); get(ans);
! 51: if ans = 'y'
! 52: then put("Give "); put(n,1); put("x"); put(m,1);
! 53: put_line(" complex matrix as start : "); get(start);
! 54: Matrix_Homotopies.Add_Start(k,start);
! 55: end if;
! 56: put("Do you want to modify the target ? (y/n) "); get(ans);
! 57: if ans = 'y'
! 58: then put("Give "); put(n,1); put("x"); put(m,1);
! 59: put_line(" complex matrix as target : "); get(target);
! 60: Matrix_Homotopies.Add_Target(k,target);
! 61: end if;
! 62: put_line("Matrix homotopy modified...");
! 63: end;
! 64: end Modify;
! 65:
! 66: procedure Eval is
! 67:
! 68: k : natural;
! 69: t : Complex_Number;
! 70: ans : character;
! 71:
! 72: begin
! 73: new_line;
! 74: put_line("Evaluating a matrix homotopy.");
! 75: new_line;
! 76: loop
! 77: put("Give the number of the map : "); get(k);
! 78: loop
! 79: put("Give the continuation parameter t : "); get(t);
! 80: declare
! 81: eva : constant Matrix := Matrix_Homotopies.Eval(k,t);
! 82: begin
! 83: put_line("The evaluated map : "); put(eva);
! 84: end;
! 85: put("Do you want to evaluate this maps for other values ? (y/n) ");
! 86: get(ans);
! 87: exit when (ans /= 'y');
! 88: end loop;
! 89: put("Do you want to evaluate other maps ? (y/n) "); get(ans);
! 90: exit when (ans /= 'y');
! 91: end loop;
! 92: end Eval;
! 93:
! 94: procedure Main is
! 95:
! 96: nb : natural;
! 97: ans : character;
! 98:
! 99: begin
! 100: new_line;
! 101: put_line("Testing the matrix homotopies.");
! 102: new_line;
! 103: put("Give the number of matrix homotopies : "); get(nb);
! 104: Matrix_Homotopies.Init(nb);
! 105: loop
! 106: new_line;
! 107: put_line("Choose one of the following : ");
! 108: put_line(" 0. Exit this program;");
! 109: put_line(" 1. Read and Add a new matrix homotopy;");
! 110: put_line(" 2. Modify or Add a matrix homotopy;");
! 111: put_line(" 3. Evaluate a matrix homotopy.");
! 112: put("Type 0,1,2 or 3 to make your choice : "); get(ans);
! 113: exit when (ans = '0');
! 114: case ans is
! 115: when '1' => Read;
! 116: when '2' => Modify;
! 117: when '3' => Eval;
! 118: when others => null;
! 119: end case;
! 120: end loop;
! 121: Matrix_Homotopies.Clear;
! 122: end Main;
! 123:
! 124: begin
! 125: Main;
! 126: end ts_mathom;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>