本文整理汇总了C++中Matrix::Diagonal方法的典型用法代码示例。如果您正苦于以下问题:C++ Matrix::Diagonal方法的具体用法?C++ Matrix::Diagonal怎么用?C++ Matrix::Diagonal使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Matrix
的用法示例。
在下文中一共展示了Matrix::Diagonal方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: MeanPlaquette
double PlaquetteMonster::MeanPlaquette(int m,int n)
{
double plaq(0.0);
Matrix P;
P.Diagonal(1.0);
if (m<1) return 1;
if (n<1) return 1;
if (m>len) return 0;
if (n>len) return 0;
int s[4];
for ( s[0]=0; s[0]<sites[0]; ++s[0] )
for ( s[1]=0; s[1]<sites[1]; ++s[1] )
for ( s[2]=0; s[2]<sites[2]; ++s[2] )
for ( s[3]=0; s[3]<sites[3]; ++s[3] )
for (int mu=0; mu<4; ++mu)
for (int nu=0; nu<mu; ++nu) {
P = lats[m-1]->GaugeField(mu,s);
s[mu]+=m;
P *= lats[n-1]->GaugeField(nu,s);
s[nu]+=n;
s[mu]-=m;
P *= lats[m-1]->GaugeField(mu,s).Dagger();
s[nu]-=n;
P *= lats[n-1]->GaugeField(nu,s).Dagger();
plaq += P.Tr();
}
int volume(1);
for (int mu=0; mu<4; ++mu) volume *= sites[mu];
return plaq / double(2*6*volume);
}
示例2: main
int main(void)
{
if (1) {
Matrix u;
u.Diagonal(3.2);
u.PrintProperties();
}
if (1) {
Matrix u;
u.Initialize(1.0,2.0,3.0,4.0);
u.PrintProperties();
}
if (1) {
double alpha, theta, phi;
alpha = 2*PI*rng.genrand_res53();
theta = PI*rng.genrand_res53();
phi = 2*PI*rng.genrand_res53();
Matrix u;
u.EulerSU2(alpha,theta,phi);
u.PrintProperties();
}
if (1) {
Matrix u;
u.RandomSU2();
u.PrintProperties();
}
if (1) {
Matrix u;
for (double x=0.0; x<1.0; x+=0.05) {
cout << x << endl;
u.RandomSU2(x);
u.PrintProperties();
}
}
exit(EXIT_SUCCESS);
}