Rename UCodePointUnknownX to UCodePointUnknown

This commit is contained in:
Ruben Dashyan
2019-09-26 10:29:00 +02:00
committed by Léa Saviot
parent b728fb8a1b
commit c3cf5c1ef4
9 changed files with 32 additions and 32 deletions

View File

@@ -129,7 +129,7 @@ T Sequence::approximateToNextRank(int n, SequenceContext * sqctx) const {
constexpr int bufferSize = CodePoint::MaxCodePointCharLength + 1;
char unknownN[bufferSize];
Poincare::SerializationHelper::CodePoint(unknownN, bufferSize, UCodePointUnknownX);
Poincare::SerializationHelper::CodePoint(unknownN, bufferSize, UCodePointUnknown);
CacheContext<T> ctx = CacheContext<T>(sqctx);
// Hold values u(n), u(n-1), u(n-2), v(n), v(n-1), v(n-2)...

View File

@@ -165,9 +165,9 @@ void ContinuousFunction::setPlotType(PlotType newPlotType, Poincare::Preferences
Expression e = expressionClone();
// Change y(t) to [t y(t)]
Matrix newExpr = Matrix::Builder();
newExpr.addChildAtIndexInPlace(Symbol::Builder(UCodePointUnknownX), 0, 0);
newExpr.addChildAtIndexInPlace(Symbol::Builder(UCodePointUnknown), 0, 0);
// if y(t) was not uninitialized, insert [t 2t] to set an example
e = e.isUninitialized() ? Multiplication::Builder(Rational::Builder(2), Symbol::Builder(UCodePointUnknownX)) : e;
e = e.isUninitialized() ? Multiplication::Builder(Rational::Builder(2), Symbol::Builder(UCodePointUnknown)) : e;
newExpr.addChildAtIndexInPlace(e, newExpr.numberOfChildren(), newExpr.numberOfChildren());
newExpr.setDimensions(2, 1);
setExpressionContent(newExpr);
@@ -237,7 +237,7 @@ double ContinuousFunction::approximateDerivative(double x, Poincare::Context * c
if (x < tMin() || x > tMax()) {
return NAN;
}
Poincare::Derivative derivative = Poincare::Derivative::Builder(expressionReduced(context).clone(), Symbol::Builder(UCodePointUnknownX), Poincare::Float<double>::Builder(x)); // derivative takes ownership of Poincare::Float<double>::Builder(x) and the clone of expression
Poincare::Derivative derivative = Poincare::Derivative::Builder(expressionReduced(context).clone(), Symbol::Builder(UCodePointUnknown), Poincare::Float<double>::Builder(x)); // derivative takes ownership of Poincare::Float<double>::Builder(x) and the clone of expression
/* TODO: when we approximate derivative, we might want to simplify the
* derivative here. However, we might want to do it once for all x (to avoid
* lagging in the derivative table. */
@@ -281,7 +281,7 @@ Coordinate2D<T> ContinuousFunction::templatedApproximateAtParameter(T t, Poincar
}
constexpr int bufferSize = CodePoint::MaxCodePointCharLength + 1;
char unknown[bufferSize];
Poincare::SerializationHelper::CodePoint(unknown, bufferSize, UCodePointUnknownX);
Poincare::SerializationHelper::CodePoint(unknown, bufferSize, UCodePointUnknown);
PlotType type = plotType();
Expression e = expressionReduced(context);
if (type != PlotType::Parametric) {
@@ -312,7 +312,7 @@ Coordinate2D<double> ContinuousFunction::nextIntersectionFrom(double start, doub
assert(plotType() == PlotType::Cartesian);
constexpr int bufferSize = CodePoint::MaxCodePointCharLength + 1;
char unknownX[bufferSize];
SerializationHelper::CodePoint(unknownX, bufferSize, UCodePointUnknownX);
SerializationHelper::CodePoint(unknownX, bufferSize, UCodePointUnknown);
double domainMin = maxDouble(tMin(), eDomainMin);
double domainMax = minDouble(tMax(), eDomainMax);
if (step > 0.0f) {
@@ -329,7 +329,7 @@ Coordinate2D<double> ContinuousFunction::nextPointOfInterestFrom(double start, d
assert(plotType() == PlotType::Cartesian);
constexpr int bufferSize = CodePoint::MaxCodePointCharLength + 1;
char unknownX[bufferSize];
SerializationHelper::CodePoint(unknownX, bufferSize, UCodePointUnknownX);
SerializationHelper::CodePoint(unknownX, bufferSize, UCodePointUnknown);
if (step > 0.0f) {
start = maxDouble(start, tMin());
max = minDouble(max, tMax());
@@ -344,7 +344,7 @@ Poincare::Expression ContinuousFunction::sumBetweenBounds(double start, double e
assert(plotType() == PlotType::Cartesian);
start = maxDouble(start, tMin());
end = minDouble(end, tMax());
return Poincare::Integral::Builder(expressionReduced(context).clone(), Poincare::Symbol::Builder(UCodePointUnknownX), Poincare::Float<double>::Builder(start), Poincare::Float<double>::Builder(end)); // Integral takes ownership of args
return Poincare::Integral::Builder(expressionReduced(context).clone(), Poincare::Symbol::Builder(UCodePointUnknown), Poincare::Float<double>::Builder(start), Poincare::Float<double>::Builder(end)); // Integral takes ownership of args
/* TODO: when we approximate integral, we might want to simplify the integral
* here. However, we might want to do it once for all x (to avoid lagging in
* the derivative table. */

View File

@@ -27,7 +27,7 @@ void ExpressionModel::text(const Storage::Record * record, char * buffer, size_t
buffer[0] = 0;
} else {
if (symbol != 0 && !e.isUninitialized()) {
e = e.replaceSymbolWithExpression(Symbol::Builder(UCodePointUnknownX), Symbol::Builder(symbol));
e = e.replaceSymbolWithExpression(Symbol::Builder(UCodePointUnknown), Symbol::Builder(symbol));
}
e.serialize(buffer, bufferSize);
}
@@ -67,7 +67,7 @@ Layout ExpressionModel::layout(const Storage::Record * record, CodePoint symbol)
if (m_layout.isUninitialized()) {
Expression clone = expressionClone(record);
if (!clone.isUninitialized() && symbol != 0) {
clone = clone.replaceSymbolWithExpression(Symbol::Builder(UCodePointUnknownX), Symbol::Builder(symbol));
clone = clone.replaceSymbolWithExpression(Symbol::Builder(UCodePointUnknown), Symbol::Builder(symbol));
}
m_layout = PoincareHelpers::CreateLayout(clone);
if (m_layout.isUninitialized()) {
@@ -134,7 +134,7 @@ Poincare::Expression ExpressionModel::BuildExpressionFromText(const char * c, Co
// Compute the expression to store, without replacing symbols
expressionToStore = Expression::Parse(c);
if (!expressionToStore.isUninitialized() && symbol != 0) {
expressionToStore = expressionToStore.replaceSymbolWithExpression(Symbol::Builder(symbol), Symbol::Builder(UCodePointUnknownX));
expressionToStore = expressionToStore.replaceSymbolWithExpression(Symbol::Builder(symbol), Symbol::Builder(UCodePointUnknown));
}
}
return expressionToStore;

View File

@@ -54,7 +54,7 @@ void GlobalContext::setExpressionForSymbolAbstract(const Expression & expression
assert(symbol.type() == ExpressionNode::Type::Function);
Expression child = symbol.childAtIndex(0);
assert(child.type() == ExpressionNode::Type::Symbol);
finalExpression = finalExpression.replaceSymbolWithExpression(static_cast<Symbol&>(child), Symbol::Builder(UCodePointUnknownX));
finalExpression = finalExpression.replaceSymbolWithExpression(static_cast<Symbol&>(child), Symbol::Builder(UCodePointUnknown));
SetExpressionForFunction(finalExpression, symbol, record);
}
}
@@ -84,7 +84,7 @@ const Expression GlobalContext::ExpressionForFunction(const SymbolAbstract & sym
* expression, use the function record handle. */
Expression e = ContinuousFunction(r).expressionClone();
if (!e.isUninitialized()) {
e = e.replaceSymbolWithExpression(Symbol::Builder(UCodePointUnknownX), symbol.childAtIndex(0));
e = e.replaceSymbolWithExpression(Symbol::Builder(UCodePointUnknown), symbol.childAtIndex(0));
}
return e;
}

View File

@@ -19,7 +19,7 @@ private:
static constexpr CodePoint UCodePointNull = 0x0;
// 0x1 represents soh. It is not used, so we can use it for another purpose.
static constexpr CodePoint UCodePointUnknownX = 0x1;
static constexpr CodePoint UCodePointUnknown = 0x1;
static constexpr CodePoint UCodePointTabulation = 0x9;
static constexpr CodePoint UCodePointLineFeed = 0xa;

View File

@@ -127,7 +127,7 @@ Evaluation<T> SymbolNode::templatedApproximate(Context * context, Preferences::C
}
bool SymbolNode::isUnknown() const {
bool result = UTF8Helper::CodePointIs(m_name, UCodePointUnknownX);
bool result = UTF8Helper::CodePointIs(m_name, UCodePointUnknown);
if (result) {
assert(m_name[1] == 0);
}

View File

@@ -58,7 +58,7 @@ float Trigonometry::characteristicXRange(const Expression & e, Context * context
constexpr int bufferSize = CodePoint::MaxCodePointCharLength + 1;
char x[bufferSize];
SerializationHelper::CodePoint(x, bufferSize, UCodePointUnknownX);
SerializationHelper::CodePoint(x, bufferSize, UCodePointUnknown);
int d = e.childAtIndex(0).polynomialDegree(context, x);
if (d < 0 || d > 1) {

View File

@@ -189,11 +189,11 @@ QUIZ_CASE(poincare_context_user_variable_functions_approximation_with_value_for_
constexpr int bufferSize = CodePoint::MaxCodePointCharLength + 1;
char x[bufferSize];
Poincare::SerializationHelper::CodePoint(x, bufferSize, UCodePointUnknownX);
Poincare::SerializationHelper::CodePoint(x, bufferSize, UCodePointUnknown);
assert_parsed_expression_approximates_with_value_for_symbol(Function::Builder("f", 1, Subtraction::Builder(Symbol::Builder(UCodePointUnknownX), Rational::Builder(2))), x, 5.0, 9.0);
assert_parsed_expression_approximates_with_value_for_symbol(Function::Builder("f", 1, Subtraction::Builder(Symbol::Builder(UCodePointUnknown), Rational::Builder(2))), x, 5.0, 9.0);
// Approximate f(?-1)+f(?+1) with ? = 3
assert_parsed_expression_approximates_with_value_for_symbol(Addition::Builder(Function::Builder("f", 1, Subtraction::Builder(Symbol::Builder(UCodePointUnknownX), Rational::Builder(1))), Function::Builder("f", 1, Addition::Builder(Symbol::Builder(UCodePointUnknownX), Rational::Builder(1)))), x, 3.0, 20.0);
assert_parsed_expression_approximates_with_value_for_symbol(Addition::Builder(Function::Builder("f", 1, Subtraction::Builder(Symbol::Builder(UCodePointUnknown), Rational::Builder(1))), Function::Builder("f", 1, Addition::Builder(Symbol::Builder(UCodePointUnknown), Rational::Builder(1)))), x, 3.0, 20.0);
// Clean the storage for other tests
Ion::Storage::sharedStorage()->recordNamed("f.func").destroy();
@@ -202,9 +202,9 @@ QUIZ_CASE(poincare_context_user_variable_functions_approximation_with_value_for_
assert_simplify("√(-1)×√(-1)→f(x)");
// Approximate f(?) with ? = 5
// Cartesian
assert_parsed_expression_approximates_with_value_for_symbol(Function::Builder("f", 1, Symbol::Builder(UCodePointUnknownX)), x, 1.0, -1.0);
assert_parsed_expression_approximates_with_value_for_symbol(Function::Builder("f", 1, Symbol::Builder(UCodePointUnknown)), x, 1.0, -1.0);
// Real
assert_parsed_expression_approximates_with_value_for_symbol(Function::Builder("f", 1, Symbol::Builder(UCodePointUnknownX)), x, 1.0, (double)NAN, Real);
assert_parsed_expression_approximates_with_value_for_symbol(Function::Builder("f", 1, Symbol::Builder(UCodePointUnknown)), x, 1.0, (double)NAN, Real);
// Clean the storage for other tests
Ion::Storage::sharedStorage()->recordNamed("f.func").destroy();

View File

@@ -243,30 +243,30 @@ void assert_reduced_expression_has_characteristic_range(Expression e, float rang
QUIZ_CASE(poincare_properties_characteristic_range) {
// cos(x), degree
assert_reduced_expression_has_characteristic_range(Cosine::Builder(Symbol::Builder(UCodePointUnknownX)), 360.0f);
assert_reduced_expression_has_characteristic_range(Cosine::Builder(Symbol::Builder(UCodePointUnknown)), 360.0f);
// cos(-x), degree
assert_reduced_expression_has_characteristic_range(Cosine::Builder(Opposite::Builder(Symbol::Builder(UCodePointUnknownX))), 360.0f);
assert_reduced_expression_has_characteristic_range(Cosine::Builder(Opposite::Builder(Symbol::Builder(UCodePointUnknown))), 360.0f);
// cos(x), radian
assert_reduced_expression_has_characteristic_range(Cosine::Builder(Symbol::Builder(UCodePointUnknownX)), 2.0f*M_PI, Preferences::AngleUnit::Radian);
assert_reduced_expression_has_characteristic_range(Cosine::Builder(Symbol::Builder(UCodePointUnknown)), 2.0f*M_PI, Preferences::AngleUnit::Radian);
// cos(-x), radian
assert_reduced_expression_has_characteristic_range(Cosine::Builder(Opposite::Builder(Symbol::Builder(UCodePointUnknownX))), 2.0f*M_PI, Preferences::AngleUnit::Radian);
assert_reduced_expression_has_characteristic_range(Cosine::Builder(Opposite::Builder(Symbol::Builder(UCodePointUnknown))), 2.0f*M_PI, Preferences::AngleUnit::Radian);
// sin(9x+10), degree
assert_reduced_expression_has_characteristic_range(Sine::Builder(Addition::Builder(Multiplication::Builder(Rational::Builder(9),Symbol::Builder(UCodePointUnknownX)),Rational::Builder(10))), 40.0f);
assert_reduced_expression_has_characteristic_range(Sine::Builder(Addition::Builder(Multiplication::Builder(Rational::Builder(9),Symbol::Builder(UCodePointUnknown)),Rational::Builder(10))), 40.0f);
// sin(9x+10)+cos(x/2), degree
assert_reduced_expression_has_characteristic_range(Addition::Builder(Sine::Builder(Addition::Builder(Multiplication::Builder(Rational::Builder(9),Symbol::Builder(UCodePointUnknownX)),Rational::Builder(10))),Cosine::Builder(Division::Builder(Symbol::Builder(UCodePointUnknownX),Rational::Builder(2)))), 720.0f);
assert_reduced_expression_has_characteristic_range(Addition::Builder(Sine::Builder(Addition::Builder(Multiplication::Builder(Rational::Builder(9),Symbol::Builder(UCodePointUnknown)),Rational::Builder(10))),Cosine::Builder(Division::Builder(Symbol::Builder(UCodePointUnknown),Rational::Builder(2)))), 720.0f);
// sin(9x+10)+cos(x/2), radian
assert_reduced_expression_has_characteristic_range(Addition::Builder(Sine::Builder(Addition::Builder(Multiplication::Builder(Rational::Builder(9),Symbol::Builder(UCodePointUnknownX)),Rational::Builder(10))),Cosine::Builder(Division::Builder(Symbol::Builder(UCodePointUnknownX),Rational::Builder(2)))), 4.0f*M_PI, Preferences::AngleUnit::Radian);
assert_reduced_expression_has_characteristic_range(Addition::Builder(Sine::Builder(Addition::Builder(Multiplication::Builder(Rational::Builder(9),Symbol::Builder(UCodePointUnknown)),Rational::Builder(10))),Cosine::Builder(Division::Builder(Symbol::Builder(UCodePointUnknown),Rational::Builder(2)))), 4.0f*M_PI, Preferences::AngleUnit::Radian);
// x, degree
assert_reduced_expression_has_characteristic_range(Symbol::Builder(UCodePointUnknownX), NAN);
assert_reduced_expression_has_characteristic_range(Symbol::Builder(UCodePointUnknown), NAN);
// cos(3)+2, degree
assert_reduced_expression_has_characteristic_range(Addition::Builder(Cosine::Builder(Rational::Builder(3)),Rational::Builder(2)), 0.0f);
// log(cos(40x), degree
assert_reduced_expression_has_characteristic_range(CommonLogarithm::Builder(Cosine::Builder(Multiplication::Builder(Rational::Builder(40),Symbol::Builder(UCodePointUnknownX)))), 9.0f);
assert_reduced_expression_has_characteristic_range(CommonLogarithm::Builder(Cosine::Builder(Multiplication::Builder(Rational::Builder(40),Symbol::Builder(UCodePointUnknown)))), 9.0f);
// cos(cos(x)), degree
assert_reduced_expression_has_characteristic_range(Cosine::Builder((Expression)Cosine::Builder(Symbol::Builder(UCodePointUnknownX))), 360.0f);
assert_reduced_expression_has_characteristic_range(Cosine::Builder((Expression)Cosine::Builder(Symbol::Builder(UCodePointUnknown))), 360.0f);
// f(x) with f : x --> cos(x), degree
assert_simplify("cos(x)→f(x)");
assert_reduced_expression_has_characteristic_range(Function::Builder("f",1,Symbol::Builder(UCodePointUnknownX)), 360.0f);
assert_reduced_expression_has_characteristic_range(Function::Builder("f",1,Symbol::Builder(UCodePointUnknown)), 360.0f);
Ion::Storage::sharedStorage()->recordNamed("f.func").destroy();
}