solve_poly_root.h

00001 #ifndef _SOLVE_POLY_ROOT_H
00002 #define _SOLVE_POLY_ROOT_H
00003 
00004 /*
00005 #include <stdio.h>
00006 */
00007 #include <stdlib.h>
00008 #include <math.h>
00009 #include <stdlib.h>
00010 #include <cpl.h>
00011 /*
00012 #include "eclipse.h"
00013 */
00014 
00015 /* C-style matrix elements */
00016 #define MAT(m,i,j,n) ((m)[(i)*(n) + (j)])
00017 
00018 /* Fortran-style matrix elements */
00019 #define FMAT(m,i,j,n) ((m)[((i)-1)*(n) + ((j)-1)])
00020 
00021 
00022 #undef __BEGIN_DECLS
00023 #undef __END_DECLS
00024 #ifdef __cplusplus
00025 # define __BEGIN_DECLS extern "C" {
00026 # define __END_DECLS }
00027 #else
00028 # define __BEGIN_DECLS /* empty */
00029 # define __END_DECLS /* empty */
00030 #endif
00031 
00032 typedef double *       gsl_complex_packed_ptr ;
00033 
00034 void balance_companion_matrix (double *m, size_t nc);
00035 int qr_companion (double *h, size_t nc, gsl_complex_packed_ptr z);
00036 void set_companion_matrix (const double *a, size_t n, double *m);
00037 
00038 __BEGIN_DECLS
00039 
00040 /* Solve for the complex roots of a general real polynomial */
00041 
00042 typedef struct 
00043 { 
00044   size_t nc ;
00045   double * matrix ; 
00046 } 
00047 gsl_poly_complex_workspace ;
00048 
00049 gsl_poly_complex_workspace * gsl_poly_complex_workspace_alloc (size_t n);
00050 void gsl_poly_complex_workspace_free (gsl_poly_complex_workspace * w);
00051 
00052 int
00053 gsl_poly_complex_solve (const double * a, size_t n, 
00054                         gsl_poly_complex_workspace * w,
00055                         gsl_complex_packed_ptr z);
00056             
00057             
00058 
00059 __END_DECLS
00060 
00061 #endif /* __SOLVE_POLY_ROOT_H */

Generated on Wed Oct 26 13:08:55 2005 for SINFONI Pipeline Reference Manual by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001