Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/core/actions/codac2_OctaSym.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ namespace codac2
class SepBase;
class SepAction;
class SetExpr;
class OctaSymOp;
struct OctaSymOp;

/**
* \class Action
Expand Down Expand Up @@ -168,4 +168,4 @@ namespace codac2
return str;
}
};
}
}
3 changes: 2 additions & 1 deletion src/core/contractors/codac2_CtcDist.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ namespace codac2
*/
CtcDist();

using CtcBase<IntervalVector>::contract;
/**
* \brief Applies \f$\mathcal{C}_{\textrm{dist}}\big([\mathbf{x}]\big)\f$.
*
Expand All @@ -55,4 +56,4 @@ namespace codac2
*/
void contract(Interval& a1, Interval& a2, Interval& b1, Interval& b2, Interval& d) const;
};
}
}
3 changes: 2 additions & 1 deletion src/core/contractors/codac2_CtcPolar.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ namespace codac2
: Ctc<CtcPolar,IntervalVector>(4)
{ }

using CtcBase<IntervalVector>::contract;
/**
* \brief Applies \f$\mathcal{C}_{\textrm{polar}}\big([\mathbf{x}]\big)\f$.
*
Expand All @@ -59,4 +60,4 @@ namespace codac2
*/
void contract(Interval& x, Interval& y, Interval& rho, Interval& theta) const;
};
}
}
3 changes: 2 additions & 1 deletion src/core/contractors/codac2_CtcProj.h
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,8 @@ namespace codac2
assert_release(size_of(c) >= (Index)_xi.size() && "cannot compute a projection of a set into a superset");
assert_release(default_eps > 0.);
}


using CtcBase<IntervalVector>::contract;
void contract(IntervalVector& x) const;
void contract(IntervalVector& x, double eps) const;

Expand Down
4 changes: 2 additions & 2 deletions src/core/domains/tube/codac2_Slice.h
Original file line number Diff line number Diff line change
Expand Up @@ -295,7 +295,7 @@ namespace codac2
*
* No propagation is performed on adjacent slices.
*/
inline void init()
inline void init() override
{
this->T::init();
// Nothing to propagate to adjacent codomains
Expand All @@ -306,7 +306,7 @@ namespace codac2
*
* Adjacent gates are updated accordingly.
*/
inline void set_empty()
inline void set_empty() override
{
set_empty(true);
}
Expand Down
15 changes: 8 additions & 7 deletions src/core/domains/tube/codac2_SlicedTube.h
Original file line number Diff line number Diff line change
Expand Up @@ -382,7 +382,7 @@ namespace codac2
{
return eval_common(t,
[this](auto it, const Interval& t_) {
return slice(it)->operator()(t_);
return this->slice(it)->operator()(t_);
});
}

Expand All @@ -398,7 +398,8 @@ namespace codac2
{
return eval_common(t,
[this,&v](auto it, const Interval& t_) {
return slice(it)->operator()(t_, *v.slice(it));
return this->slice(it)->operator()(t_, *v.slice(it));

});
}

Expand Down Expand Up @@ -783,7 +784,7 @@ namespace codac2
{
return invert_common(y, t,
[this,&y](auto it, const Interval& t_) {
return slice(it)->invert(y, t_);
return this->slice(it)->invert(y, t_);
});
}

Expand Down Expand Up @@ -812,7 +813,7 @@ namespace codac2
{
return invert_common_subsets(y, v_t, t,
[this,&y](auto it, const Interval& t_) {
return slice(it)->invert(y, t_);
return this->slice(it)->invert(y, t_);
});
}

Expand Down Expand Up @@ -849,7 +850,7 @@ namespace codac2
{
return invert_common(y, t,
[this,&v,&y](auto it, const Interval& t_) {
return slice(it)->invert(y, *v.slice(it), t_);
return this->slice(it)->invert(y, *v.slice(it), t_);
});
}

Expand Down Expand Up @@ -886,7 +887,7 @@ namespace codac2
{
return invert_common_subsets(y, v_t, t,
[this,&v,&y](auto it, const Interval& t_) {
return slice(it)->invert(y, *v.slice(it), t_);
return this->slice(it)->invert(y, *v.slice(it), t_);
});
}

Expand Down Expand Up @@ -1265,4 +1266,4 @@ namespace codac2
}
}

#include "codac2_SlicedTube_integral_impl.h"
#include "codac2_SlicedTube_integral_impl.h"
16 changes: 8 additions & 8 deletions src/core/functions/analytic/codac2_AnalyticExpr.h
Original file line number Diff line number Diff line change
Expand Up @@ -76,17 +76,17 @@ namespace codac2
: OperationExprBase<AnalyticExpr<X>...>(e)
{ }

