mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-03-26 17:20:53 +01:00
[poincare] Expression(Node)::setSign is not const
This commit is contained in:
@@ -25,7 +25,7 @@ public:
|
||||
// Properties
|
||||
Type type() const override { return Type::AbsoluteValue; }
|
||||
Sign sign() const override { return Sign::Positive; }
|
||||
Expression setSign(Sign s, Context & context, Preferences::AngleUnit angleUnit) const override;
|
||||
Expression setSign(Sign s, Context & context, Preferences::AngleUnit angleUnit) override;
|
||||
|
||||
// Approximation
|
||||
template<typename T> static Complex<T> computeOnComplex(const std::complex<T> c, Preferences::AngleUnit angleUnit);
|
||||
@@ -56,7 +56,7 @@ public:
|
||||
}
|
||||
Expression shallowReduce(Context & context, Preferences::AngleUnit angleUnit) const;
|
||||
private:
|
||||
Expression setSign(ExpressionNode::Sign s, Context & context, Preferences::AngleUnit angleUnit) const;
|
||||
Expression setSign(ExpressionNode::Sign s, Context & context, Preferences::AngleUnit angleUnit);
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ public:
|
||||
// Properties
|
||||
Type type() const override { return Type::Decimal; }
|
||||
Sign sign() const override { return m_negative ? Sign::Negative : Sign::Positive; }
|
||||
Expression setSign(Sign s, Context & context, Preferences::AngleUnit angleUnit) const override;
|
||||
Expression setSign(Sign s, Context & context, Preferences::AngleUnit angleUnit) override;
|
||||
|
||||
// Approximation
|
||||
Evaluation<float> approximate(SinglePrecision p, Context& context, Preferences::AngleUnit angleUnit) const override {
|
||||
@@ -102,7 +102,7 @@ private:
|
||||
constexpr static int k_maxMantissaLength = 20;
|
||||
DecimalNode * node() const { return static_cast<DecimalNode *>(Number::node()); }
|
||||
Decimal(size_t size, const Integer & m, int e);
|
||||
Expression setSign(ExpressionNode::Sign s, Context & context, Preferences::AngleUnit angleUnit) const;
|
||||
Expression setSign(ExpressionNode::Sign s, Context & context, Preferences::AngleUnit angleUnit);
|
||||
// Simplification
|
||||
Expression shallowReduce(Context& context, Preferences::AngleUnit angleUnit) const;
|
||||
Expression shallowBeautify(Context& context, Preferences::AngleUnit angleUnit) const;
|
||||
|
||||
@@ -15,7 +15,7 @@ public:
|
||||
// ExpressionNode
|
||||
void setChildrenInPlace(Expression other) override {}
|
||||
ExpressionNode::Sign sign() const override { return ExpressionNode::Sign::Unknown; }
|
||||
Expression setSign(ExpressionNode::Sign s, Context & context, Preferences::AngleUnit angleUnit) const override { return Expression(this).clone(); }
|
||||
Expression setSign(ExpressionNode::Sign s, Context & context, Preferences::AngleUnit angleUnit) override { return Expression(this).clone(); }
|
||||
int polynomialDegree(char symbolName) const override { return -1; }
|
||||
|
||||
Evaluation<float> approximate(ExpressionNode::SinglePrecision p, Context& context, Preferences::AngleUnit angleUnit) const override { return Complex<float>::Undefined(); }
|
||||
|
||||
@@ -181,7 +181,7 @@ protected:
|
||||
Expression shallowBeautify(Context & context, Preferences::AngleUnit angleUnit) { return node()->shallowBeautify(context, angleUnit); }
|
||||
Expression deepBeautify(Context & context, Preferences::AngleUnit angleUnit);
|
||||
Expression deepReduce(Context & context, Preferences::AngleUnit angleUnit, const Expression futureParent = Expression());
|
||||
Expression setSign(ExpressionNode::Sign s, Context & context, Preferences::AngleUnit angleUnit) const { return node()->setSign(s, context, angleUnit); }
|
||||
Expression setSign(ExpressionNode::Sign s, Context & context, Preferences::AngleUnit angleUnit) { return node()->setSign(s, context, angleUnit); }
|
||||
private:
|
||||
/* Simplification */
|
||||
Expression defaultShallowReduce(Context & context, Preferences::AngleUnit angleUnit);
|
||||
|
||||
@@ -42,7 +42,7 @@ public:
|
||||
// Properties
|
||||
Type type() const override { return Type::Float; }
|
||||
Sign sign() const override { return m_value < 0 ? Sign::Negative : Sign::Positive; }
|
||||
Expression setSign(Sign s, Context & context, Preferences::AngleUnit angleUnit) const override;
|
||||
Expression setSign(Sign s, Context & context, Preferences::AngleUnit angleUnit) override;
|
||||
int simplificationOrderSameType(const ExpressionNode * e, bool canBeInterrupted) const override;
|
||||
|
||||
// Layout
|
||||
|
||||
@@ -13,7 +13,7 @@ public:
|
||||
InfinityNode * failedAllocationStaticNode() override { return FailedAllocationStaticNode(); }
|
||||
|
||||
void setNegative(bool negative) { m_negative = negative; }
|
||||
Expression setSign(Sign s, Context & context, Preferences::AngleUnit angleUnit) const override;
|
||||
Expression setSign(Sign s, Context & context, Preferences::AngleUnit angleUnit) override;
|
||||
|
||||
// TreeNode
|
||||
size_t size() const override { return sizeof(InfinityNode); }
|
||||
|
||||
@@ -157,7 +157,7 @@ public:
|
||||
|
||||
// ExpressionNode
|
||||
Sign sign() const override { return m_negative ? Sign::Negative : Sign::Positive; }
|
||||
Expression setSign(Sign s, Context & context, Preferences::AngleUnit angleUnit) const override;
|
||||
Expression setSign(Sign s, Context & context, Preferences::AngleUnit angleUnit) override;
|
||||
|
||||
void setNegative(bool negative);
|
||||
|
||||
@@ -243,7 +243,7 @@ private:
|
||||
|
||||
// Simplification
|
||||
Expression shallowReduce(Context & context, Preferences::AngleUnit angleUnit) const;
|
||||
Expression setSign(ExpressionNode::Sign s, Context & context, Preferences::AngleUnit angleUnit) const;
|
||||
Expression setSign(ExpressionNode::Sign s, Context & context, Preferences::AngleUnit angleUnit);
|
||||
};
|
||||
|
||||
struct IntegerDivision {
|
||||
|
||||
@@ -45,7 +45,7 @@ public:
|
||||
|
||||
private:
|
||||
// Property
|
||||
Expression setSign(Sign s, Context & context, Preferences::AngleUnit angleUnit) const override;
|
||||
Expression setSign(Sign s, Context & context, Preferences::AngleUnit angleUnit) override;
|
||||
|
||||
// Layout
|
||||
bool needsParenthesesWithParent(const SerializationHelperInterface * parentNode) const override;
|
||||
@@ -87,7 +87,7 @@ public:
|
||||
}
|
||||
|
||||
// Expression
|
||||
Expression setSign(ExpressionNode::Sign s, Context & context, Preferences::AngleUnit angleUnit) const;
|
||||
Expression setSign(ExpressionNode::Sign s, Context & context, Preferences::AngleUnit angleUnit);
|
||||
Expression shallowReduce(Context& context, Preferences::AngleUnit angleUnit) const;
|
||||
Expression shallowBeautify(Context& context, Preferences::AngleUnit angleUnit) const;
|
||||
int getPolynomialCoefficients(char symbolName, Expression coefficients[]) const;
|
||||
|
||||
@@ -28,7 +28,7 @@ public:
|
||||
// Properties
|
||||
Type type() const override { return Type::Power; }
|
||||
Sign sign() const override;
|
||||
Expression setSign(Sign s, Context & context, Preferences::AngleUnit angleUnit) const override;
|
||||
Expression setSign(Sign s, Context & context, Preferences::AngleUnit angleUnit) override;
|
||||
|
||||
int polynomialDegree(char symbolName) const override;
|
||||
int getPolynomialCoefficients(char symbolName, Expression coefficients[]) const override;
|
||||
@@ -75,7 +75,7 @@ public:
|
||||
replaceChildAtIndexInPlace(1, exponent);
|
||||
}
|
||||
Power(const PowerNode * n) : Expression(n) {}
|
||||
Expression setSign(ExpressionNode::Sign s, Context & context, Preferences::AngleUnit angleUnit) const;
|
||||
Expression setSign(ExpressionNode::Sign s, Context & context, Preferences::AngleUnit angleUnit);
|
||||
int getPolynomialCoefficients(char symbolName, Expression coefficients[]) const;
|
||||
Expression shallowReduce(Context & context, Preferences::AngleUnit angleUnit) const;
|
||||
Expression shallowBeautify(Context & context, Preferences::AngleUnit angleUnit) const;
|
||||
|
||||
@@ -26,7 +26,7 @@ public:
|
||||
// Properties
|
||||
Type type() const override { return Type::Random; }
|
||||
Sign sign() const override { return Sign::Positive; }
|
||||
Expression setSign(Sign s, Context & context, Preferences::AngleUnit angleUnit) const override;
|
||||
Expression setSign(Sign s, Context & context, Preferences::AngleUnit angleUnit) override;
|
||||
private:
|
||||
// Layout
|
||||
LayoutReference createLayout(Preferences::PrintFloatMode floatDisplayMode, int numberOfSignificantDigits) const override;
|
||||
@@ -52,7 +52,7 @@ public:
|
||||
|
||||
template<typename T> static T random();
|
||||
private:
|
||||
Expression setSign(ExpressionNode::Sign s, Context & context, Preferences::AngleUnit angleUnit) const;
|
||||
Expression setSign(ExpressionNode::Sign s, Context & context, Preferences::AngleUnit angleUnit);
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -60,7 +60,7 @@ private:
|
||||
int simplificationOrderSameType(const ExpressionNode * e, bool canBeInterrupted) const override;
|
||||
Expression shallowReduce(Context & context, Preferences::AngleUnit angleUnit) const override;
|
||||
Expression shallowBeautify(Context & context, Preferences::AngleUnit angleUnit) const override;
|
||||
Expression setSign(Sign s, Context & context, Preferences::AngleUnit angleUnit) const override;
|
||||
Expression setSign(Sign s, Context & context, Preferences::AngleUnit angleUnit) override;
|
||||
Expression denominator(Context & context, Preferences::AngleUnit angleUnit) const override;
|
||||
bool m_negative;
|
||||
size_t m_numberOfDigitsNumerator;
|
||||
@@ -123,7 +123,7 @@ private:
|
||||
/* Simplification */
|
||||
Expression shallowBeautify(Context & context, Preferences::AngleUnit angleUnit) const;
|
||||
Expression denominator(Context & context, Preferences::AngleUnit angleUnit) const;
|
||||
Expression setSign(ExpressionNode::Sign s) const;
|
||||
Expression setSign(ExpressionNode::Sign s);
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ public:
|
||||
// Properties
|
||||
Type type() const override { return Type::Undefined; }
|
||||
int polynomialDegree(char symbolName) const override;
|
||||
Expression setSign(Sign s, Context & context, Preferences::AngleUnit angleUnit) const override;
|
||||
Expression setSign(Sign s, Context & context, Preferences::AngleUnit angleUnit) override;
|
||||
|
||||
// Approximation
|
||||
Evaluation<float> approximate(SinglePrecision p, Context& context, Preferences::AngleUnit angleUnit) const override {
|
||||
|
||||
@@ -17,7 +17,7 @@ public:
|
||||
// ExpressionNode
|
||||
void setChildrenInPlace(Expression other) override { assert(false); return ExceptionExpressionNode<ExpressionNode>::setChildrenInPlace(other); }
|
||||
ExpressionNode::Sign sign() const override { assert(false); return ExceptionExpressionNode<ExpressionNode>::sign(); }
|
||||
Expression setSign(ExpressionNode::Sign s, Context & context, Preferences::AngleUnit angleUnit) const override { assert(false); return ExceptionExpressionNode<ExpressionNode>::setSign(s, context, angleUnit); }
|
||||
Expression setSign(Sign s, Context & context, Preferences::AngleUnit angleUnit) override { assert(false); return ExceptionExpressionNode<ExpressionNode>::setSign(s, context, angleUnit); }
|
||||
|
||||
ExpressionNode::Type type() const override { assert(false); return ExpressionNode::Type::Uninitialized; }
|
||||
int serialize(char * buffer, int bufferSize, Preferences::PrintFloatMode floatDisplayMode = Preferences::PrintFloatMode::Decimal, int numberOfSignificantDigits = 0) const override {
|
||||
|
||||
@@ -19,7 +19,7 @@ int UndefinedNode::polynomialDegree(char symbolName) const {
|
||||
return -1;
|
||||
}
|
||||
|
||||
Expression UndefinedNode::setSign(Sign s, Context & context, Preferences::AngleUnit angleUnit) const {
|
||||
Expression UndefinedNode::setSign(Sign s, Context & context, Preferences::AngleUnit angleUnit) {
|
||||
return Undefined();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user