20 lines
331 B
C
20 lines
331 B
C
|
|
void ddpoly(float c[], int nc, float x, float pd[], int nd)
|
|
{
|
|
int nnd,j,i;
|
|
float cnst=1.0;
|
|
|
|
pd[0]=c[nc];
|
|
for (j=1;j<=nd;j++) pd[j]=0.0;
|
|
for (i=nc-1;i>=0;i--) {
|
|
nnd=(nd < (nc-i) ? nd : nc-i);
|
|
for (j=nnd;j>=1;j--)
|
|
pd[j]=pd[j]*x+pd[j-1];
|
|
pd[0]=pd[0]*x+c[i];
|
|
}
|
|
for (i=2;i<=nd;i++) {
|
|
cnst *= i;
|
|
pd[i] *= cnst;
|
|
}
|
|
}
|