mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-19 00:37:25 +01:00
[shared] Fix PoincareHelpers
This commit is contained in:
@@ -97,7 +97,7 @@ bool App::textInputIsCorrect(const char * text) {
|
||||
}
|
||||
Expression::ReplaceSymbolWithExpression(&exp, Symbol::SpecialSymbols::Ans, static_cast<Snapshot *>(snapshot())->calculationStore()->ansExpression(localContext()));
|
||||
char buffer[Calculation::k_printedExpressionSize];
|
||||
int length = PoincareHelpers::WriteTextInBuffer(exp, buffer, sizeof(buffer));
|
||||
int length = PoincareHelpers::Serialize(exp, buffer, sizeof(buffer));
|
||||
delete exp;
|
||||
/* if the buffer is totally full, it is VERY likely that writeTextInBuffer
|
||||
* escaped before printing utterly the expression. */
|
||||
|
||||
@@ -60,11 +60,11 @@ void Calculation::setContent(const char * c, Context * context, Expression * ans
|
||||
Expression::ReplaceSymbolWithExpression(&m_input, Symbol::SpecialSymbols::Ans, ansExpression);
|
||||
/* We do not store directly the text enter by the user because we do not want
|
||||
* to keep Ans symbol in the calculation store. */
|
||||
PoincareHelpers::WriteTextInBuffer(m_input, m_inputText, sizeof(m_inputText));
|
||||
PoincareHelpers::Serialize(m_input, m_inputText, sizeof(m_inputText));
|
||||
m_exactOutput = PoincareHelpers::ParseAndSimplify(m_inputText, *context);
|
||||
PoincareHelpers::WriteTextInBuffer(m_exactOutput, m_exactOutputText, sizeof(m_exactOutputText));
|
||||
PoincareHelpers::Serialize(m_exactOutput, m_exactOutputText, sizeof(m_exactOutputText));
|
||||
m_approximateOutput = PoincareHelpers::Approximate<double>(m_exactOutput, *context);
|
||||
PoincareHelpers::WriteTextInBuffer(m_approximateOutput, m_approximateOutputText, sizeof(m_approximateOutputText));
|
||||
PoincareHelpers::Serialize(m_approximateOutput, m_approximateOutputText, sizeof(m_approximateOutputText));
|
||||
}
|
||||
|
||||
KDCoordinate Calculation::height(Context * context) {
|
||||
|
||||
@@ -7,8 +7,8 @@ namespace Shared {
|
||||
|
||||
namespace PoincareHelpers {
|
||||
|
||||
inline Poincare::LayoutRef CreateLayout(const Poincare::Expression * e) {
|
||||
return e->createLayout(Poincare::Preferences::sharedPreferences()->displayMode(), Poincare::Preferences::sharedPreferences()->numberOfSignificantDigits());
|
||||
inline Poincare::LayoutRef CreateLayout(const Poincare::Expression e) {
|
||||
return e.createLayout(Poincare::Preferences::sharedPreferences()->displayMode(), Poincare::Preferences::sharedPreferences()->numberOfSignificantDigits());
|
||||
}
|
||||
|
||||
template <class T>
|
||||
@@ -16,18 +16,18 @@ inline int ConvertFloatToText(T d, char * buffer, int bufferSize, int numberOfSi
|
||||
return Poincare::PrintFloat::convertFloatToText(d, buffer, bufferSize, numberOfSignificantDigits, Poincare::Preferences::sharedPreferences()->displayMode());
|
||||
}
|
||||
|
||||
inline int WriteTextInBuffer(const Poincare::Expression * e, char * buffer, int bufferSize, int numberOfSignificantDigits = Poincare::PrintFloat::k_numberOfStoredSignificantDigits) {
|
||||
return e->serialize(buffer, bufferSize, Poincare::Preferences::sharedPreferences()->displayMode(), numberOfSignificantDigits);
|
||||
inline int Serialize(const Poincare::Expression e, char * buffer, int bufferSize, int numberOfSignificantDigits = Poincare::PrintFloat::k_numberOfStoredSignificantDigits) {
|
||||
return e.serialize(buffer, bufferSize, Poincare::Preferences::sharedPreferences()->displayMode(), numberOfSignificantDigits);
|
||||
}
|
||||
|
||||
template <class T>
|
||||
inline Poincare::Expression * Approximate(const Poincare::Expression * e, Poincare::Context & context) {
|
||||
return e->approximate<T>(context, Poincare::Preferences::sharedPreferences()->angleUnit(), Poincare::Preferences::sharedPreferences()->complexFormat());
|
||||
inline Poincare::Expression Approximate(const Poincare::Expression e, Poincare::Context & context) {
|
||||
return e.approximate<T>(context, Poincare::Preferences::sharedPreferences()->angleUnit(), Poincare::Preferences::sharedPreferences()->complexFormat());
|
||||
}
|
||||
|
||||
template <class T>
|
||||
inline T ApproximateToScalar(const Poincare::Expression * e, Poincare::Context & context) {
|
||||
return e->approximateToScalar<T>(context, Poincare::Preferences::sharedPreferences()->angleUnit());
|
||||
inline T ApproximateToScalar(const Poincare::Expression e, Poincare::Context & context) {
|
||||
return e.approximateToScalar<T>(context, Poincare::Preferences::sharedPreferences()->angleUnit());
|
||||
}
|
||||
|
||||
template <class T>
|
||||
@@ -35,11 +35,11 @@ inline T ApproximateToScalar(const char * text, Poincare::Context & context) {
|
||||
return Poincare::Expression::approximateToScalar<T>(text, context, Poincare::Preferences::sharedPreferences()->angleUnit());
|
||||
}
|
||||
|
||||
inline Poincare::Expression * ParseAndSimplify(const char * text, Poincare::Context & context) {
|
||||
inline Poincare::Expression ParseAndSimplify(const char * text, Poincare::Context & context) {
|
||||
return Poincare::Expression::ParseAndSimplify(text, context, Poincare::Preferences::sharedPreferences()->angleUnit());
|
||||
}
|
||||
|
||||
inline void Simplify(Poincare::Expression ** expressionAddress, Poincare::Context & context) {
|
||||
inline void Simplify(Poincare::Expression* expressionAddress, Poincare::Context & context) {
|
||||
return Poincare::Expression::Simplify(expressionAddress, context, Poincare::Preferences::sharedPreferences()->angleUnit());
|
||||
}
|
||||
|
||||
|
||||
@@ -142,7 +142,7 @@ void VariableBoxController::ContentViewController::willDisplayCellForIndex(Highl
|
||||
if (m_currentPage == Page::Scalar) {
|
||||
myCell->displayExpression(false);
|
||||
char buffer[PrintFloat::k_maxComplexBufferLength];
|
||||
PoincareHelpers::WriteTextInBuffer(evaluation, buffer, PrintFloat::k_maxComplexBufferLength, Constant::ShortNumberOfSignificantDigits);
|
||||
PoincareHelpers::Serialize(evaluation, buffer, PrintFloat::k_maxComplexBufferLength, Constant::ShortNumberOfSignificantDigits);
|
||||
myCell->setSubtitle(buffer);
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user