std::shared_ptr<ExprBase> copy() const
std::shared_ptr<ExprBase> copy() const override
{
return std::make_shared<AnalyticOperationExpr<C,Y,X...>>(*this);
}

void replace_arg(const ExprID& old_arg_id, const std::shared_ptr<ExprBase>& new_expr)
void replace_arg(const ExprID& old_arg_id, const std::shared_ptr<ExprBase>& new_expr) override
{
return OperationExprBase<AnalyticExpr<X>...>::replace_arg(old_arg_id, new_expr);
}

Y fwd_eval(ValuesMap& v, Index total_input_size, bool natural_eval) const
Y fwd_eval(ValuesMap& v, Index total_input_size, bool natural_eval) const override
{
return std::apply(
[this,&v,total_input_size,natural_eval](auto &&... x)
Expand All @@ -102,7 +102,7 @@ namespace codac2
this->_x);
}

void bwd_eval(ValuesMap& v) const
void bwd_eval(ValuesMap& v) const override
{
auto y = AnalyticExpr<Y>::value(v);

Expand All @@ -117,20 +117,20 @@ namespace codac2
}, this->_x);
}

virtual std::string str(bool in_parentheses = false) const
virtual std::string str(bool in_parentheses = false) const override
{
std::string s = std::apply([](auto &&... x) {
return C::str(x...);
}, this->_x);
return in_parentheses ? "(" + s + ")" : s;
}

virtual bool is_str_leaf() const
virtual bool is_str_leaf() const override
{
return false;
}

