hypser.c
来自「可以用于科学计算的库」· C语言 代码 · 共 35 行
C
35 行
#include "complex.h"
#define ONE Complex(1.0,0.0)
void hypser(fcomplex a, fcomplex b, fcomplex c, fcomplex z, fcomplex *series,
fcomplex *deriv)
{
void nrerror(char error_text[]);
int n;
fcomplex aa,bb,cc,fac,temp;
deriv->r=0.0;
deriv->i=0.0;
fac=Complex(1.0,0.0);
temp=fac;
aa=a;
bb=b;
cc=c;
for (n=1;n<=1000;n++) {
fac=Cmul(fac,Cdiv(Cmul(aa,bb),cc));
deriv->r+=fac.r;
deriv->i+=fac.i;
fac=Cmul(fac,RCmul(1.0/n,z));
*series=Cadd(temp,fac);
if (series->r == temp.r && series->i == temp.i) return;
temp= *series;
aa=Cadd(aa,ONE);
bb=Cadd(bb,ONE);
cc=Cadd(cc,ONE);
}
nrerror("convergence failure in hypser");
}
#undef ONE
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?