00001 #ifndef __ZROOTS_HPP 00002 #define __ZROOTS_HPP 00003 00004 /**********************************************************/ 00005 /*/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\*/ 00006 /* 00007 Copyright: 1994 - Grupo de Voz (DAET) ETSII/IT-Bilbao 00008 00009 Nombre fuente................ ZROOTS.HPP 00010 Nombre paquete............... SPL 00011 Lenguaje fuente.............. C++ (Borland C/C++ 3.1) 00012 Estado....................... Completado 00013 Dependencia Hard/OS.......... - 00014 Codigo condicional........... - 00015 00016 Codificacion................. Borja Etxebarria 00017 00018 Version dd/mm/aa Autor Proposito de la edicion 00019 ------- -------- -------- ----------------------- 00020 1.1.1 27/08/95 Borja spltdef.hpp --> spltdef.h 00021 1.1.0 08/12/94 Borja revision general (tipos,idx,nel,tnel...) 00022 1.0.0 06/07/93 Borja Codificacion inicial. 00023 00024 ======================== Contenido ======================== 00025 Cabecera de ZROOTS.CPP. Calculo de raices complejas de 00026 polinomios complejos (metodo de Laguerre). 00027 00028 Definicion de diversas constantes y codigos necesarios. 00029 =========================================================== 00030 */ 00031 /*/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\*/ 00032 /**********************************************************/ 00033 00034 #ifndef __cplusplus 00035 #error Must use C++ compiler 00036 #endif 00037 00038 /**********************************************************/ 00039 00040 #include "spltdef.h" 00041 00042 /**********************************************************/ 00043 // codigos de error de retorno 00044 #define ZROOTS_ERR_NOERR 0 // no hay error 00045 #define ZROOTS_ERR_ITEROUT -1 // demasiadas iteraciones 00046 #define ZROOTS_ERR_NOMEM -2 // no hay memoria (no utilizado) 00047 00048 // valores tipicos de tolerancia y numero de iteraciones 00049 #define ZROOTS_TOL 1e-6 00050 #define ZROOTS_MAXITER 300 00051 00052 // valor minimo considerado como cero al evaluar un polinomio 00053 #define ZROOTS_NEARLYZERO 1e-15 00054 00055 /**********************************************************/ 00056 00057 00058 SPL_INT API laguerre( SPL_pCOMPLEX vPoly, SPL_INT & Degree, 00059 SPL_pCOMPLEX vRoots, SPL_INT & NumRoots, 00060 SPL_pCOMPLEX Tmp, 00061 SPL_INT MaxIter = ZROOTS_MAXITER, 00062 SPL_FLOAT Tol = ZROOTS_TOL ); 00063 00064 SPL_INT API tnel_laguerre( SPL_INT Degree ); 00065 00066 /**********************************************************/ 00067 00068 #endif 00069