Changed previousNestedIntegral method to prevent integrals located in
integral bounds to be considered as nested.
Change-Id: Id8cc4369f53c278ac59039fde1c2818af2ccacab
Float<float> and Float<double> used to share the same expression type
(Float), and the distinction was made by comparing their size. However,
due to padding, their size could be the same, leading to some issues :
- On the simulator, in Calculation, type 1_mm^3 and go to the
additional outputs. One of the results would be -0.0003081979_µm^3.
Change-Id: Ic8f9328bf462104776fbab636c34d0d152cd7e58
This fixes issues #1541. Formulas as asin(sin(X)) with X a large number
were failling to simplify themselves into the image interval of asin
ex : previous version asin(sin(6)) = 6
new version asin(sin(6)) = -2pi+6
Change-Id: Ia6200b67914224cecd2cd943bcf9bc2ff6e0447a
To prevent incorrect approximations, such as cos(1.5707963267949) = 0, we lowered the precision value. This way,
the approximation is more selective. However, when ploting functions such as e^(i.pi+x), the float approximation fails
and therefore, the function appears "undef".
As a result we created two functions Epsilon that behave differently according to the number's type. When it is a double,
we want a maximal precision -> epsilon_double = 1x10^(-15), and when it is a float, we accept more agressive approximations
-> epsilon_float = 10 x 1x10^(-7).
Change-Id: I844ac52ade665f51fe6888db38f4485c193286d9
Removed limitation in calculation of normal_distribution. It was used to
speed-up computation but yielded 0 for small values.
Previously P(X<5) with X->N(7,0.3162) gave 0 as a result
now it gives 1.26e-10
Change-Id: I3f1c997dfe2ba6424b372a0a82af6d9871443657
We now compute the value of the mantissa in double (instead of float)
to limit conversion error occuring for big numbers.
Change-Id: Ia61c052f0bc4a9196c53e2c7900eb48e3343d39c
New way of drawing sigma sign. Only a single branch is stored. The full
symbol is created by mirroring half a symbol.
Change-Id: I0fc32393203e51578c88b01125a907d402291534
Changed the look of the integral symbol and the positions of the upper
and lower bounds. Added a drawing of the window to explain the meaning
of various margins.
Change-Id: I3ffc07848dc9ad68dce3c0e01853d548e31dd152
Parenthesis collapsing is no longer handled by LeftParenthesisLayout and
RightParenthesisLayout, but by ParenthesisLayout itself.
Change-Id: I6797cd40ee02881544e01e9b88f31a597c51d179
Fraction are now only collapsed if they are the first thing to be
collapsed or if a parenthesis is open.
Change-Id: Ie7f3a99498b9981dff70221efd7de6bee6d0c379
Created function Layout::LayoutFromAddress, which creates in the pool a layout
that has been stored in a buffer. Functionally identical to
Expression::ExpressionFromAddress.
Change-Id: I204e6b7d42f259ef2732563aa2a168a644060867
New tests compute derivatives while replacing symbols with their definitions or undefined, as the device does.
Change-Id: I99179bf6540182ff929938fb96a00a1ed2fbcf49
Derivation now computes as expected on logarithms, as long as their base is not a function of the derivation variable.
Change-Id: Ia56da1c1151c0ddf3887be84ddb4bd02664c5188