[BACK]Return to generic_polynomial_systems.ads CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / PHC / Ada / Math_Lib / Polynomials

File: [local] / OpenXM_contrib / PHC / Ada / Math_Lib / Polynomials / generic_polynomial_systems.ads (download)

Revision 1.1, Sun Oct 29 17:45:26 2000 UTC (23 years, 8 months ago) by maekawa
Branch point for: MAIN

Initial revision

with Abstract_Ring;
with Generic_Polynomials;

generic

  with package Ring is new Abstract_Ring(<>);
  with package Polynomials is new Generic_Polynomials(Ring);

package Generic_Polynomial_Systems is 

-- DESCRIPTION :
--   This package provides polynomial systems as an array of polynomials
--   with some arithmetic operations.

  use Ring,Polynomials;

-- DATA STRUCTURES :

  type Poly_Sys is array ( integer range <> ) of Poly;
  type Link_to_Poly_Sys is access Poly_Sys;

-- COPYING :

  procedure Copy ( p : in Poly_Sys; q : in out Poly_Sys );

-- ARITHMETIC OPERATIONS :

  function "+" ( p,q : Poly_Sys ) return Poly_Sys;            -- return p+q
  function "-" ( p,q : Poly_Sys ) return Poly_Sys;            -- return p-q
  function "-" ( p : Poly_Sys ) return Poly_Sys;              -- return -p
  function "*" ( a : number; p : Poly_Sys ) return Poly_Sys;  -- return a*p
  function "*" ( p : Poly_Sys; a : number) return Poly_Sys;   -- return p*a

  procedure Add ( p : in out Poly_Sys; q : in Poly_Sys );     -- p := p+q
  procedure Sub ( p : in out Poly_Sys; q : in Poly_Sys );     -- p := p-q
  procedure Min ( p : in out Poly_Sys );                      -- p := -p
  procedure Mul ( p : in out Poly_Sys; a : in number );       -- p := a*p

-- DIFFERENTIATORS :

  function  Diff ( p : Poly_Sys; i : natural ) return Poly_Sys;
  procedure Diff ( p : in out Poly_Sys; i : in natural );

-- DESTRUCTORS :

  procedure Clear ( p : in out Poly_Sys );
  procedure Clear ( p : in out Link_to_Poly_Sys );

end Generic_Polynomial_Systems;