Skip to content

Commit

Permalink
remove context
Browse files Browse the repository at this point in the history
  • Loading branch information
pet-mit committed Feb 20, 2025
1 parent d2162e0 commit e1f2ac5
Show file tree
Hide file tree
Showing 14 changed files with 138 additions and 255 deletions.
2 changes: 0 additions & 2 deletions src/expressions/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ set(SRC_Expressions
visitors/CloneVisitor.cpp
visitors/CompareVisitor.cpp
visitors/EvalVisitor.cpp
visitors/EvaluationContext.cpp
visitors/LinearityVisitor.cpp
visitors/TimeIndexVisitor.cpp
visitors/PrintVisitor.cpp
Expand Down Expand Up @@ -52,7 +51,6 @@ set(SRC_Expressions
include/antares/expressions/visitors/CloneVisitor.h
include/antares/expressions/visitors/CompareVisitor.h
include/antares/expressions/visitors/EvalVisitor.h
include/antares/expressions/visitors/EvaluationContext.h
include/antares/expressions/visitors/LinearStatus.h
include/antares/expressions/visitors/LinearityVisitor.h
include/antares/expressions/visitors/NodeVisitor.h
Expand Down
12 changes: 2 additions & 10 deletions src/expressions/include/antares/expressions/visitors/EvalVisitor.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
*/
#pragma once

#include <antares/expressions/visitors/EvaluationContext.h>
#include "antares/expressions/visitors/NodeVisitor.h"

namespace Antares::Expressions::Visitors
Expand All @@ -45,20 +44,13 @@ class EvalVisitor: public NodeVisitor<double>
{
public:
/**
* @brief Default constructor, creates an evaluation visitor with no context.
* @brief Default constructor
*/
EvalVisitor() = default; // No context (variables / parameters)
EvalVisitor() = default;

/**
* @brief Constructs an evaluation visitor with the specified context.
*
* @param context The evaluation context.
*/
explicit EvalVisitor(EvaluationContext context);
std::string name() const override;

private:
const EvaluationContext context_;
double visit(const Nodes::SumNode* node) override;
double visit(const Nodes::SubtractionNode* node) override;
double visit(const Nodes::MultiplicationNode* node) override;
Expand Down

This file was deleted.

8 changes: 2 additions & 6 deletions src/expressions/visitors/EvalVisitor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,6 @@

namespace Antares::Expressions::Visitors
{
EvalVisitor::EvalVisitor(EvaluationContext context):
context_(std::move(context))
{
}

double EvalVisitor::visit(const Nodes::SumNode* node)
{
Expand Down Expand Up @@ -90,12 +86,12 @@ double EvalVisitor::visit(const Nodes::GreaterThanOrEqualNode* node)

double EvalVisitor::visit(const Nodes::VariableNode* node)
{
return context_.getVariableValue(node->value());
throw EvalVisitorNotImplemented(name(), node->name());
}

double EvalVisitor::visit(const Nodes::ParameterNode* node)
{
return context_.getParameterValue(node->value());
throw EvalVisitorNotImplemented(name(), node->name());
}

double EvalVisitor::visit(const Nodes::LiteralNode* node)
Expand Down
21 changes: 0 additions & 21 deletions src/expressions/visitors/EvaluationContext.cpp

This file was deleted.

7 changes: 3 additions & 4 deletions src/solver/optim-model-filler/ComponentFiller.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ namespace Antares::Optimization

ComponentFiller::ComponentFiller(const Study::SystemModel::Component& component):
component_(component),
evaluationContext_(component_.getParameterValues(), {}),
modelVariable_(component.Variables())

{
Expand All @@ -54,7 +53,7 @@ void ComponentFiller::addVariables(Optimisation::LinearProblemApi::ILinearProble
return;
}

Expressions::Visitors::EvalVisitor evaluator(evaluationContext_);
Expressions::Visitors::EvalVisitor evaluator{};
for (const auto& variable: component_.Variables() | std::views::values)
{
if (variable.isTimeDependent())
Expand Down Expand Up @@ -124,7 +123,7 @@ void ComponentFiller::addConstraints(Optimisation::LinearProblemApi::ILinearProb
Optimisation::LinearProblemApi::ILinearProblemData& data,
Optimisation::LinearProblemApi::FillContext& ctx)
{
ReadLinearConstraintVisitor visitor(evaluationContext_);
ReadLinearConstraintVisitor visitor{};
for (const auto& constraint: component_.getConstraints() | std::views::values)
{
auto* root_node = constraint.expression().RootNode();
Expand Down Expand Up @@ -156,7 +155,7 @@ void ComponentFiller::addObjective(Optimisation::LinearProblemApi::ILinearProble
{
return;
}
ReadLinearExpressionVisitor visitor(evaluationContext_);
ReadLinearExpressionVisitor visitor{};
auto linear_expression = visitor.dispatch(component_.Objective().RootNode());
if (abs(linear_expression.offset()) > 1e-10)
{
Expand Down
6 changes: 0 additions & 6 deletions src/solver/optim-model-filler/ReadLinearConstraintVisitor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,6 @@ using namespace Antares::Expressions::Nodes;
namespace Antares::Optimization
{

ReadLinearConstraintVisitor::ReadLinearConstraintVisitor(
Expressions::Visitors::EvaluationContext context):
linear_expression_visitor_(std::move(context))
{
}

std::string ReadLinearConstraintVisitor::name() const
{
return "ReadLinearConstraintVisitor";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
#include <numeric>

#include <antares/expressions/nodes/ExpressionsNodes.h>
#include <antares/expressions/visitors/EvaluationContext.h>
#include <antares/expressions/visitors/NodeVisitor.h>
#include <antares/solver/optim-model-filler/ReadLinearExpressionVisitor.h>

Expand All @@ -31,12 +30,6 @@ using namespace Antares::Expressions::Nodes;
namespace Antares::Optimization
{

ReadLinearExpressionVisitor::ReadLinearExpressionVisitor(
Expressions::Visitors::EvaluationContext context):
context_(std::move(context))
{
}

std::string ReadLinearExpressionVisitor::name() const
{
return "ReadLinearExpressionVisitor";
Expand Down Expand Up @@ -94,7 +87,7 @@ LinearExpression ReadLinearExpressionVisitor::visit(const VariableNode* node)

LinearExpression ReadLinearExpressionVisitor::visit(const ParameterNode* node)
{
return {context_.getParameterValue(node->value()), {}};
throw std::invalid_argument("ReadLinearExpressionVisitor cannot visit ParameterNode");
}

LinearExpression ReadLinearExpressionVisitor::visit(const LiteralNode* node)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@

#include <antares/optimisation/linear-problem-api/linearProblemFiller.h>
#include <antares/study/system-model/component.h>
#include "antares/expressions/visitors/EvaluationContext.h"

#include "ReadLinearConstraintVisitor.h"

Expand Down Expand Up @@ -79,7 +78,6 @@ class ComponentFiller: public Optimisation::LinearProblemApi::LinearProblemFille
bool IsThisVariableTimeDependent(const std::string& var_id) const;

const Study::SystemModel::Component& component_;
Expressions::Visitors::EvaluationContext evaluationContext_;
const std::map<std::string, Study::SystemModel::Variable>& modelVariable_;
};
} // namespace Antares::Optimization
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@

#include <limits>

#include <antares/expressions/visitors/EvaluationContext.h>
#include <antares/expressions/visitors/NodeVisitor.h>

#include "ReadLinearExpressionVisitor.h"
Expand Down Expand Up @@ -54,7 +53,6 @@ class ReadLinearConstraintVisitor: public Expressions::Visitors::NodeVisitor<Lin
{
public:
ReadLinearConstraintVisitor() = default;
explicit ReadLinearConstraintVisitor(Expressions::Visitors::EvaluationContext context);
std::string name() const override;

private:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@

#pragma once

#include <antares/expressions/visitors/EvaluationContext.h>
#include <antares/expressions/visitors/NodeVisitor.h>
#include <antares/solver/optim-model-filler/LinearExpression.h>

Expand All @@ -38,11 +37,9 @@ class ReadLinearExpressionVisitor: public Expressions::Visitors::NodeVisitor<Lin
{
public:
ReadLinearExpressionVisitor() = default;
explicit ReadLinearExpressionVisitor(Expressions::Visitors::EvaluationContext context);
std::string name() const override;

private:
const Expressions::Visitors::EvaluationContext context_;
LinearExpression visit(const Expressions::Nodes::SumNode* node) override;
LinearExpression visit(const Expressions::Nodes::SubtractionNode* node) override;
LinearExpression visit(const Expressions::Nodes::MultiplicationNode* node) override;
Expand Down
46 changes: 23 additions & 23 deletions src/tests/src/expressions/test_PrintAndEvalNodes.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -212,29 +212,29 @@ BOOST_FIXTURE_TEST_CASE(print_port_field_sum_node, Registry<Node>)
BOOST_CHECK_EQUAL(printed, "august.2024");
}

BOOST_FIXTURE_TEST_CASE(evaluate_param, Registry<Node>)
{
ParameterNode root("my-param");
const double value = 221.3;
EvaluationContext context({{"my-param", value}}, {});

EvalVisitor evalVisitor(context);
const double eval = evalVisitor.dispatch(&root);

BOOST_CHECK_EQUAL(value, eval);
}

BOOST_FIXTURE_TEST_CASE(evaluate_variable, Registry<Node>)
{
VariableNode root("my-variable");
const double value = 221.3;
EvaluationContext context({}, {{"my-variable", value}});

EvalVisitor evalVisitor(context);
const double eval = evalVisitor.dispatch(&root);

BOOST_CHECK_EQUAL(value, eval);
}
// BOOST_FIXTURE_TEST_CASE(evaluate_param, Registry<Node>)
// {
// ParameterNode root("my-param");
// const double value = 221.3;
// EvaluationContext context({{"my-param", value}}, {});
//
// EvalVisitor evalVisitor(context);
// const double eval = evalVisitor.dispatch(&root);
//
// BOOST_CHECK_EQUAL(value, eval);
// }
//
// BOOST_FIXTURE_TEST_CASE(evaluate_variable, Registry<Node>)
// {
// VariableNode root("my-variable");
// const double value = 221.3;
// EvaluationContext context({}, {{"my-variable", value}});
//
// EvalVisitor evalVisitor(context);
// const double eval = evalVisitor.dispatch(&root);
//
// BOOST_CHECK_EQUAL(value, eval);
// }

BOOST_FIXTURE_TEST_CASE(multiplication_node, Registry<Node>)
{
Expand Down
Loading

0 comments on commit e1f2ac5

Please sign in to comment.