25 #include "sinfo_solve_poly_root.h"
35 gsl_poly_complex_workspace *
36 sinfo_gsl_poly_complex_workspace_alloc (
size_t n)
40 gsl_poly_complex_workspace * w ;
48 w = (gsl_poly_complex_workspace *)
49 cpl_malloc (
sizeof(gsl_poly_complex_workspace));
61 w->sinfo_matrix = (
double *) cpl_malloc (nc * nc *
sizeof(
double));
63 if (w->sinfo_matrix == 0)
74 sinfo_gsl_poly_complex_workspace_free (gsl_poly_complex_workspace * w)
76 cpl_free(w->sinfo_matrix) ;
82 sinfo_gsl_poly_complex_solve (
const double *a,
size_t n,
83 gsl_poly_complex_workspace * w,
84 gsl_complex_packed_ptr z)
115 sinfo_set_companion_matrix (a, n - 1, m);
117 sinfo_balance_companion_matrix (m, n - 1);
119 status = sinfo_qr_companion (m, n - 1, z);