00001 #include "solve_poly_root.h"
00002
00003
00004 void
00005 set_companion_matrix (const double *a, size_t nc, double *m)
00006 {
00007 size_t i, j;
00008
00009 for (i = 0; i < nc; i++)
00010 for (j = 0; j < nc; j++)
00011 MAT (m, i, j, nc) = 0.0;
00012
00013 for (i = 1; i < nc; i++)
00014 MAT (m, i, i - 1, nc) = 1.0;
00015
00016 for (i = 0; i < nc; i++)
00017 MAT (m, i, nc - 1, nc) = -a[i] / a[nc];
00018 }
1.2.13.1 written by Dimitri van Heesch,
© 1997-2001