[unicode] Use Poincare::SerializationHelper::CodePoint

This commit is contained in:
Léa Saviot
2019-03-27 10:32:57 +01:00
committed by Émilie Feral
parent 41b2571668
commit 4bbda406de
5 changed files with 26 additions and 26 deletions

View File

@@ -2,6 +2,7 @@
#include "cache_context.h"
#include "sequence_store.h"
#include <poincare/layout_helper.h>
#include <poincare/serialization_helper.h>
#include <poincare/code_point_layout.h>
#include <poincare/vertical_offset_layout.h>
#include <poincare/integer.h>
@@ -122,11 +123,11 @@ T Sequence::approximateToNextRank(int n, SequenceContext * sqctx) const {
if (n < initialRank() || n < 0) {
return NAN;
}
constexpr int bufferSize = 5;
constexpr int bufferSize = CodePoint::MaxCodePointCharLength + 1;
char unknownN[bufferSize];
int codePointSize = UTF8Decoder::CodePointToChars(UCodePointUnknownN, unknownN, bufferSize);
assert(codePointSize <= bufferSize - 1);
unknownN[codePointSize] = 0;
Poincare::SerializationHelper::CodePoint(unknownN, bufferSize, UCodePointUnknownN);
CacheContext<T> ctx = CacheContext<T>(sqctx);
T un = sqctx->valueOfSequenceAtPreviousRank<T>(0, 0);
T unm1 = sqctx->valueOfSequenceAtPreviousRank<T>(0, 1);

View File

@@ -3,6 +3,7 @@
#include "poincare_helpers.h"
#include <poincare/derivative.h>
#include <poincare/integral.h>
#include <poincare/serialization_helper.h>
#include <escher/palette.h>
#include <ion/unicode/utf8_decoder.h>
#include <float.h>
@@ -104,34 +105,30 @@ double CartesianFunction::sumBetweenBounds(double start, double end, Poincare::C
}
Expression::Coordinate2D CartesianFunction::nextMinimumFrom(double start, double step, double max, Context * context) const {
constexpr int bufferSize = 3;
constexpr int bufferSize = CodePoint::MaxCodePointCharLength + 1;
char unknownX[bufferSize];
int codePointSize = UTF8Decoder::CodePointToChars(UCodePointUnknownX, unknownX, bufferSize);
assert(codePointSize <= bufferSize);
SerializationHelper::CodePoint(unknownX, bufferSize, UCodePointUnknownX);
return PoincareHelpers::NextMinimum(expressionReduced(context), unknownX, start, step, max, *context);
}
Expression::Coordinate2D CartesianFunction::nextMaximumFrom(double start, double step, double max, Context * context) const {
constexpr int bufferSize = 3;
constexpr int bufferSize = CodePoint::MaxCodePointCharLength + 1;
char unknownX[bufferSize];
int codePointSize = UTF8Decoder::CodePointToChars(UCodePointUnknownX, unknownX, bufferSize);
assert(codePointSize <= bufferSize);
SerializationHelper::CodePoint(unknownX, bufferSize, UCodePointUnknownX);
return PoincareHelpers::NextMaximum(expressionReduced(context), unknownX, start, step, max, *context);
}
double CartesianFunction::nextRootFrom(double start, double step, double max, Context * context) const {
constexpr int bufferSize = 3;
constexpr int bufferSize = CodePoint::MaxCodePointCharLength + 1;
char unknownX[bufferSize];
int codePointSize = UTF8Decoder::CodePointToChars(UCodePointUnknownX, unknownX, bufferSize);
assert(codePointSize <= bufferSize);
SerializationHelper::CodePoint(unknownX, bufferSize, UCodePointUnknownX);
return PoincareHelpers::NextRoot(expressionReduced(context), unknownX, start, step, max, *context);
}
Expression::Coordinate2D CartesianFunction::nextIntersectionFrom(double start, double step, double max, Poincare::Context * context, Expression e) const {
constexpr int bufferSize = 3;
constexpr int bufferSize = CodePoint::MaxCodePointCharLength + 1;
char unknownX[bufferSize];
int codePointSize = UTF8Decoder::CodePointToChars(UCodePointUnknownX, unknownX, bufferSize);
assert(codePointSize <= bufferSize);
SerializationHelper::CodePoint(unknownX, bufferSize, UCodePointUnknownX);
return PoincareHelpers::NextIntersection(expressionReduced(context), unknownX, start, step, max, *context, e);
}