#ifndef NBGENE_H_SEEN #define NBGENE_H_SEEN #ifdef __cplusplus #ifdef FLAG_MAIN_NBSREAD #define EXTERN #else #define EXTERN extern #endif #else #define EXTERN #endif /* structure de definition du montecarlo */ struct montecarlo { /* flag montecarlo et tailles finies */ int montecar,Taille_Finie,Blending; /* initialisation aleatoire */ int_4 iseed1,iseed2,iseed3; /* nbre engendre, nbre a engendrer par etoile */ int NGene,NGenStar; /* nbre points amplifies, nombre points amplifies avec taille finie */ int NPoints_ampli,NPoints_ampli_tf,Net_ampli_tf; /* ampli maxi ponctuelle, tf, coupure en amplification (apres=1.), blend */ float A0MaxPt,A0Max,Usu0_Cut,A0Max_blend[NCOULMX]; /* u0 initialisation, bornes min et max, simule */ float U0SimI,U0MinI,U0MaxI,U0Sim; float (*TireU0)(float x); /* t0 initialisation, bornes min et max, simule */ double T0SimI,T0MaxI,T0MinI,T0Sim; double T0MaxI_eff,T0MinI_eff; float (*TireT0)(float x); /* tau initialisation, bornes min et max, simule (cas ponctuel) */ float TauSimI,TauMinI,TauMaxI,TauSim; float (*TireTau)(float x); /* U initialisation, bornes min et max, simule (cas ponctuel) */ float USimI,UMinI,UMaxI,USim; float (*TireU)(float x); /* cas du blending 1ere et 2sd etoiles */ /* fct de generation des parametres du blending */ void (*Get_Par_Blending)(void); /* flux, coeff de blending et calib etoile principale */ float fmc1[NCOULMX],coeff_Arec1[NCOULMX]; STARCALU starcal1; /* flux, coeff de blending et calib etoile secondaire */ float fmc2[NCOULMX],coeff_Arec2[NCOULMX]; STARCALU starcal2; /* type (SP ou GR) des etoiles du couple blending */ int type1,type2; }; typedef struct montecarlo MONTECARLO; EXTERN MONTECARLO mc; EXTERN int ANNEE_OBS; #ifdef __cplusplus extern "C" { #endif int Give_Annee_Obs(int lp); float Rayon_SP_Th(float magv); void AMPLML(int io); double ampli_ponct(double u); double ampli_tf(double u,double U,int Nseq); double u0_ponct(double A); double u0_tf(double A,double U,double prec,int *niter,double *Afinal); #ifdef __cplusplus } #endif #endif