C++17 modernization: initialization in “if”-statement

kalman-mex
Sébastien Villemot 2023-07-19 18:00:42 +02:00
parent d52aceeb16
commit 661e5c7e9f
No known key found for this signature in database
GPG Key ID: 2CECE9350ECEBE4A
9 changed files with 128 additions and 148 deletions

View File

@ -234,14 +234,12 @@ DecisionRuleImpl<t>::fillTensors(const _Tg &g, double sigma)
TensorDimens(Symmetry{i, j}, tns));
tmp.zeros();
for (int k = 0; k+d <= g.getMaxDim(); k++, kfact *= k)
{
Symmetry sym{i, j, 0, k};
if (g.check(sym))
{
double mult = pow(sigma, k)/dfact/kfact;
tmp.add(mult, g.get(sym));
}
}
if (Symmetry sym{i, j, 0, k};
g.check(sym))
{
double mult = pow(sigma, k)/dfact/kfact;
tmp.add(mult, g.get(sym));
}
g_yud->addSubTensor(tmp);
}
@ -278,14 +276,12 @@ DecisionRuleImpl<t>::fillTensors(const _TW &W, int nys)
_Ttensor tmp(1, TensorDimens(Symmetry{i, j}, tns));
tmp.zeros();
for (int k = 0; k+d <= W.getMaxDim(); k++, kfact *= k)
{
Symmetry sym{i, j, 0, k};
if (W.check(sym))
{
double mult = 1.0/dfact/kfact;
tmp.add(mult, W.get(sym));
}
}
if (Symmetry sym{i, j, 0, k};
W.check(sym))
{
double mult = 1.0/dfact/kfact;
tmp.add(mult, W.get(sym));
}
W_yud->addSubTensor(tmp);
}

View File

