Create a method to clean up an ill-formed range, ie a range whose bounds
are not finite, or where max <= min.
Change-Id: If4525e65f95385cfa970be72bbcc21ad84286bfa
Rework the logic so that :
- an undefined function will be displayed with a clealry defined
null range.
- display both an undefined function and a correct function at the
same time will not affect the correct range.
Change-Id: Ife9dc0d2ace667cab5a6b8826347078fca33e4d5
Add a clause in InterestingRangesForDisplay to detect strong variations.
This improve the graph for x^x or x^2+x+1 for instance.
Change-Id: I74214c2382cfe4b0e2603556dd8c6cbd450effc0
When displaying f(x) = undef, the range now defaults to an orthonormal
range, centered on the origin, with axis unit 1.
Change-Id: Ie3515be0572af4849b8ebd113449f4444755b34f
Change some parameters to improve the output of
RangeWithRatioForDisplay. Notably, change how the size of the range is
weighed.
Change-Id: I7695c61c3f93482f3fed9c7d2183642573b02cff
When looking for a range with a certain ratio using
RangeWithRatioForDisplay, instead of looking for ranges of the form
0.01*1.1^n, search for ranges of the form a*10^k, with a being either 1,
2, or 5.
Change-Id: I2eaa229574a9a6aa4afa6eb1a3d57365d3d52801
Added a method to Zoom to set a range to a specific ratio. This method
is used by InteractiveCurveViewRange::normalize.
Change-Id: Id3029439294ece02ea19fb6c6de90b9edc85d771
As margins are added later in InteractiveCurveViewRange::setDefault,
rounding abscissa at this point is premature.
Change-Id: I411dd014b712649efd55cb995ed7a9c5c14a7f43
The ability to perform a range search without changing the X range was
only there to accomodate the Yauto feature.
Change-Id: I8c2b61b447fbd3dc1f4e303dff06d1a8d6e7a4f2
In Calculation, keeping the BACK key pressed can lead to iffy
simplifications and uninitialized expressions beign passed to
ShouldDisplayAdditionalOutputs and SetAdditionalExpressions methods.
Change-Id: If248ab193c471ff433828fc841e01a391e0c052d
Additional results are proposed for all units combinations that include
a non-base unit, in addition to units with special results.
Change-Id: I91f2a1a43c72bad0327132396534a223e87b06a2
When tuning the representative without tuning the prefix, the prefix
would not be reset to its default value, causing a problem for masses,
whose base prefix depend on the representative (k for grams, none for
the rest).
Fixes a crash when typing sqrt(_N) with country set to US.
Change-Id: Iade900de5fb31e06fdfafef34ae27da3f36983fa
In metric, sqrt(N) would be simplified to _N_kg^-0.5_m^-0.5_s instead of
_kg^0.5_m^0.5_s^-1.
We solve this issue by preventing simplification using derived units
in presence of rational exponents.
Change-Id: I97118bb32c963809c8d176b7b297d1682965e9af
In Trigonometry::shallowReduceInverseFunction, the reduction of
atan(1/x) used the hard value of pi instead of its equivalent in the
selected angle unit.
This fixes a bug causing atan(1/tan(40°)) to be equal to π/2-40 instead
of 50.
Change-Id: Ifd7df5cd168fadf3146eee168c0bc2136ea15a7b
Temperatures can be converted to and from degree Celsius and Fahrenheit.
When used in non-trivial calculations, they are always reduced to undef,
as the rules for manipulating relative scales are not well defined.
Change-Id: If59e224a0e7f940b421bc894bbe2279c90f38d04
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
Mixed fractions for negative rational numbers are now computed as the
opposite of their opposite's mixed fraction, as is conventionnal.
ex : -9/5 is now decomposed as -1-4/5 instead of -2+1/5
Change-Id: I6df3dce585ccadd1bcd7cc562576995face98f9c
Sequences can now be defined using specific terms form other sequences :
Un = n
Vn = u(3)
Initial values can also depend on other sequences.
Should there be a circular dependency, the sequences concerned will
display "undef" as value
Change-Id: I6fe1f3ff7b500f35d480ddefb42de729c327432e
In UnitConvert::shallowBeautify, an orphan expression would be reduced
without reaffecting the reduction's result. The reduction not being
taken into account would cause problem when handling undef values.
ex : Try to calculate i->_min
Change-Id: I4e53afa40ba838fed8c2fba9944c9c9ed1dc95b4
Implemented std::nextafter to replace hand made one.
Methods next and previous are no longer making the difference between -0
and +0
Change-Id: I42e1a073623b70656d9df954694803840cf3088c
Method characteristicXHalfRange was used to compute the range on which
to display cartesian function in Graph. With the new zoom algorithm,
this method is deprecated.
Change-Id: Ic681fab8d58d0f5628a94302a7b49dacaaa1a6a3
In Graph, the weak ReductionTarget would cause _X^0 to not be simplified
to 1, and would break an assertion in
Unit::chooseBestRepresentativeAndPrefix.
Change-Id: I8167a472802baf0a73bf48513f492e78517107ef