| [658] | 1 | /* quelques fonctions mathematiques et constantes utiles */ | 
|---|
|  | 2 | /*                                         cmv  23/06/94 */ | 
|---|
|  | 3 | #ifndef NBMATH_H_SEEN | 
|---|
|  | 4 | #define NBMATH_H_SEEN | 
|---|
|  | 5 |  | 
|---|
|  | 6 | #include "machdefs.h" | 
|---|
|  | 7 |  | 
|---|
|  | 8 | #ifdef __cplusplus | 
|---|
|  | 9 | extern "C" { | 
|---|
|  | 10 | #endif | 
|---|
|  | 11 |  | 
|---|
|  | 12 | /* EA conflit entre les diverses copies de nbmath.h, nbconst.h... A nettoyer... */ | 
|---|
|  | 13 | #undef  Pi | 
|---|
|  | 14 | #undef  Pis2 | 
|---|
|  | 15 | #undef  DeuxPi | 
|---|
|  | 16 | #undef  SPi | 
|---|
|  | 17 | #undef  S2Pi | 
|---|
|  | 18 | #undef  Rac2 | 
|---|
|  | 19 | #undef  Log2 | 
|---|
|  | 20 | #undef  LnPi | 
|---|
|  | 21 | #undef  LgPi | 
|---|
|  | 22 | #undef  Ln10 | 
|---|
|  | 23 | #undef  DftoDm | 
|---|
|  | 24 | #undef  Hln2pi | 
|---|
|  | 25 | #undef  JourSec | 
|---|
|  | 26 | #undef  AnSec | 
|---|
|  | 27 |  | 
|---|
|  | 28 | #undef  GRAND | 
|---|
|  | 29 | #undef  GRAND2 | 
|---|
|  | 30 | #undef  IGRAND | 
|---|
|  | 31 |  | 
|---|
|  | 32 | #define  Pi     (double) ( 3.14159265358979310e+00)  /* c'est Pi */ | 
|---|
|  | 33 | #define  Pis2   (double) (1.57079632679489655)       /* c'est Pi/2 */ | 
|---|
|  | 34 | #define  DeuxPi (double) ( 6.28318530717958620e+00)  /* c'est 2*Pi */ | 
|---|
|  | 35 | #define  SPi    (double) ( 1.77245385090551590e+00)  /* c'est sqrt(Pi) */ | 
|---|
|  | 36 | #define  S2Pi   (double) ( 2.50662827463100020e+00)  /* c'est sqrt(2*Pi) */ | 
|---|
|  | 37 | #define  Rac2   (double) ( 1.41421356237309510e+00)  /* c'est sqrt(2) */ | 
|---|
|  | 38 | #define  Log2   (double) ( 3.01029995663981200e-01)  /* c'est log10(2) */ | 
|---|
|  | 39 | #define  LnPi   (double) ( 1.14472988584940020e+00)  /* c'est ln(Pi) */ | 
|---|
|  | 40 | #define  LgPi   (double) ( 4.97149872694133850e-01)  /* c'est log10(Pi) */ | 
|---|
|  | 41 | #define  Ln10   (double) ( 2.30258509299404590e+00)  /* c'est ln(10) */ | 
|---|
|  | 42 | #define  DftoDm (double) ( 1.08573620475812940e+00)  /* c'est 2.5/ln(10) */ | 
|---|
|  | 43 | #define  Hln2pi (double) ( 9.18938533204672670e-01)  /* c'est Ln(2*pi)/2 */ | 
|---|
|  | 44 |  | 
|---|
|  | 45 | #define  JourSec (float) (86400.000000) /* nombre de secondes dans 24H */ | 
|---|
|  | 46 | #define  AnSec  (int) (31557600) /* nombre de secondes dans 365.25 jours */ | 
|---|
|  | 47 |  | 
|---|
|  | 48 | #define  GRAND  (float)  (1.e+35) | 
|---|
|  | 49 | #define  GRAND2 (double) (1.e+35) | 
|---|
|  | 50 | #define  IGRAND (int_4) (2147483647) | 
|---|
|  | 51 |  | 
|---|
|  | 52 | /* pour le fit 1-dim */ | 
|---|
|  | 53 | #define NPAR_FITFUN 10 | 
|---|
|  | 54 | #define FITFUN_FLOAT 1 | 
|---|
|  | 55 | #define FITFUN_DOUBLE 2 | 
|---|
|  | 56 | union FloatDouble { float  *fx; double *dx; }; | 
|---|
|  | 57 | typedef union FloatDouble FLOATDOUBLE; | 
|---|
|  | 58 |  | 
|---|
|  | 59 | double FitFun( double (*FunFit) (double ,double *,double *) ,int_4 type | 
|---|
|  | 60 | ,FLOATDOUBLE temps,FLOATDOUBLE mag,FLOATDOUBLE err | 
|---|
|  | 61 | ,int_4 *ndata,int_4 I1,int_4 I2 | 
|---|
|  | 62 | ,double *par,double *epar,double *stepar | 
|---|
|  | 63 | ,double *minpar,double *maxpar,int_4 npar | 
|---|
|  | 64 | ,double stochi2,int_4 NstepMX,int_4 deb); | 
|---|
|  | 65 |  | 
|---|
|  | 66 | double GausPiv(double *A,int_4 nca,int_4 n,double *B,int_4 ncb,int_4 m,int_4 Inv); | 
|---|
|  | 67 |  | 
|---|
|  | 68 | int_4 paramga(float sxin, float syin, float rhoin | 
|---|
|  | 69 | , float *smax, float *axisrat, float *tiltdeg); | 
|---|
|  | 70 | int_4 gaparam(float smax, float axisrat, float tiltdeg | 
|---|
|  | 71 | , float *sxin, float *syin, float *rhoin); | 
|---|
|  | 72 |  | 
|---|
|  | 73 | double nberfc(double x); | 
|---|
|  | 74 | float probnb(float sci2,int_4 inddl,int_4 *ipass); | 
|---|
|  | 75 | double nbgammln(double xx); | 
|---|
|  | 76 | double nbgammq(double a,double x); | 
|---|
|  | 77 | double nbgammp(double a,double x); | 
|---|
|  | 78 |  | 
|---|
|  | 79 | void Set_Ihoq(int degre,int *mIhoqN,double *IhoqNX,double *IhoqNW); | 
|---|
|  | 80 | int Get_Ihoq(int degre,double *IhoqNX,double *IhoqNW); | 
|---|
|  | 81 | void nbgauleg(double x1,double x2,double *x,double *w,int n); | 
|---|
|  | 82 | double Integ_Fun(double xmin,double xmax,double (*fonc)(double),int npas); | 
|---|
|  | 83 | double Integ_Fun_2D(double (*fonc)(double x,double y) | 
|---|
|  | 84 | ,double xmin,double xmax,double ymin,double ymax | 
|---|
|  | 85 | ,int npasx,int npasy); | 
|---|
|  | 86 |  | 
|---|
|  | 87 | void Set_FitFunDPol(int DPol); | 
|---|
|  | 88 | double Gauss1DPolF(double x,double *Par,double *DgDpar); | 
|---|
|  | 89 | double GaussI1DPol(double x,double *Par,double *DgDpar); | 
|---|
|  | 90 | double Polyn1D(double x,double *Par,double *DgDpar); | 
|---|
|  | 91 |  | 
|---|
|  | 92 | double FitProp(double *x,double *y,double *ey,int *n,double *a1); | 
|---|
|  | 93 | double FitLin(double *x,double *y,double *ey,int *n | 
|---|
|  | 94 | ,double *a0,double *a1); | 
|---|
|  | 95 | double FitPar(double *x,double *y,double *ey,int *n | 
|---|
|  | 96 | ,double *a0,double *a1,double *a2); | 
|---|
|  | 97 | double FitParLin(double *xx,double *y,double *ey,int *n,double x0,int Deg_d | 
|---|
|  | 98 | ,double *a0,double *a1,double *b1,double *b2); | 
|---|
|  | 99 | double FitPropClean(double *x,double *y,double *ey,int *n | 
|---|
|  | 100 | ,double per_clean,double *a1); | 
|---|
|  | 101 | double FitLinClean(double *x,double *y,double *ey,int *n | 
|---|
|  | 102 | ,double per_clean,double *a0,double *a1); | 
|---|
|  | 103 | double FitParClean(double *x,double *y,double *ey,int *n | 
|---|
|  | 104 | ,double per_clean,double *a0,double *a1,double *a2); | 
|---|
|  | 105 |  | 
|---|
|  | 106 | float interpole(float x,int n,float *t1,float *t2); | 
|---|
|  | 107 |  | 
|---|
|  | 108 | int_4 MeanSig(float *mag,float *err,int_4 *ndata,float nsigma,float *mean,float *sigma); | 
|---|
|  | 109 | int Most_Probable( float *val, int nval, float binin, int nmoy | 
|---|
|  | 110 | , float low, float high, float *most, int deb); | 
|---|
|  | 111 | float Ajust_GaFn(int Ns,float *fcfr | 
|---|
|  | 112 | ,float *haut,float *ehaut,float *mean,float *emean | 
|---|
|  | 113 | ,float *sigma,float *esigma,float *fond,float *efond | 
|---|
|  | 114 | ,int fixfond,int NBIN_RESOL | 
|---|
|  | 115 | ,float perc_net,float frac_sgb,float dyn_sgb,int deb); | 
|---|
|  | 116 | float HFit_GaFn(int Ns,float *fcfr | 
|---|
|  | 117 | ,float *haut,float *ehaut,float *mean,float *emean | 
|---|
|  | 118 | ,float *sigma,float *esigma,float *fond,float *efond | 
|---|
|  | 119 | ,int fixfond,int nbin,float xmin,float xmax,int deb); | 
|---|
|  | 120 | int Ajust_MnSg(int Ns,float *fcfr | 
|---|
|  | 121 | ,float *mean,float *emean,float *sigma,float *esigma | 
|---|
|  | 122 | ,float perc_net,float n_sigma,int deb); | 
|---|
|  | 123 |  | 
|---|
|  | 124 | float Int3DCube(float(*fonction)(float, float, float), float step, | 
|---|
|  | 125 | float precision); | 
|---|
|  | 126 |  | 
|---|
|  | 127 | int IntFaisDr(int n,float *cs,float *sn,float *p,float *x0,float *y0 | 
|---|
|  | 128 | ,int npass,float perclean,int lp); | 
|---|
|  | 129 |  | 
|---|
|  | 130 | #ifdef __cplusplus | 
|---|
|  | 131 | } | 
|---|
|  | 132 | #endif | 
|---|
|  | 133 |  | 
|---|
|  | 134 | #endif | 
|---|