Annotation of OpenXM_contrib/PHC/Ada/Math_Lib/Numbers/generic_complex_numbers.ads, Revision 1.1
1.1 ! maekawa 1: with Abstract_Ring;
! 2: with Abstract_Ring.Field;
! 3:
! 4: generic
! 5:
! 6: with package Ring is new Abstract_Ring(<>);
! 7: with package Field is new Ring.Field(<>);
! 8:
! 9: package Generic_Complex_Numbers is
! 10:
! 11: -- DESCRIPTION :
! 12: -- Offers a Cartesian view on the complex numbers, where the type of the
! 13: -- reals is left for instantiation.
! 14:
! 15: use Ring; use Field;
! 16:
! 17: type Complex_Number is private;
! 18:
! 19: -- CREATORS :
! 20:
! 21: function Create ( i : integer ) return Complex_Number;
! 22: function Create ( f : number ) return Complex_Number;
! 23: function Create ( re,im : number ) return Complex_Number;
! 24: function Conjugate ( c : Complex_Number ) return Complex_Number;
! 25:
! 26: -- SELECTORS :
! 27:
! 28: function REAL_PART ( x : Complex_Number ) return number;
! 29: function IMAG_PART ( x : Complex_Number ) return number;
! 30:
! 31: function AbsVal ( x : Complex_Number ) return number; -- x=a+bi, |x|=|a|+|b|
! 32: function AbsVal ( x : Complex_Number ) return Complex_Number;
! 33:
! 34: -- COMPARISON/COPYING :
! 35:
! 36: function Equal ( x,y : Complex_Number ) return boolean;
! 37: procedure Copy ( x : in Complex_Number; y : in out Complex_Number );
! 38:
! 39: function "<" ( x,y : Complex_Number ) return boolean; -- return |x|<|y|
! 40: function ">" ( x,y : Complex_Number ) return boolean; -- return |x|>|y|
! 41:
! 42: -- ARITHMETHIC OPERATIONS AS FUNCTIONS :
! 43:
! 44: function "+" ( x : Complex_Number; y : number ) return Complex_Number;
! 45: function "-" ( x : Complex_Number; y : number ) return Complex_Number;
! 46: function "*" ( x : Complex_Number; y : number ) return Complex_Number;
! 47: function "/" ( x : Complex_Number; y : number ) return Complex_Number;
! 48:
! 49: function "+" ( x : number; y : Complex_Number ) return Complex_Number;
! 50: function "-" ( x : number; y : Complex_Number ) return Complex_Number;
! 51: function "*" ( x : number; y : Complex_Number ) return Complex_Number;
! 52: function "/" ( x : number; y : Complex_Number ) return Complex_Number;
! 53:
! 54: function "+" ( x,y : Complex_Number ) return Complex_Number;
! 55: function "+" ( x : Complex_Number ) return Complex_Number; -- copies x
! 56: function "-" ( x,y : Complex_Number ) return Complex_Number;
! 57: function "-" ( x : Complex_Number ) return Complex_Number;
! 58: function "*" ( x,y : Complex_Number ) return Complex_Number;
! 59: function "/" ( x,y : Complex_Number ) return Complex_Number;
! 60:
! 61: function "**" ( x : Complex_Number; m : integer ) return Complex_Number;
! 62:
! 63: -- ARITHMETIC OPERATIONS AS PROCEDURES :
! 64:
! 65: procedure Add ( x : in out Complex_Number; y : in number );
! 66: procedure Sub ( x : in out Complex_Number; y : in number );
! 67: procedure Mul ( x : in out Complex_Number; y : in number );
! 68: procedure Div ( x : in out Complex_Number; y : in number );
! 69:
! 70: procedure Add ( x : in out Complex_Number; y : in Complex_Number );
! 71: procedure Sub ( x : in out Complex_Number; y : in Complex_Number );
! 72: procedure Min ( x : in out Complex_Number );
! 73: procedure Mul ( x : in out Complex_Number; y : in Complex_Number );
! 74: procedure Div ( x : in out Complex_Number; y : in Complex_Number );
! 75:
! 76: -- DESTRUCTOR :
! 77:
! 78: procedure Clear ( x : in out Complex_Number );
! 79:
! 80: private
! 81:
! 82: type Complex_Number is
! 83: record
! 84: RE,IM : number;
! 85: end record;
! 86:
! 87: end Generic_Complex_Numbers;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>