C++ Fortran 或 Python 中的 If 条件含义

C++ code If condition meaning in Fortran or Python

本文关键字:条件 If 中的 Fortran Python C++      更新时间:2023-10-16

我一直在尝试通读C++代码,想知道是否有人可以提供帮助。所以,是片段:

bool res;
if(res=(D<0)) {u2_=u2= C>0 ? atan2(A,B) : atan2(-A,-B); D=0;}
 else
 {
  D = sqrt(D);
  const realfp err = M*y1_+N*x1_-data.K*y1_*x1_;
  const realfp err_= M*y2_+N*x2_-data.K*y2_*x2_;
  if(fabs(err)<fabs(err_)) {
    u2 = atan2(y1_, x1_);
    u2_= atan2(y2_, x2_);}
  else {
    u2_= atan2(y1_, x1_);
    u2 = atan2(y2_, x2_);}
 }

相当于:

res = D < 0;
if (res) {
    if (C > 0) {
        u2_ = u2 = atan(A, B);
    } else {
        u2_ = u2 = atan2(-A, -B);
    }
    D = 0;
} else {
    D = sqrt(D);
    const realfp err  = M*y1_+N*x1_-data.K*y1_*x1_;
    const realfp err_ = M*y2_+N*x2_-data.K*y2_*x2_;
    if (fabs(err) < fabs(err_)) {
        u2 = atan2(y1_, x1_);
        u2_= atan2(y2_, x2_);
    } else {
        u2_= atan2(y1_, x1_);
        u2 = atan2(y2_, x2_);
    }
}

我问的原因是因为我对病情感到困惑if(res=(D<0)) {u2_=u2= C>0 ? atan2(A,B) : atan2(-A,-B); D=0;} 我知道它会检查 D<0 但无法遵循后记,尤其是部分{u2_=u2= C>0 ? atan2(A,B) : atan2(-A,-B); D=0;}.事实上,如果你能把这个if condition翻译成python或Fortran,那就太好了。任何帮助将不胜感激!

{u2_=u2= C>0 ? atan2(A,B) : atan2(-A,-B); D=0;}

可以翻译成这个:

if (C >0) {
  u2_ = u2 = atan2(A,B);
}
else {
  u2_ = u2 = atan2(-A,-B);
}
D=0;