@ -1,6 +1,6 @@
/*
* Copyright © 2005 Ondra Kamenik
* Copyright © 2019-2022 Dynare Team
* Copyright © 2019-2023 Dynare Team
*
* This file is part of Dynare.
*
@ -139,9 +139,9 @@ FaaDiBruno::estimRefinement(const TensorDimens &tdims, int nr, int l)
*static_cast<long>(lambda*per_size1+(1-lambda)*per_size2);
long mem = SystemResources::availableMemory();
int max = 0;
double num_cols = static_cast<double>(mem-magic_mult*nthreads*per_size)
/nthreads/sizeof(double)/nr;
if (num_cols > 0)
if (double num_cols {static_cast<double>(mem-magic_mult*nthreads*per_size)
/nthreads/sizeof(double)/nr};
num_cols > 0)
{
double maxd = std::pow(num_cols, 1.0/l);
max = static_cast<int>(std::floor(maxd));

View File

@ -209,11 +209,9 @@ StochForwardDerivs<t>::StochForwardDerivs(const PartitionY &ypart, int nu,
auto ten = std::make_unique<typename ctraits<t>::Ttensym>(r, ypart.nys()+1, d);
ten->zeros();
for (int i = 0; i <= d; i++)
{
int k = d-i;
if (g_int.check(Symmetry{i, 0, 0, k}))
ten->addSubTensor(g_int.get(Symmetry{i, 0, 0, k}));
}
if (int k {d-i};
g_int.check(Symmetry{i, 0, 0, k}))
ten->addSubTensor(g_int.get(Symmetry{i, 0, 0, k}));
g_int_sym.insert(std::move(ten));
}

View File

@ -1,6 +1,6 @@
/*
* Copyright © 2004-2011 Ondra Kamenik
* Copyright © 2019 Dynare Team
* Copyright © 2019-2023 Dynare Team
*
* This file is part of Dynare.
*
@ -73,25 +73,21 @@ BlockDiagonal::setZeroBlockEdge(diag_iter edge)
int iedge = edge->getIndex();
for (diag_iter run = diag_begin(); run != edge; ++run)
{
int ind = run->getIndex();
if (row_len[ind] > iedge)
{
row_len[ind] = iedge;
if (!run->isReal())
row_len[ind+1] = iedge;
}
}
if (int ind {run->getIndex()};
row_len[ind] > iedge)
{
row_len[ind] = iedge;
if (!run->isReal())
row_len[ind+1] = iedge;
}
for (diag_iter run = edge; run != diag_end(); ++run)
{
int ind = run->getIndex();
if (col_len[ind] < iedge)
{
col_len[ind] = iedge;
if (!run->isReal())
col_len[ind+1] = iedge;
}
}
if (int ind {run->getIndex()};
col_len[ind] < iedge)
{
col_len[ind] = iedge;
if (!run->isReal())
col_len[ind+1] = iedge;
}
}
BlockDiagonal::const_col_iter
@ -193,42 +189,40 @@ BlockDiagonal::multKronBlock(const_diag_iter start, const_diag_iter end,
savePartOfX(si, ei, x, work);
for (const_diag_iter di = start; di != end; ++di)
{
int jbar = di->getIndex();
if (di->isReal())
{
KronVector xi(x, jbar);
xi.zeros();
Vector wi(work, (jbar-si)*xi.length(), xi.length());
xi.add(*(di->getAlpha()), wi);
for (const_row_iter ri = row_begin(*di); ri != row_end(*di); ++ri)
{
int col = ri.getCol();
Vector wj(work, (col-si)*xi.length(), xi.length());
xi.add(*ri, wj);
}
}
else
{
KronVector xi(x, jbar);
KronVector xii(x, jbar+1);
xi.zeros();
xii.zeros();
Vector wi(work, (jbar-si)*xi.length(), xi.length());
Vector wii(work, (jbar+1-si)*xi.length(), xi.length());
xi.add(*(di->getAlpha()), wi);
xi.add(di->getBeta1(), wii);
xii.add(di->getBeta2(), wi);
xii.add(*(di->getAlpha()), wii);
for (const_row_iter ri = row_begin(*di); ri != row_end(*di); ++ri)
{
int col = ri.getCol();
Vector wj(work, (col-si)*xi.length(), xi.length());
xi.add(ri.a(), wj);
xii.add(ri.b(), wj);
}
}
}
if (int jbar {di->getIndex()};
di->isReal())
{
KronVector xi(x, jbar);
xi.zeros();
Vector wi(work, (jbar-si)*xi.length(), xi.length());
xi.add(*(di->getAlpha()), wi);
for (const_row_iter ri = row_begin(*di); ri != row_end(*di); ++ri)
{
int col = ri.getCol();
Vector wj(work, (col-si)*xi.length(), xi.length());
xi.add(*ri, wj);
}
}
else
{
KronVector xi(x, jbar);
KronVector xii(x, jbar+1);
xi.zeros();
xii.zeros();
Vector wi(work, (jbar-si)*xi.length(), xi.length());
Vector wii(work, (jbar+1-si)*xi.length(), xi.length());
xi.add(*(di->getAlpha()), wi);
xi.add(di->getBeta1(), wii);
xii.add(di->getBeta2(), wi);
xii.add(*(di->getAlpha()), wii);
for (const_row_iter ri = row_begin(*di); ri != row_end(*di); ++ri)
{
int col = ri.getCol();
Vector wj(work, (col-si)*xi.length(), xi.length());
xi.add(ri.a(), wj);
xii.add(ri.b(), wj);
}
}
}
void
@ -242,42 +236,40 @@ BlockDiagonal::multKronBlockTrans(const_diag_iter start, const_diag_iter end,
savePartOfX(si, ei, x, work);
for (const_diag_iter di = start; di != end; ++di)
{
int jbar = di->getIndex();
if (di->isReal())
{
KronVector xi(x, jbar);
xi.zeros();
Vector wi(work, (jbar-si)*xi.length(), xi.length());
xi.add(*(di->getAlpha()), wi);
for (const_col_iter ci = col_begin(*di); ci != col_end(*di); ++ci)
{
int row = ci.getRow();
Vector wj(work, (row-si)*xi.length(), xi.length());
xi.add(*ci, wj);
}
}
else
{
KronVector xi(x, jbar);
KronVector xii(x, jbar+1);
xi.zeros();
xii.zeros();
Vector wi(work, (jbar-si)*xi.length(), xi.length());
Vector wii(work, (jbar+1-si)*xi.length(), xi.length());
xi.add(*(di->getAlpha()), wi);
xi.add(di->getBeta2(), wii);
xii.add(di->getBeta1(), wi);
xii.add(*(di->getAlpha()), wii);
for (const_col_iter ci = col_begin(*di); ci != col_end(*di); ++ci)
{
int row = ci.getRow();
Vector wj(work, (row-si)*xi.length(), xi.length());
xi.add(ci.a(), wj);
xii.add(ci.b(), wj);
}
}
}
if (int jbar {di->getIndex()};
di->isReal())
{
KronVector xi(x, jbar);
xi.zeros();
Vector wi(work, (jbar-si)*xi.length(), xi.length());
xi.add(*(di->getAlpha()), wi);
for (const_col_iter ci = col_begin(*di); ci != col_end(*di); ++ci)
{
int row = ci.getRow();
Vector wj(work, (row-si)*xi.length(), xi.length());
xi.add(*ci, wj);
}
}
else
{
KronVector xi(x, jbar);
KronVector xii(x, jbar+1);
xi.zeros();
xii.zeros();
Vector wi(work, (jbar-si)*xi.length(), xi.length());
Vector wii(work, (jbar+1-si)*xi.length(), xi.length());
xi.add(*(di->getAlpha()), wi);
xi.add(di->getBeta2(), wii);
xii.add(di->getBeta1(), wi);
xii.add(*(di->getAlpha()), wii);
for (const_col_iter ci = col_begin(*di); ci != col_end(*di); ++ci)
{
int row = ci.getRow();
Vector wj(work, (row-si)*xi.length(), xi.length());
xi.add(ci.a(), wj);
xii.add(ci.b(), wj);
}
}
}
void

View File

@ -172,8 +172,8 @@ Diagonal::changeBase(double *p)
void
Diagonal::getEigenValues(Vector &eig) const
{
int d_size = getSize();
if (eig.length() != 2*d_size)
if (int d_size {getSize()};
eig.length() != 2*d_size)
{
std::ostringstream mes;
mes << "Wrong length of vector for eigenvalues len=" << eig.length()

View File

@ -1,6 +1,6 @@
/*
* Copyright © 2004 Ondra Kamenik
* Copyright © 2019 Dynare Team
* Copyright © 2019-2023 Dynare Team
*
* This file is part of Dynare.
*
@ -364,14 +364,12 @@ EquivalenceSet::addParents(const Equivalence &e,
for (int i1 = 0; i1 < e.numClasses(); i1++)
for (int i2 = i1+1; i2 < e.numClasses(); i2++)
{
Equivalence ns(e, i1, i2);
if (!has(ns))
{
added.push_back(ns);
equis.push_back(std::move(ns));
}
}
if (Equivalence ns(e, i1, i2);
!has(ns))
{
added.push_back(ns);
equis.push_back(std::move(ns));
}
}
/* Debug print. */

