mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-19 00:37:25 +01:00
[apps] In calculation, do not display exact output if it is identical to input
Change-Id: I4b0733c7e3090bc2b04c68661bd34cf0b6da17f1
This commit is contained in:
@@ -65,7 +65,8 @@ void Calculation::reset() {
|
||||
|
||||
void Calculation::setContent(const char * c, Context * context) {
|
||||
reset();
|
||||
strlcpy(m_inputText, c, sizeof(m_inputText));
|
||||
m_input = Expression::parse(c);
|
||||
m_input->writeTextInBuffer(m_inputText, sizeof(m_inputText));
|
||||
m_exactOutput = input()->clone();
|
||||
Expression::Simplify(&m_exactOutput, *context);
|
||||
m_exactOutput->writeTextInBuffer(m_exactOutputText, sizeof(m_exactOutputText));
|
||||
@@ -208,6 +209,9 @@ bool Calculation::shouldApproximateOutput() {
|
||||
if (strcmp(m_exactOutputText, m_approximateOutputText) == 0) {
|
||||
return true;
|
||||
}
|
||||
if (strcmp(m_exactOutputText, m_inputText) == 0) {
|
||||
return true;
|
||||
}
|
||||
return input()->recursivelyMatches([](const Expression * e) {
|
||||
return e->type() == Expression::Type::Decimal || Expression::IsMatrix(e);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user