add numerical recipes library
This commit is contained in:
20
lib/nr/ansi/recipes/evlmem.c
Normal file
20
lib/nr/ansi/recipes/evlmem.c
Normal file
@@ -0,0 +1,20 @@
|
||||
|
||||
#include <math.h>
|
||||
|
||||
float evlmem(float fdt, float d[], int m, float xms)
|
||||
{
|
||||
int i;
|
||||
float sumr=1.0,sumi=0.0;
|
||||
double wr=1.0,wi=0.0,wpr,wpi,wtemp,theta;
|
||||
|
||||
theta=6.28318530717959*fdt;
|
||||
wpr=cos(theta);
|
||||
wpi=sin(theta);
|
||||
for (i=1;i<=m;i++) {
|
||||
wr=(wtemp=wr)*wpr-wi*wpi;
|
||||
wi=wi*wpr+wtemp*wpi;
|
||||
sumr -= d[i]*wr;
|
||||
sumi -= d[i]*wi;
|
||||
}
|
||||
return xms/(sumr*sumr+sumi*sumi);
|
||||
}
|
||||
Reference in New Issue
Block a user