-- GENERIC_COMPLEX_ELEMENTARY_FUNCTIONS specification -- --Copyright (C) 1993 Free Software Foundation --written by Jon Squire with assistance from many others -- --This file is part of the an Ada numerics library. This library --is free software; you can redistribute it and/or modify it under the --terms of the GNU Library General Public License as published by the Free --Software Foundation; either version 2 of the License, or (at your --option) any later version. This library is distributed in the hope --that it will be useful, but WITHOUT ANY WARRANTY; without even the --implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR --PURPOSE. See the GNU Library General Public License for more details. --You should have received a copy of the GNU Library General Public --License along with this library; if not, write to the Free Software --Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. -- with ELEMENTARY_FUNCTIONS_EXCEPTIONS; generic type REAL is digits <>; type COMPLEX is private; type IMAGINARY is private; with function RE (X : COMPLEX) return REAL is <>; with function IM (X : COMPLEX) return REAL is <>; with function IM (X : IMAGINARY) return REAL is <>; with procedure SET_RE (X : in out COMPLEX; RE : REAL) is <>; with procedure SET_IM (X : in out COMPLEX; IM : REAL) is <>; with function COMPOSE_FROM_CARTESIAN (RE, IM : REAL) return COMPLEX is <>; with function MODULUS (X : COMPLEX) return REAL is <>; with function "-" (RIGHT : COMPLEX) return COMPLEX is <>; with function "+" (LEFT, RIGHT : COMPLEX) return COMPLEX is <>; with function "-" (LEFT, RIGHT : COMPLEX) return COMPLEX is <>; with function "*" (LEFT, RIGHT : COMPLEX) return COMPLEX is <>; with function "/" (LEFT, RIGHT : COMPLEX) return COMPLEX is <>; with function "+" (LEFT : REAL; RIGHT : COMPLEX) return COMPLEX is <>; with function "-" (LEFT : REAL; RIGHT : COMPLEX) return COMPLEX is <>; with function "-" (LEFT : COMPLEX; RIGHT : REAL) return COMPLEX is <>; with function "*" (LEFT : REAL; RIGHT : COMPLEX) return COMPLEX is <>; with function "/" (LEFT : COMPLEX; RIGHT : REAL) return COMPLEX is <>; package GENERIC_COMPLEX_ELEMENTARY_FUNCTIONS is function SQRT (X : COMPLEX) return COMPLEX; function LOG (X : COMPLEX) return COMPLEX; function EXP (X : COMPLEX) return COMPLEX; function EXP (X : IMAGINARY) return COMPLEX; function "**" (LEFT, RIGHT : COMPLEX) return COMPLEX; function "**" (LEFT : COMPLEX; RIGHT : REAL) return COMPLEX; function "**" (LEFT : REAL; RIGHT : COMPLEX) return COMPLEX; function SIN (X : COMPLEX) return COMPLEX; function COS (X : COMPLEX) return COMPLEX; function TAN (X : COMPLEX) return COMPLEX; function COT (X : COMPLEX) return COMPLEX; function ARCSIN (X : COMPLEX) return COMPLEX; function ARCCOS (X : COMPLEX) return COMPLEX; function ARCTAN (X : COMPLEX) return COMPLEX; function ARCCOT (X : COMPLEX) return COMPLEX; function SINH (X : COMPLEX) return COMPLEX; function COSH (X : COMPLEX) return COMPLEX; function TANH (X : COMPLEX) return COMPLEX; function COTH (X : COMPLEX) return COMPLEX; function ARCSINH (X : COMPLEX) return COMPLEX; function ARCCOSH (X : COMPLEX) return COMPLEX; function ARCTANH (X : COMPLEX) return COMPLEX; function ARCCOTH (X : COMPLEX) return COMPLEX; -- EXCEPTIONS -- ARGUMENT_ERROR : exception renames ELEMENTARY_FUNCTIONS_EXCEPTIONS.ARGUMENT_ERROR; end GENERIC_COMPLEX_ELEMENTARY_FUNCTIONS;