View File

@ -1,6 +1,6 @@
/*
* Copyright © 2004 Ondra Kamenik
* Copyright © 2019 Dynare Team
* Copyright © 2019-2023 Dynare Team
*
* This file is part of Dynare.
*
@ -106,17 +106,15 @@ TensorDimens::calcFoldOffset(const IntSequence &v) const
int pow = 1;
int blstart = v.size();
for (int ibl = getSym().num()-1; ibl >= 0; ibl--)
{
int bldim = getSym()[ibl];
if (bldim > 0)
{
blstart -= bldim;
int blnvar = getNVX(blstart);
IntSequence subv(v, blstart, blstart+bldim);
res += FTensor::getOffset(subv, blnvar)*pow;
pow *= FFSTensor::calcMaxOffset(blnvar, bldim);
}
}
if (int bldim { getSym()[ibl] };
bldim > 0)
{
blstart -= bldim;
int blnvar = getNVX(blstart);
IntSequence subv(v, blstart, blstart+bldim);
res += FTensor::getOffset(subv, blnvar)*pow;
pow *= FFSTensor::calcMaxOffset(blnvar, bldim);
}
TL_RAISE_IF(blstart != 0,
"Error in tracing symmetry in TensorDimens::getFoldOffset");
return res;

View File

@ -1,6 +1,6 @@
/*
* Copyright © 2004 Ondra Kamenik
* Copyright © 2019 Dynare Team
* Copyright © 2019-2023 Dynare Team
*
* This file is part of Dynare.
*
@ -202,11 +202,9 @@ public:
{
int res = -1;
for (const auto &run : m)
{
int dim = run.first.dimen();
if (dim > res)
res = dim;
}
if (int dim { run.first.dimen() };
dim > res)
res = dim;
return res;
}

View File

@ -1,6 +1,6 @@
/*
* Copyright © 2004 Ondra Kamenik
* Copyright © 2019 Dynare Team
* Copyright © 2019-2023 Dynare Team
*
* This file is part of Dynare.
*
@ -318,8 +318,8 @@ public:
last = std::make_unique<_Ttype>(_Tparent::get(Symmetry{maxdim}), v);
for (int d = maxdim-1; d >= 1; d--)
{
Symmetry cs{d};
if (_Tparent::check(cs))
if (Symmetry cs{d};
_Tparent::check(cs))
{
const _Ttype &nt = _Tparent::get(cs);
last->add(1.0, ConstTwoDMatrix(nt));