Annotation of OpenXM_contrib/PHC/Ada/Math_Lib/Polynomials/generic_polynomial_functions.ads, Revision 1.1.1.1
1.1 maekawa 1: with Abstract_Ring;
2: with Generic_Vectors;
3: with Generic_Polynomials;
4:
5: generic
6:
7: with package Ring is new Abstract_Ring(<>);
8: with package Vectors is new Generic_Vectors(Ring);
9: with package Polynomials is new Generic_Polynomials(Ring);
10:
11: package Generic_Polynomial_Functions is
12:
13: -- DESCRIPTION :
14: -- Besides the term by term evaluation, two special data structures are
15: -- provided for efficient evaluation of polynomials in several variables.
16:
17: use Ring,Vectors,Polynomials;
18:
19: -- FUNCTION TYPE :
20:
21: type Evaluator is access function ( x : Vector ) return number;
22:
23: -- DATA STRUCTURES :
24:
25: type Eval_Poly is private;
26: type Eval_Coeff_Poly is private;
27:
28: -- CONSTRUCTORS :
29:
30: function Create ( p : Poly ) return Eval_Poly;
31: function Create ( p : Poly ) return Eval_Coeff_Poly;
32:
33: procedure Diff ( p : in Poly; i : in integer;
34: cp : out Eval_Coeff_Poly; m : out Vector );
35: -- evaluable coefficient polynomial of the partial derivative,
36: -- with m the multiplication factors of the coefficients of p
37:
38: function Coeff ( p : Poly ) return Vector; -- returns coefficient vector
39:
40: -- EVALUATORS :
41:
42: function Eval ( p : Poly; x : number; i : integer ) return Poly;
43: -- return p(x1,..,xi=x,..,xn);
44: -- Number_of_Unknowns(Eval(p,x,i)) = Number_of_Unknowns(p)-1
45:
46: function Eval ( d : Degrees; c : number; x : Vector ) return number;
47: -- return c*x**d
48: function Eval ( t : Term; c : number; x : Vector ) return number;
49: -- return c*x**d, with d = t.dg
50: function Eval ( t : Term; x : Vector ) return number;
51:
52: function Eval ( p : Poly; x : Vector ) return number; -- return p(x)
53: function Eval ( p : Poly; c,x : Vector ) return number;
54: -- return p(c,x), with c = vector of coefficients for p
55:
56: function Eval ( p : Eval_Poly; x : Vector ) return number; -- return p(x)
57: function Eval ( p : Eval_Coeff_Poly; c,x : Vector ) return number;
58: -- return p(c,x), with c = vector of coefficients for p
59:
60: -- DESTRUCTORS : deallocate memory.
61:
62: procedure Clear ( p : in out Eval_Poly );
63: procedure Clear ( p : in out Eval_Coeff_Poly );
64:
65: private
66:
67: type Eval_Poly_Rep;
68: type Eval_Coeff_Poly_Rep;
69:
70: type Eval_Poly is access Eval_Poly_Rep;
71: type Eval_Coeff_Poly is access Eval_Coeff_Poly_Rep;
72:
73: end Generic_Polynomial_Functions;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>