⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 roots.h

📁 calc大数库
💻 H
字号:

#ifndef __ROOTS_H__
#define __ROOTS_H__
#include "integer.h"
#include "stack.h"



typedef struct _Interval {
  MPR *left;
  MPR *right;
} *Interval;

/* Returns a newly created Interval if there is enough memory.  
 * Returns NULL on error.
 */
Interval createInterval(MPR* left, MPR *right);

/* Frees an interval previously created with createInterval 
 * Undefined behaviour occurs if 'intvl' this is not true. 
 */ 
void freeInterval(Interval intvl);

/*
 * Calculates an upperbound on the positve roots of the supplied polynomial
 * using Cauchy's Rule. See Akritas, Elements of Computer Algebra.
 */
MPR *CAUCHY(POLYI P);

/* Using a bisection method this finds the integer part root of the
 * supplied polynomial in the supplied _OPEN_ interval.  This function is
 * only guaranteed to return the correct value if the interval
 * supplied contains exactly one root, and this root does not fall at the
 * end points. */
MPI *rootInIntervalI(POLYI P, MPI *LEFT, MPI *RIGHT);
/* Using a bisection method this finds the integer part root of the
 * supplied polynomial in the supplied _OPEN_ interval.  This function is
 * only guaranteed to return the correct value if the interval
 * supplied contains exactly one root, and this root does not fall at the
 * end points. */
MPI *rootInIntervalR(POLYI P, MPR *LEFT, MPR *RIGHT);


/* A wrapper function that takes a single polynomial as its argument.
 * (Handled by parser).  Returns open rational intervals that are
 * guaranteed to enclose the real roots of the supplied polynomial.
 */
void STURM_W(Stack s);

/* Finds the continued fraction expansion of all real roots of the supplied
 * polynomial using Lagrange's method and methods first presented in a paper
 * by Cantor, Galyean and Zimmer called A Continued Fraction Algorithm for
 * Real Algebraic Number 
 */
void ROOTEXPANSION(Stack s);


#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -