~ubuntu-branches/debian/jessie/eso-midas/jessie

« back to all changes in this revision

Viewing changes to stdred/echelle/libsrc/gauss_fit.c

  • Committer: Package Import Robot
  • Author(s): Ole Streicher
  • Date: 2014-04-22 14:44:58 UTC
  • Revision ID: package-import@ubuntu.com-20140422144458-okiwi1assxkkiz39
Tags: upstream-13.09pl1.2+dfsg
ImportĀ upstreamĀ versionĀ 13.09pl1.2+dfsg

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* GAUSS FIT
 
2
   uses: nonlfit.c
 
3
   need: mrqmin.c, gaussj.c covsrt.c
 
4
 
 
5
.VERSION
 
6
 090723         last modif
 
7
 
 
8
*/
 
9
 
 
10
 
 
11
#include <math.h>
 
12
 
 
13
extern int non_lfit();
 
14
 
 
15
 
 
16
 
 
17
void fgauss_c(x,a,y,dyda)
 
18
float x,a[5],*y,dyda[5];
 
19
{
 
20
  double fac,ex,arg;
 
21
 
 
22
  *y=0.0;
 
23
  arg=(x-a[2])/a[3];
 
24
  ex=exp(-arg*arg);
 
25
  fac=a[1]*ex*2.0*arg;
 
26
  *y = a[1]*ex + a[4];
 
27
  dyda[1]=ex;
 
28
  dyda[2]=fac/a[3];
 
29
  dyda[3]=fac*arg/a[3];
 
30
  dyda[4]=1.0;
 
31
}
 
32
 
 
33
 
 
34
 
 
35
void gauss_fit(y,sig,ndata,param,npar,istat)
 
36
float *y, *sig, *param;
 
37
int   ndata, npar, *istat;
 
38
{
 
39
  int   listp[4], i;
 
40
 
 
41
  for (i=0;i<4;i++) listp[i] = i+1;
 
42
  *istat = non_lfit(y,sig,ndata,param,npar,listp-1,4,fgauss_c);
 
43
}
 
44
 
 
45
 
 
46
/* necessary for FORTRAN call in MIDAS */
 
47
/* CALL GAUSS_FIT(...) */
 
48
/* esoext.exe will interpret this call as GAUSST !! */
 
49
int gausst_(y,sig,ndata,param,npar,istat)
 
50
float *y, *sig, *param;
 
51
int   *ndata, *npar, *istat;
 
52
{
 
53
  gauss_fit(y-1,sig-1,*ndata,param-1,*npar,istat);
 
54
  return 0;
 
55
}
 
56
 
 
57
 
 
58
int gausst(y,sig,ndata,param,npar,istat)
 
59
float *y, *sig, *param;
 
60
int   *ndata, *npar, *istat;
 
61
{
 
62
  gauss_fit(y-1,sig-1,*ndata,param-1,*npar,istat);
 
63
  return 0;
 
64
}
 
65
 
 
66