------------------------------------------------------------------------------
-- File: complex_polynomial_roots.ads
-- Description: Complex roots of polynomials
-- Date / Version: 01-Jun-2020; 11-Jan-2004; ... ; 10-Jan-2004 ; ...
-- Author: Gautier de Montmollin and (?) : Ada package.
-- References: - Bronstein-Semendjajev,
-- Taschenbuch der Mathematik,
-- Verlag Harri Deutsch, 1966
-- - John M. Gamble, programmation of Ferrari's solution
------------------------------------------------------------------------------
with Ada.Numerics.Generic_Complex_Types;
generic
with package Complex_Types is new Ada.Numerics.Generic_Complex_Types (<>);
package Complex_Polynomial_Roots is
use Complex_Types;
-- Complex_Types Defines the type Complex.
-- The type Real is itself a generic formal of Generic_Complex_Types.
-- Degree 2: Solves a x^2 + b x + c
procedure Solve (a,b,c: Real; r1,r2: out Complex);
procedure Solve (a,b,c: Complex; r1,r2: out Complex);
-- Degree 3: Solves a x^3 + b x^2 + c x + d
procedure Solve (a,b,c,d: Real; r1,r2,r3: out Complex);
-- Degree 4: Solves a x^4 + b x^3 + c x^2 + d x + e
procedure Solve (a,b,c,d,e: Real; r1,r2,r3,r4: out Complex);
dominant_coefficient_a_is_zero: exception;
end Complex_Polynomial_Roots;