/* test gsl cubic */
#include <stdio.h>

#include <gsl/gsl_poly.h>
#include <gsl/gsl_complex.h>
#include <gsl/gsl_ieee_utils.h>
#include <gsl/gsl_math.h>


int main() { 

   double a  =-0.00578907334131884;
   double b = 6.0644444313854261e-13;
   double c = -1.953265039715366e-23;

   gsl_complex z0;
   gsl_complex z1;
   gsl_complex z2;

   int iret = gsl_poly_complex_solve_cubic (a, b, c, &z0, &z1, &z2);
   printf( " iret = %d \n",iret);
   printf( " z0 =  %+.18f  ,  %+.18f \n", GSL_REAL(z0), GSL_IMAG(z0) );
   printf( " z1 =  %+.18f  ,  %+.18f \n", GSL_REAL(z1), GSL_IMAG(z1) );
   printf( " z2 =  %+.18f  ,  %+.18f \n", GSL_REAL(z2), GSL_IMAG(z2) );
   


   double x0,x1,x2 = 0;
   iret = gsl_poly_solve_cubic (a, b, c, &x0, &x1, &x2);
   printf("real solutions %d \n",iret); 
   printf( " x0 =  %+.18f   \n", x0); 
   printf( " x1 =  %+.18f   \n", x1);
   printf( " x2 =  %+.18f   \n", x2);

}
