27 #pragma package(smart_init)
55 grille.initialiser(boite.get_xmin(),boite.get_ymin(),boite.get_zmin(),boite.get_xmax(),boite.get_ymax(),boite.get_zmax(),1,1,1);
57 for (
int i=0;i<nb_point;i++)
68 double deltaen=0.25*
eni;
74 for (
int i=0;i<10;i++)
79 BOITE_3D boite(x-dist,y-dist,z-dist,x+dist,y+dist,z+dist);
96 double f(
double x,
long nb,
double *xfonc,
double *fonc,
double eng,
double eni,
double lambda,
double nor,
double *fonc2)
100 double y=carte.
get_y();
102 for (
int i=0;i<nb;i++)
104 double val=carte.
estimer(xfonc[i],0.,0.);
105 if (fonc2!=NULL) fonc2[i]=val;
108 val=carte.
estimer(xfonc[i],y,0.);
109 if (fonc2!=NULL) fonc2[i+nb]=val;
117 double calibre_courbure(
long nb,
double *xfonc,
double *fonc,
double binf,
double bsup,
double nor,
double dx,
double *fonc2)
119 double eng=fonc[nb-1];
121 double lambda=(xfonc[nb-1]-xfonc[0])/(eng-eni);
131 while (
fibo(n)<(b-
a)/lon);
134 double tetai=
f(l,nb,xfonc,fonc,eng,eni,lambda,nor);
135 double tetaii=
f(u,nb,xfonc,fonc,eng,eni,lambda,nor);
151 tetai=
f(l,nb,xfonc,fonc,eng,eni,lambda,nor);
152 tetaii=
f(u,nb,xfonc,fonc,eng,eni,lambda,nor);
157 tetai=
f(l,nb,xfonc,fonc,eng,eni,lambda,nor);
158 tetaii=
f(u,nb,xfonc,fonc,eng,eni,lambda,nor);
159 if (tetai>tetaii)
a=l;
161 double res=0.5*(
a+b);
163 f(
res,nb,xfonc,fonc,eng,eni,lambda,nor,fonc2);
TPL_GRILLE_INFO< CT_POINT< 1 > *, DOUBLEN< N > > grille
void echantillonner(class MG_GROUPE_TOPOLOGIQUE *mggt=NULL)
void construit(int n1=0, int n2=0, class MG_GROUPE_TOPOLOGIQUE *mggt=NULL)
~FCT_GENERATEUR_CALIBRAGE()
void enregistrer(char *mess)
FCT_GENERATEUR_CALIBRAGE(double dn, double eniarg, double courb, double lambdaarg, double nor=1.0)
TPL_LISTE_ENTITE< CT_POINT< 1 > * > lstpoint
virtual double estimer(double x, double y, double z)
virtual void ajouter(X x)
double calibre_courbure(long nb, double *xfonc, double *fonc, double binf, double bsup, double nor, double dx, double *fonc2)
double f(double x, long nb, double *xfonc, double *fonc, double eng, double eni, double lambda, double nor, double *fonc2)
double2 sqrt(double2 &val)