Annotation of OpenXM_contrib/PHC/Ada/Math_Lib/Polynomials/multprec_complex_polynomials_io.ads, Revision 1.1
1.1 ! maekawa 1: with text_io; use text_io;
! 2: with Multprec_Complex_Polynomials; use Multprec_Complex_Polynomials;
! 3:
! 4: package Multprec_Complex_Polynomials_io is
! 5:
! 6: -- DESCRIPTION :
! 7: -- This package contains routines for the input and output of
! 8: -- multi-precision complex multivariate polynomials in symbolic form.
! 9:
! 10: -- EXAMPLES : i denotes sqrt(-1)
! 11: -- ex1 : x**2*y + 1/2*z*y**2 - 2*z + y**3 + x - 1E9/-8.E-6* y + 3;
! 12: -- ex2 : x^2*y + z*y^2 - 2*z + y^3 + x - y + 3;
! 13: -- ex3 : (1.01 + 2.8*i)*x1**2*x2 + x3**2*x1 - 3*x1 + 2*x2*x3 - 3;
! 14: -- ex4 : (x1^2*x2 + x3^2*x1 - 3*x1 + 2*x2*x3 - 3)*x2**2*(x2-1+i);
! 15:
! 16: -- DATASTRUCTURE AND CONSTANT NEEDED :
! 17:
! 18: type Power is ('*','^');
! 19: delimiter : constant character := ';';
! 20:
! 21: -- EXCEPTIONS :
! 22:
! 23: ILLEGAL_CHARACTER : exception;
! 24: -- occurs when a character is found unexpected to be
! 25:
! 26: ILLEGAL_SYMBOL : exception;
! 27: -- occurs when an illegal symbol is read
! 28:
! 29: ILLEGAL_OPERATION : exception;
! 30: -- occurs when one tries to perform illegal operations with
! 31: -- polynomials
! 32:
! 33: INFINITE_NUMBER : exception;
! 34: -- occurs when a rational coefficient has a denominator = 0
! 35:
! 36: OVERFLOW_OF_UNKNOWNS : exception;
! 37: -- occurs when the number of unknowns turns to be bigger
! 38: -- than first was mentioned
! 39:
! 40: BAD_BRACKET : exception;
! 41: -- occurs when a bracket, like '(' or ')' is misplaced
! 42:
! 43: -- THE INPUT OPERATIONS :
! 44:
! 45: procedure get ( n : in out natural; p : in out Poly );
! 46: procedure get ( file : in file_type; n : in out natural; p : in out Poly );
! 47: procedure get ( p : in out Poly );
! 48: procedure get ( file : in file_type; p : in out Poly );
! 49:
! 50: -- DESCRIPTION :
! 51: -- A polynomial will be read from file or standard input.
! 52: -- No ordening on the monomials is assumed.
! 53:
! 54: -- REQUIRED :
! 55: -- * all unknows must begin with a letter and may have
! 56: -- no symbols like '+', '-', '*', '^', '/', ';' or brackets in them,
! 57: -- i = sqrt(-1) is reserved for complex numbers representation;
! 58: -- * each symbol is limited to 3 characters;
! 59: -- * the input is terminated by the delimiter;
! 60: -- * no blanks may occur in the numbers;
! 61: -- * if specified, then the file must already be opened for input.
! 62:
! 63: -- NOTE :
! 64: -- The end_of_line symbol is not read.
! 65:
! 66: -- ON ENTRY :
! 67: -- file file where the input is,
! 68: -- if not specified, then standard input is assumed;
! 69: -- n the number of unknowns,
! 70: -- if specified, then n will first be read, otherwise it is
! 71: -- is assumed that the symbol table is already initialized.
! 72:
! 73: -- ON RETURN :
! 74: -- p a polynomial in n unknowns.
! 75:
! 76: -- THE OUTPUT OPERATIONS :
! 77:
! 78: procedure put ( p : in Poly; pow : in Power );
! 79: procedure put ( file : in file_type; p : in Poly; pow : in Power );
! 80: procedure put ( n : in natural; p : in Poly; pow : in Power );
! 81: procedure put ( file : in file_type;
! 82: n : in natural; p : in Poly; pow : in Power );
! 83: procedure put ( p : in Poly );
! 84: procedure put ( file : in file_type; p : in Poly );
! 85:
! 86: -- DESCRIPTION :
! 87: -- A polynomial in n unknowns is written on file or on standard output.
! 88:
! 89: -- REQUIRED :
! 90: -- If specified, then the file is must already been opened for output.
! 91:
! 92: -- ON ENTRY :
! 93: -- file file where the output must come,
! 94: -- if not specified, then standard output is assumed;
! 95: -- p a polynomial in n unknows;
! 96: -- pow kind of power symbol used, the default is '*'.
! 97:
! 98: -- ON RETURN :
! 99: -- n the number of unknows of p,
! 100: -- if specified, n will first be written.
! 101:
! 102: procedure put_line ( p : in Poly );
! 103: procedure put_line ( file : in file_type; p : in Poly );
! 104: procedure put_line ( p : in Poly; pow : in Power );
! 105: procedure put_line ( file : in file_type; p : in Poly; pow : in Power );
! 106:
! 107: -- DESCRIPTION :
! 108: -- Every term of the polynomial p will be written on a separate line.
! 109: -- This is useful for polynomials with random complex coefficients.
! 110:
! 111: procedure Display_Format;
! 112:
! 113: -- DESCRIPTION :
! 114: -- Displays on screen the formatting rules as on-line help facility.
! 115:
! 116: end Multprec_Complex_Polynomials_io;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>