mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-20 09:17:23 +01:00
[solver] Modified the way to solve some equations
The solutions of equations that need numerical approximations to be solved are now computed base on the undeveloped equation (instead of fully the expended one used to identify polynomials) This allow (x-10)^7=0 to yield x=10 as result (9.95 before) Change-Id: Ia8acbe57a9cfebf0b5016e9c896d21c8ddac7a64
This commit is contained in:
committed by
Émilie Feral
parent
6e9a5a010f
commit
913c81a0d3
@@ -81,8 +81,7 @@ SolutionsController::SolutionsController(Responder * parentResponder, EquationSt
|
||||
m_equationStore(equationStore),
|
||||
m_deltaCell(0.5f, 0.5f),
|
||||
m_delta2Layout(),
|
||||
m_contentView(this),
|
||||
m_shouldReplaceFunctionsButNotSymbols(false)
|
||||
m_contentView(this)
|
||||
{
|
||||
m_delta2Layout = HorizontalLayout::Builder(VerticalOffsetLayout::Builder(CodePointLayout::Builder('2', KDFont::SmallFont), VerticalOffsetLayoutNode::Position::Superscript), LayoutHelper::String("-4ac", 4, KDFont::SmallFont));
|
||||
const char * deltaB = "Δ=b";
|
||||
@@ -112,7 +111,7 @@ void SolutionsController::viewWillAppear() {
|
||||
bool requireWarning = false;
|
||||
if (m_equationStore->type() == EquationStore::Type::Monovariable) {
|
||||
m_contentView.setWarningMessages(I18n::Message::OnlyFirstSolutionsDisplayed0, I18n::Message::OnlyFirstSolutionsDisplayed1);
|
||||
requireWarning = m_equationStore->haveMoreApproximationSolutions(App::app()->localContext(), m_shouldReplaceFunctionsButNotSymbols);
|
||||
requireWarning = m_equationStore->haveMoreApproximationSolutions();
|
||||
} else if (m_equationStore->type() == EquationStore::Type::PolynomialMonovariable && m_equationStore->numberOfSolutions() == 1) {
|
||||
assert(Preferences::sharedPreferences()->complexFormat() == Preferences::ComplexFormat::Real);
|
||||
m_contentView.setWarningMessages(I18n::Message::PolynomeHasNoRealSolution0, I18n::Message::PolynomeHasNoRealSolution1);
|
||||
|
||||
Reference in New Issue
Block a user