From 661e5c7e9f3d0e14fb093de4b2896d8b49b1603f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= Date: Wed, 19 Jul 2023 18:00:42 +0200 Subject: [PATCH] =?UTF-8?q?C++17=20modernization:=20initialization=20in=20?= =?UTF-8?q?=E2=80=9Cif=E2=80=9D-statement?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mex/sources/libkorder/kord/decision_rule.hh | 28 ++- mex/sources/libkorder/kord/faa_di_bruno.cc | 8 +- mex/sources/libkorder/kord/korder_stoch.hh | 8 +- mex/sources/libkorder/sylv/BlockDiagonal.cc | 174 +++++++++--------- mex/sources/libkorder/sylv/QuasiTriangular.cc | 4 +- mex/sources/libkorder/tl/equivalence.cc | 16 +- mex/sources/libkorder/tl/gs_tensor.cc | 22 +-- mex/sources/libkorder/tl/t_container.hh | 10 +- mex/sources/libkorder/tl/t_polynomial.hh | 6 +- 9 files changed, 128 insertions(+), 148 deletions(-) diff --git a/mex/sources/libkorder/kord/decision_rule.hh b/mex/sources/libkorder/kord/decision_rule.hh index 1e07e1d09..7aaf62829 100644 --- a/mex/sources/libkorder/kord/decision_rule.hh +++ b/mex/sources/libkorder/kord/decision_rule.hh @@ -234,14 +234,12 @@ DecisionRuleImpl::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::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); } diff --git a/mex/sources/libkorder/kord/faa_di_bruno.cc b/mex/sources/libkorder/kord/faa_di_bruno.cc index e3f4d5105..9f7e54673 100644 --- a/mex/sources/libkorder/kord/faa_di_bruno.cc +++ b/mex/sources/libkorder/kord/faa_di_bruno.cc @@ -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(lambda*per_size1+(1-lambda)*per_size2); long mem = SystemResources::availableMemory(); int max = 0; - double num_cols = static_cast(mem-magic_mult*nthreads*per_size) - /nthreads/sizeof(double)/nr; - if (num_cols > 0) + if (double num_cols {static_cast(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(std::floor(maxd)); diff --git a/mex/sources/libkorder/kord/korder_stoch.hh b/mex/sources/libkorder/kord/korder_stoch.hh index 857bcc65d..6c3a8b205 100644 --- a/mex/sources/libkorder/kord/korder_stoch.hh +++ b/mex/sources/libkorder/kord/korder_stoch.hh @@ -209,11 +209,9 @@ StochForwardDerivs::StochForwardDerivs(const PartitionY &ypart, int nu, auto ten = std::make_unique::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)); } diff --git a/mex/sources/libkorder/sylv/BlockDiagonal.cc b/mex/sources/libkorder/sylv/BlockDiagonal.cc index 89483290f..f7aa183c9 100644 --- a/mex/sources/libkorder/sylv/BlockDiagonal.cc +++ b/mex/sources/libkorder/sylv/BlockDiagonal.cc @@ -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 diff --git a/mex/sources/libkorder/sylv/QuasiTriangular.cc b/mex/sources/libkorder/sylv/QuasiTriangular.cc index 8757e0d8f..a4fda4366 100644 --- a/mex/sources/libkorder/sylv/QuasiTriangular.cc +++ b/mex/sources/libkorder/sylv/QuasiTriangular.cc @@ -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() diff --git a/mex/sources/libkorder/tl/equivalence.cc b/mex/sources/libkorder/tl/equivalence.cc index ced345975..45ebc3d47 100644 --- a/mex/sources/libkorder/tl/equivalence.cc +++ b/mex/sources/libkorder/tl/equivalence.cc @@ -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. */ diff --git a/mex/sources/libkorder/tl/gs_tensor.cc b/mex/sources/libkorder/tl/gs_tensor.cc index b5e9adfc1..6b0e8256a 100644 --- a/mex/sources/libkorder/tl/gs_tensor.cc +++ b/mex/sources/libkorder/tl/gs_tensor.cc @@ -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; diff --git a/mex/sources/libkorder/tl/t_container.hh b/mex/sources/libkorder/tl/t_container.hh index 8aef209f3..8eef89381 100644 --- a/mex/sources/libkorder/tl/t_container.hh +++ b/mex/sources/libkorder/tl/t_container.hh @@ -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; } diff --git a/mex/sources/libkorder/tl/t_polynomial.hh b/mex/sources/libkorder/tl/t_polynomial.hh index e8f0f3ed0..3c87d5d9a 100644 --- a/mex/sources/libkorder/tl/t_polynomial.hh +++ b/mex/sources/libkorder/tl/t_polynomial.hh @@ -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));