sinfo_companion.c

00001 /*
00002  * This file is part of the ESO SINFONI Pipeline
00003  * Copyright (C) 2004,2005 European Southern Observatory
00004  *
00005  * This program is free software; you can redistribute it and/or modify
00006  * it under the terms of the GNU General Public License as published by
00007  * the Free Software Foundation; either version 2 of the License, or
00008  * (at your option) any later version.
00009  *
00010  * This program is distributed in the hope that it will be useful,
00011  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00012  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013  * GNU General Public License for more details.
00014  *
00015  * You should have received a copy of the GNU General Public License
00016  * along with this program; if not, write to the Free Software
00017  * Foundation, 51 Franklin St, Fifth Floor, Boston, MA  02111-1307  USA
00018  */
00019 #ifdef HAVE_CONFIG_H
00020 #  include <config.h>
00021 #endif
00022 #include "sinfo_solve_poly_root.h"
00023 
00039 void
00040 sinfo_set_companion_matrix (const double *a, size_t nc, double *m)
00041 {
00042   size_t i, j;
00043 
00044   for (i = 0; i < nc; i++)
00045     for (j = 0; j < nc; j++)
00046       MAT (m, i, j, nc) = 0.0;
00047 
00048   for (i = 1; i < nc; i++)
00049     MAT (m, i, i - 1, nc) = 1.0;
00050 
00051   for (i = 0; i < nc; i++)
00052     MAT (m, i, nc - 1, nc) = -a[i] / a[nc];
00053 }

Generated on 8 Mar 2011 for SINFONI Pipeline Reference Manual by  doxygen 1.6.1