C++17 modernization: initialization in “if”-statement
parent
d52aceeb16
commit
661e5c7e9f
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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. */
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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));
|
||||
|
|
Loading…
Reference in New Issue