From 34a4aececb470197c6dc58c3a8a5a3d571ebc462 Mon Sep 17 00:00:00 2001 From: fintarin Date: Fri, 5 Apr 2024 20:14:11 +0400 Subject: [PATCH] Do not use namespaces stdr, stdv --- include/fintamath/core/CoreUtils.hpp | 4 ---- include/fintamath/functions/IFunctionCRTP.hpp | 2 +- src/fintamath/core/Tokenizer.cpp | 2 +- src/fintamath/expressions/Expression.cpp | 2 +- src/fintamath/expressions/ExpressionUtils.cpp | 11 ++++------- src/fintamath/expressions/IExpression.cpp | 4 ++-- src/fintamath/expressions/binary/CompExpr.cpp | 2 +- src/fintamath/expressions/binary/DerivativeExpr.cpp | 2 +- src/fintamath/expressions/binary/DivExpr.cpp | 2 +- .../expressions/interfaces/IPolynomExpression.cpp | 2 +- src/fintamath/functions/calculus/Max.cpp | 2 +- src/fintamath/functions/calculus/Min.cpp | 2 +- src/fintamath/numbers/Rational.cpp | 2 +- 13 files changed, 16 insertions(+), 23 deletions(-) diff --git a/include/fintamath/core/CoreUtils.hpp b/include/fintamath/core/CoreUtils.hpp index b0a047c84..5d03f73ed 100644 --- a/include/fintamath/core/CoreUtils.hpp +++ b/include/fintamath/core/CoreUtils.hpp @@ -2,13 +2,9 @@ #include #include -#include namespace fintamath { -namespace stdr = std::ranges; -namespace stdv = std::views; - template concept ConvertibleToAndNotSameAs = std::convertible_to && !std::same_as; diff --git a/include/fintamath/functions/IFunctionCRTP.hpp b/include/fintamath/functions/IFunctionCRTP.hpp index c523e6405..d65a87fb2 100644 --- a/include/fintamath/functions/IFunctionCRTP.hpp +++ b/include/fintamath/functions/IFunctionCRTP.hpp @@ -101,7 +101,7 @@ class IFunctionCRTP_ : public IFunction { bool doAnyArgsMatch(const ArgumentRefVector &argVect) const { using AnyArgsType = typename std::tuple_element_t<0, std::tuple>; - return stdr::all_of(argVect, [](const auto &arg) { + return std::ranges::all_of(argVect, [](const auto &arg) { return is(arg); }); } diff --git a/src/fintamath/core/Tokenizer.cpp b/src/fintamath/core/Tokenizer.cpp index b5302dd89..0f208c099 100644 --- a/src/fintamath/core/Tokenizer.cpp +++ b/src/fintamath/core/Tokenizer.cpp @@ -38,7 +38,7 @@ TokenVector Tokenizer::tokenize(std::string str) { void Tokenizer::registerToken(const Token &token) { auto &tokens = getRegisteredTokens(); - tokens.insert(stdr::upper_bound(tokens, token, [](const Token &lhs, const Token &rhs) { + tokens.insert(std::ranges::upper_bound(tokens, token, [](const Token &lhs, const Token &rhs) { return lhs.size() > rhs.size(); }), token); diff --git a/src/fintamath/expressions/Expression.cpp b/src/fintamath/expressions/Expression.cpp index b75b085a2..9214a8cdc 100644 --- a/src/fintamath/expressions/Expression.cpp +++ b/src/fintamath/expressions/Expression.cpp @@ -503,7 +503,7 @@ bool Expression::doesArgMatch(const MathObjectClass &expectedType, const Argumen namespace detail { std::unique_ptr makeExpr(const IFunction &func, ArgumentPtrVector args) { - stdr::transform(args, args.begin(), &Expression::compress); + std::ranges::transform(args, args.begin(), &Expression::compress); Expression::validateFunctionArgs(func, args); if (const auto strToConstr = Expression::getExpressionMaker().find(func.getClass()); diff --git a/src/fintamath/expressions/ExpressionUtils.cpp b/src/fintamath/expressions/ExpressionUtils.cpp index 3e59379a9..7b3992eb2 100644 --- a/src/fintamath/expressions/ExpressionUtils.cpp +++ b/src/fintamath/expressions/ExpressionUtils.cpp @@ -90,7 +90,7 @@ bool containsIf(const ArgumentPtr &arg, const std::functiongetChildren(); - return stdr::any_of(children, [&comp](const auto &child) { + return std::ranges::any_of(children, [&comp](const auto &child) { bool res = false; if (containsIf(child, comp)) { @@ -226,12 +226,9 @@ std::pair splitRational(const ArgumentPtr &arg) { ArgumentPtr negate(const ArgumentPtr &arg) { if (const auto expr = cast(arg)) { if (is(expr->getFunction())) { - auto negChildrenView = - expr->getChildren() | - stdv::transform([](const ArgumentPtr &child) { - return negate(child); - }); - return makePolynom(Add{}, ArgumentPtrVector(negChildrenView.begin(), negChildrenView.end())); // TODO: use C++23 stdv::to + ArgumentPtrVector negChildren = expr->getChildren(); + std::ranges::transform(negChildren, negChildren.begin(), &negate); + return makePolynom(Add{}, std::move(negChildren)); } if (is(expr->getFunction())) { diff --git a/src/fintamath/expressions/IExpression.cpp b/src/fintamath/expressions/IExpression.cpp index 5a358a5d4..6be1d77ea 100644 --- a/src/fintamath/expressions/IExpression.cpp +++ b/src/fintamath/expressions/IExpression.cpp @@ -41,8 +41,8 @@ std::vector IExpression::getVariables() const { } } - stdr::sort(vars, std::less{}, &Variable::toString); - auto unique = stdr::unique(vars); + std::ranges::sort(vars, std::less{}, &Variable::toString); + auto unique = std::ranges::unique(vars); vars.erase(unique.begin(), unique.end()); return vars; diff --git a/src/fintamath/expressions/binary/CompExpr.cpp b/src/fintamath/expressions/binary/CompExpr.cpp index e7f16fc07..89c539209 100644 --- a/src/fintamath/expressions/binary/CompExpr.cpp +++ b/src/fintamath/expressions/binary/CompExpr.cpp @@ -216,7 +216,7 @@ ArgumentPtr CompExpr::rateSimplify(const IFunction &func, const ArgumentPtr &lhs return {}; } - for (auto &child : stdv::drop(children, 1)) { + for (auto &child : children | std::views::drop(1)) { child = divExpr(child, rate); } diff --git a/src/fintamath/expressions/binary/DerivativeExpr.cpp b/src/fintamath/expressions/binary/DerivativeExpr.cpp index 340e86e08..2921c1580 100644 --- a/src/fintamath/expressions/binary/DerivativeExpr.cpp +++ b/src/fintamath/expressions/binary/DerivativeExpr.cpp @@ -139,7 +139,7 @@ ArgumentPtr DerivativeExpr::exprSimplify(const std::shared_ptr &var) { ArgumentPtrVector newChildren = children; - stdr::transform(newChildren, newChildren.begin(), [&var](const ArgumentPtr &child) { + std::ranges::transform(newChildren, newChildren.begin(), [&var](const ArgumentPtr &child) { return derivativeExpr(child, var); }); diff --git a/src/fintamath/expressions/binary/DivExpr.cpp b/src/fintamath/expressions/binary/DivExpr.cpp index 2c0d080a6..a269809a6 100644 --- a/src/fintamath/expressions/binary/DivExpr.cpp +++ b/src/fintamath/expressions/binary/DivExpr.cpp @@ -392,7 +392,7 @@ std::pair DivExpr::mulSumSimplify(const ArgumentPtr &l ArgumentPtrVector multiplicators; - for (const auto &rhsChild : rhsChildren | stdv::drop(1)) { + for (const auto &rhsChild : rhsChildren | std::views::drop(1)) { multiplicators.emplace_back(mulExpr(rhsChild, result)); } diff --git a/src/fintamath/expressions/interfaces/IPolynomExpression.cpp b/src/fintamath/expressions/interfaces/IPolynomExpression.cpp index f1be8f190..bba48aab8 100644 --- a/src/fintamath/expressions/interfaces/IPolynomExpression.cpp +++ b/src/fintamath/expressions/interfaces/IPolynomExpression.cpp @@ -225,7 +225,7 @@ void IPolynomExpression::setChildren(const ArgumentPtrVector &childVect) { } void IPolynomExpression::sort() { - stdr::stable_sort(children, [this](const ArgumentPtr &lhs, const ArgumentPtr &rhs) { + std::ranges::stable_sort(children, [this](const ArgumentPtr &lhs, const ArgumentPtr &rhs) { return compare(lhs, rhs) == std::strong_ordering::greater; }); } diff --git a/src/fintamath/functions/calculus/Max.cpp b/src/fintamath/functions/calculus/Max.cpp index 34c83fe7c..8c2e58574 100644 --- a/src/fintamath/functions/calculus/Max.cpp +++ b/src/fintamath/functions/calculus/Max.cpp @@ -15,7 +15,7 @@ namespace fintamath { std::unique_ptr Max::call(const ArgumentRefVector &argVect) const { std::reference_wrapper res = cast(argVect.front().get()); - for (const auto &arg : argVect | stdv::drop(1)) { + for (const auto &arg : argVect | std::views::drop(1)) { if (is(arg)) { return {}; } diff --git a/src/fintamath/functions/calculus/Min.cpp b/src/fintamath/functions/calculus/Min.cpp index 6010020b4..a3bd2338a 100644 --- a/src/fintamath/functions/calculus/Min.cpp +++ b/src/fintamath/functions/calculus/Min.cpp @@ -15,7 +15,7 @@ namespace fintamath { std::unique_ptr Min::call(const ArgumentRefVector &argVect) const { std::reference_wrapper res = cast(argVect.front().get()); - for (const auto &arg : argVect | stdv::drop(1)) { + for (const auto &arg : argVect | std::views::drop(1)) { if (is(arg)) { return {}; } diff --git a/src/fintamath/numbers/Rational.cpp b/src/fintamath/numbers/Rational.cpp index f25159cfc..7d513a96a 100644 --- a/src/fintamath/numbers/Rational.cpp +++ b/src/fintamath/numbers/Rational.cpp @@ -27,7 +27,7 @@ Rational::Rational(const std::string &str) { } int64_t firstDigitNum = 0; - const int64_t firstDotNum = stdr::distance(str.begin(), stdr::find(str, '.')); + const int64_t firstDotNum = std::ranges::distance(str.begin(), std::ranges::find(str, '.')); bool isNegative = false; if (str.front() == '-') {