From 8b945dfd640947e8e12a346fde2b50d395f34f4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= <sebastien@dynare.org> Date: Wed, 28 Jun 2023 23:09:56 +0200 Subject: [PATCH] libkorder: use infinity instead of large constant in minimization algorith MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit By the way, also use C++17 initialization within “if” statement. --- mex/sources/libkorder/sylv/QuasiTriangular.cc | 35 +++++++++---------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/mex/sources/libkorder/sylv/QuasiTriangular.cc b/mex/sources/libkorder/sylv/QuasiTriangular.cc index faa81384c7..8757e0d8f9 100644 --- a/mex/sources/libkorder/sylv/QuasiTriangular.cc +++ b/mex/sources/libkorder/sylv/QuasiTriangular.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. * @@ -28,6 +28,7 @@ #include <cmath> #include <iostream> #include <sstream> +#include <limits> double DiagonalBlock::getDeterminant() const @@ -267,16 +268,14 @@ Diagonal::diag_iter Diagonal::findClosestBlock(diag_iter start, diag_iter end, double a) { diag_iter closest = start; - double minim = 1.0e100; + double minim {std::numeric_limits<double>::infinity()}; for (diag_iter run = start; run != end; ++run) - { - double dist = std::abs(a - run->getSize()); - if (dist < minim) - { - minim = dist; - closest = run; - } - } + if (double dist = std::abs(a - run->getSize()); + dist < minim) + { + minim = dist; + closest = run; + } return closest; } @@ -284,16 +283,14 @@ Diagonal::diag_iter Diagonal::findNextLargerBlock(diag_iter start, diag_iter end, double a) { diag_iter closest = start; - double minim = 1.0e100; + double minim {std::numeric_limits<double>::infinity()}; for (diag_iter run = start; run != end; ++run) - { - double dist = run->getSize() - a; - if ((0 <= dist) && (dist < minim)) - { - minim = dist; - closest = run; - } - } + if (double dist = run->getSize() - a; + 0 <= dist && dist < minim) + { + minim = dist; + closest = run; + } return closest; } -- GitLab