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

📄 pi.h

📁 calc大数库
💻 H
字号:
/* pI.h */
#include "integer.h"

#ifndef __PI_H__
#define __PI_H__

POLYI CREATEPI();
/*
If there is anything in BANKI (the memory bank of TERMI's) then use that,
otherwise allocate a new one.
*/

int DEGREEPI(POLYI Pptr);
/*
 * returns the degree of the polynomial Pptr.
 */

MPI *LEADPI(POLYI Pptr);
/*
 * *Aptr is the  leading coefficient of the polynomial Pptr.
 */

void DELETEPI(POLYI Pptr);
/*
 * returns back to the system storage dynamically allocated to the linked list
 * which Pptr points to.
 */

void PINSERTPI(int DEG, MPI *COEF, POLYI *Pptr, USI OPT);
/*
 * inserts a copy of a single term *Qptr into polynomial *Pptr.  It
 * has two options that control the insertion in case a term of *Pptr
 * already has the degree of *Qptr, If OPT = 0, then the term is
 * replaced; if OPT = 1, then the coefficient of *Qptr is added to
 * that of the corresponding term of *Pptr.  */


void PURGEPI(POLYI *Pptr);
/*
 * gets rid of any zero coefficients in the polynomial Pptr.
 */

POLYI COPYPI(POLYI Pptr);
/*
 * makes a copy of the polynomial Pptr.
 */
 
void FPRINTPI(FILE *outfile, POLYI Pptr);
void PRINTPI(POLYI Pptr);
/*
 * outputs the terms of the polynomial Pptr.
 */



POLYI SCALARPI(MPI *Cptr, POLYI Pptr);
/*
 * multiplying the polynomial Pptr by the MPI *Cptr.
 */


POLYI ADDPI(POLYI Pptr, POLYI Qptr);
/*
 * returns the sum of two polynomials.
 */


POLYI SUBPI(POLYI Pptr, POLYI Qptr);
/*
 * returns the difference Pptr - Qptr of two polynomials.
 */


POLYI MULTPI(POLYI Pptr, POLYI Qptr);
/*
 * returns the product of two polynomials.
 */


MPI *VALPI(POLYI Pptr, MPI *Cptr);
/*
 * Evaluating the polynomial Pptr at the MPI *Cptr.
 */


POLYI DIVPI(POLYI Fptr, POLYI Gptr);
/*
 * Pseudo-division of polynomials: see Knuth, Vol 2, p.407 
 * and H. Flanders, Scientific Pascal, p.510.
 */


POLYI MODPI(POLYI Fptr, POLYI Gptr);
/*
 * Pseudo-division of polynomials: see Knuth, Vol 2, p.407 
 * and H. Flanders, Scientific Pascal, p.510.
 */


MPI *CONTENTPI(POLYI Pptr);
/*
 * *Cptr is the content of the polynomial Pptr.
 */
MPI *CONTENTPI2(POLYI Pptr);


POLYI PRIMITIVEPI(POLYI Pptr);
/*
 * returns the primitive part of the polynomial Pptr.
 */


POLYI GCDPI(POLYI Pptr, POLYI Qptr);
/*
 * returns the gcd of polynomials Pptr and Qptr.
 * see Knuth, Vol 2, p.403-408 and H. Flanders, Scientific Pascal, p.510.
 */


POLYI DERIVPI(POLYI Pptr);
/*
 * returns the derivative of a polynomial.
 */


POLYI *SQUAREFREEPI(POLYI Pptr, USI **D, USI *tptr);
/*
 * returns the "squarefree decomposition" of Pptr, a non-constant polynomial:
 * Pptr = G[0]^D[0]...G[*tpr - 1]^D[*tptr - 1],
 * where G[i] is squarefree and is the product of the irreducible factors of
 * multiplicity D[i]. See L. Childs, Introduction to Higher Algebra, p.159.
 */


POLYI POWERPI(POLYI Pptr, USI n);
/*
 * returns Pptr ^ n, where 0 <= n < R0 * R0.
 */


POLYI ONEPI();
/*
 * returns the constant polynomial 1.
 */
POLYI ZEROPI();

POLYI CONSTANTPI(MPI *Aptr);
/*
 * returns the constant polynomial whose constant term is *Aptr.
 */


MPI *SUBRESULTANT(POLYI Pptr, POLYI Qptr);
/*
 * *Aptr is the resultant of Pptr and Qptr, found using the subresultant
 * algorithm, p. 130. E. Kaltofen, G. E. Collins etc, Algoritm 4.5.
 * similar to Knuth, Algorithm C, p. 410.
 */


MPI *DISCRIMINANTPI(POLYI Pptr);
/*
 * *Dptr = Discriminant of Pptr = (1/a[n])*(-1)^{n*(n-1)/2 * Res(Pptr, Pptr').
 * See O. Perron, Algebra, Vol 1, p.212.
 */


MPI *LENGTHSQPI(POLYI Pptr);
/*
 * *Cptr is the sum of the squares of the coefficients of Pptr.
 */


MPI *VAL0PI(POLYI Pptr);
/*
 * *Mptr = Pptr(0)
 */

/* Returns respectively positive, or negative if the sign of the polynomial 
 * evaluated at the supplied rational number is positive or negative.
 * Returns zero if polynomial has a root at the supplied rational */
int SIGN_AT_R_PI(POLYI P, MPR *R);

/* If P = p(x) then this function returns p(-x) */
POLYI P_OF_NEG_X(POLYI P);

/* Returns -1*P(x) */
POLYI MINUSPI(POLYI P);
void P_OF_X_PLUS(POLYI *P, MPI *A);

#endif

⌨️ 快捷键说明

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