std::pair<Index,Index> output_shape() const
std::pair<Index,Index> output_shape() const override
{
std::pair<Index,Index> s;
std::apply([&s](auto &&... x)
Expand All @@ -140,7 +140,7 @@ namespace codac2
return s;
}

virtual bool belongs_to_args_list(const FunctionArgsList& args) const
virtual bool belongs_to_args_list(const FunctionArgsList& args) const override
{
bool b = true;

Expand Down
14 changes: 7 additions & 7 deletions src/core/functions/analytic/codac2_analytic_constants.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,12 @@ namespace codac2
return _x;
}

std::shared_ptr<ExprBase> copy() const
std::shared_ptr<ExprBase> copy() const override
{
return std::make_shared<ConstValueExpr<T>>(*this);
}

T fwd_eval(ValuesMap& v, Index total_input_size, bool natural_eval) const
T fwd_eval(ValuesMap& v, Index total_input_size, bool natural_eval) const override
{
if(natural_eval)
return AnalyticExpr<T>::init_value(v, T(
Expand All @@ -55,12 +55,12 @@ namespace codac2
));
}

void bwd_eval(ValuesMap& v) const
void bwd_eval(ValuesMap& v) const override
{
AnalyticExpr<T>::value(v).a &= _x;
}

std::pair<Index,Index> output_shape() const
std::pair<Index,Index> output_shape() const override
{
if constexpr(std::is_same_v<T,ScalarType>)
return {1,1};
Expand All @@ -74,17 +74,17 @@ namespace codac2
assert_release_constexpr(false && "unknow output shape for constant");
}

void replace_arg([[maybe_unused]] const ExprID& old_arg_id, [[maybe_unused]] const std::shared_ptr<ExprBase>& new_expr)
void replace_arg([[maybe_unused]] const ExprID& old_arg_id, [[maybe_unused]] const std::shared_ptr<ExprBase>& new_expr) override
{ }

virtual bool belongs_to_args_list([[maybe_unused]] const FunctionArgsList& args) const
virtual bool belongs_to_args_list([[maybe_unused]] const FunctionArgsList& args) const override
{
return true;
}

virtual std::string str(bool in_parentheses = false) const override;

virtual bool is_str_leaf() const
virtual bool is_str_leaf() const override
{
return true;
}
Expand Down
32 changes: 16 additions & 16 deletions src/core/operators/codac2_component.h
Original file line number Diff line number Diff line change
Expand Up @@ -71,17 +71,17 @@ namespace codac2
: OperationExprBase<AnalyticExpr<VectorType>>(e), _i(e._i)
{ }

std::shared_ptr<ExprBase> copy() const
std::shared_ptr<ExprBase> copy() const override
{
return std::make_shared<AnalyticOperationExpr<ComponentOp,ScalarType,VectorType>>(*this);
}

void replace_arg(const ExprID& old_arg_id, const std::shared_ptr<ExprBase>& new_expr)
void replace_arg(const ExprID& old_arg_id, const std::shared_ptr<ExprBase>& new_expr) override
{
return OperationExprBase<AnalyticExpr<VectorType>>::replace_arg(old_arg_id, new_expr);
}

ScalarType fwd_eval(ValuesMap& v, Index total_input_size, bool natural_eval) const
ScalarType fwd_eval(ValuesMap& v, Index total_input_size, bool natural_eval) const override
{
if(natural_eval)
return AnalyticExpr<ScalarType>::init_value(
Expand All @@ -91,29 +91,29 @@ namespace codac2
v, ComponentOp::fwd_centered(std::get<0>(this->_x)->fwd_eval(v, total_input_size, natural_eval), _i));
}

void bwd_eval(ValuesMap& v) const
void bwd_eval(ValuesMap& v) const override
{
ComponentOp::bwd(AnalyticExpr<ScalarType>::value(v).a, std::get<0>(this->_x)->value(v).a, _i);
std::get<0>(this->_x)->bwd_eval(v);
}

std::pair<Index,Index> output_shape() const
std::pair<Index,Index> output_shape() const override
{
return ComponentOp::output_shape(std::get<0>(this->_x),_i);
}

virtual bool belongs_to_args_list(const FunctionArgsList& args) const
virtual bool belongs_to_args_list(const FunctionArgsList& args) const override
{
return std::get<0>(this->_x)->belongs_to_args_list(args);
}

std::string str(bool in_parentheses = false) const
std::string str(bool in_parentheses = false) const override
{
std::string s = ComponentOp::str(std::get<0>(this->_x), _i);
return in_parentheses ? "(" + s + ")" : s;
}

virtual bool is_str_leaf() const
virtual bool is_str_leaf() const override
{
return true;
}
Expand Down Expand Up @@ -146,17 +146,17 @@ namespace codac2
: OperationExprBase<AnalyticExpr<MatrixType>>(e), _i(e._i), _j(e._j)
{ }

std::shared_ptr<ExprBase> copy() const
std::shared_ptr<ExprBase> copy() const override
{
return std::make_shared<AnalyticOperationExpr<ComponentOp,ScalarType,MatrixType>>(*this);
}

void replace_arg(const ExprID& old_arg_id, const std::shared_ptr<ExprBase>& new_expr)
void replace_arg(const ExprID& old_arg_id, const std::shared_ptr<ExprBase>& new_expr) override
{
return OperationExprBase<AnalyticExpr<MatrixType>>::replace_arg(old_arg_id, new_expr);
}

ScalarType fwd_eval(ValuesMap& v, Index total_input_size, bool natural_eval) const
ScalarType fwd_eval(ValuesMap& v, Index total_input_size, bool natural_eval) const override
{
if(natural_eval)
return AnalyticExpr<ScalarType>::init_value(
Expand All @@ -166,29 +166,29 @@ namespace codac2
v, ComponentOp::fwd_centered(std::get<0>(this->_x)->fwd_eval(v, total_input_size, natural_eval), _i, _j));
}

void bwd_eval(ValuesMap& v) const
void bwd_eval(ValuesMap& v) const override
{
ComponentOp::bwd(AnalyticExpr<ScalarType>::value(v).a, std::get<0>(this->_x)->value(v).a, _i, _j);
std::get<0>(this->_x)->bwd_eval(v);
}

std::pair<Index,Index> output_shape() const
std::pair<Index,Index> output_shape() const override
{
return ComponentOp::output_shape(std::get<0>(this->_x),_i,_j);
}

virtual bool belongs_to_args_list(const FunctionArgsList& args) const
virtual bool belongs_to_args_list(const FunctionArgsList& args) const override
{
return std::get<0>(this->_x)->belongs_to_args_list(args);
}

std::string str(bool in_parentheses = false) const
std::string str(bool in_parentheses = false) const override
{
std::string s = ComponentOp::str(std::get<0>(this->_x), _i, _j);
return in_parentheses ? "(" + s + ")" : s;
}

virtual bool is_str_leaf() const
virtual bool is_str_leaf() const override
{
return true;
}
Expand Down
4 changes: 2 additions & 2 deletions src/core/peibos/codac2_peibos.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
namespace codac2
{
// Forward declarations to reduce compilation load caused by heavy template use:
class AnalyticTypeBase;
struct AnalyticTypeBase;

template<typename T>
requires std::is_base_of_v<AnalyticTypeBase,T>
Expand Down Expand Up @@ -65,4 +65,4 @@ namespace codac2
* \return A vector of Parallelepipeds enclosing \f$\mathbf{f}(\sigma(\psi_0([-1,1]^m))+ offset)\f$ for each symmetry \f$\sigma\f$ in the set of symmetries \f$\Sigma\f$.
*/
std::vector<Parallelepiped> PEIBOS(const AnalyticFunction<VectorType>& f, const AnalyticFunction<VectorType>& psi_0, const std::vector<OctaSym>& Sigma, double epsilon, const Vector& offset, bool verbose = false);
}
}
2 changes: 2 additions & 0 deletions src/core/tools/codac2_TypeInfo.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@

#pragma once

#include <type_traits>

namespace codac2
{
template<typename T>
Expand Down
Loading
Loading