80 double buu = pow(10.0,p[0].value), auu = pow(10.0,p[1].value);
81 double add = pow(10.0,p[2].value), bdd = pow(10.0,p[3].value);
82 double eu =p[4].value, gu = p[5].value;
83 double ed = p[6].value, gd = p[7].value;
85 double cdd = pow(10.0,p[10].value);
87 double hd= p[11].value;
89 complex<double> bu = buu*exp(complex<double>(0,gu*M_PI_2)), au = auu*exp(complex<double>(0,eu*M_PI_2));
90 complex<double> ad = add*exp(complex<double>(0,ed*M_PI_2)), bd = bdd*exp(complex<double>(0,gd*M_PI_2));
92 complex<double> cu = bu;
93 complex<double> cd = cdd*exp(complex<double>(0,hd*M_PI_2));
98 mu<<1,1.0,1.0+au+bu,1.0,1.0,1.0+bu,1.0+bu+au,1.0+bu,1.0+cu;
99 md<<1,1.0,1.0+ad+bd,1.0,1.0,1.0+bd,1.0+bd+ad,1.0+bd,1.0+cd;
100 mu=mu*pow(10.0,p[8].value);
101 md=md*pow(10.0,p[9].value);
103 Matrix3cd Hu = mu*mu.adjoint(), Hd = md*md.adjoint();
104 SelfAdjointEigenSolver<Matrix3cd> usolver(Hu), dsolver(Hd);
105 Vector3d Du=usolver.eigenvalues();
106 Vector3d Dd=dsolver.eigenvalues();
107 Matrix3cd VLd=dsolver.eigenvectors().adjoint();
108 Matrix3cd VLu=usolver.eigenvectors().adjoint();
109 Matrix3cd Vckm=VLu*VLd.adjoint();
110 double lambda0=sqrt(norm(Vckm(0,1))/(norm(Vckm(0,0))+norm(Vckm(0,1))));
111 double A0=abs(Vckm(1,2))/abs(Vckm(0,1))/lambda0;
112 complex<double> rhoeta=-Vckm(0,0)*conj(Vckm(0,2))/Vckm(1,0)/conj(Vckm(1,2));
113 double rho0=real(rhoeta), eta0=imag(rhoeta);
115 return lst(
lambda==lambda0,
A==A0,
rho==rho0,
eta==eta0,
Mu==sqrt(abs(Du[0])),
Md==sqrt(abs(Dd[0])),
Mc==sqrt(abs(Du[1])),
Ms==sqrt(abs(Dd[1])),
Mt==sqrt(abs(Du[2])),
Mb==sqrt(abs(Dd[2])));
void add(const char *s, ex pred, observable *ob)