Commit Graph

10718 Commits

Author SHA1 Message Date
Romain Goyet
46647cc35c [build] Allow building official targets on CI environments 2020-03-25 13:44:10 +01:00
Émilie Feral
3245a0060e [build] Fix target all_official: get rif of .mem 2020-03-24 16:44:20 +01:00
Émilie Feral
f84b3dc5c1 [poincare] Power approximation: avoid approximating a power to 0 when
one of the real/imaginary part was not null
2020-03-24 16:22:43 +01:00
Émilie Feral
7c79c70890 [poincare] When simplification has been interrupted, escape the end of
simplification. Otherwise we can be stuck in infinite loop.

This fixes the following bug: when simplifying an expression as
'bigRational1^x*bigRational2^x', we use the rule a^x*b^x --> (a¨b)^x. However,
in this case, a*b can't be reduce (resulting rational would be too big) and
we're stuck in the loop a^x*b^x --> (a¨b)^x --> a^x*b^x --> (a¨b)^x...
2020-03-24 16:22:43 +01:00
Émilie Feral
c0f73e97d2 [ion] Android Makefile: simplify rule_for_gradle 2020-03-24 10:26:59 -04:00
Émilie Feral
43bf89c6e4 [ion] Android build: specify libepsilon libraries' name when building
the apk
2020-03-24 10:26:59 -04:00
Romain Goyet
62324b9cac [build/emscripten] Don't use memory init files anymore
Those provide a really small size gain and are painful to deploy
2020-03-24 15:02:10 +01:00
Romain Goyet
ca89c06ffe [build/emscripten] We now use the newer #canvas convention 2020-03-24 15:02:10 +01:00
Romain Goyet
fd629de548 [build] Clean the "all" targets
Remove "DEBUG=0" because it's the default
Use handy targets when possible
2020-03-24 15:02:10 +01:00
Romain Goyet
eadfe4aa56 [ion/simulator/web] Name the target "epsilon.zip" to match other targets
This way it's consistent with epsilon.ipa on TARGET=ios and epsilon.apk
on TARGET=android
2020-03-24 15:02:10 +01:00
Romain Goyet
edbd879b4b [ion] Modularize the HTML simulator 2020-03-24 15:02:10 +01:00
Léa Saviot
05d24e0c61 [ion/android] Longer comment on Home button hiding fix 2020-03-24 10:10:02 +01:00
Léa Saviot
f31de20039 [ion/android] Hide the status bar and navigation buttons
This is a hack, we should find why this was broken after v12.
2020-03-24 10:10:02 +01:00
Émilie Feral
5f5636fe4d [build] Fix all_official target 2020-03-20 09:32:24 +01:00
Émilie Feral
1809037273 [ion] Fix epsilon.official.ipa dependencies 2020-03-19 13:36:10 +01:00
Romain Goyet
81cd18ad67 [build] Signing android apps is easier
Signing parameters can be passed on the command line, e.g. "ANDROID_SIGNING_STORE_FILE=foobar", or they can be written to a ~/.gradle/gradle.properties file using the "EPSILON_SIGNING_STORE_FILE=foobar" syntax.
2020-03-18 17:30:20 +01:00
Émilie Feral
5f8f1d96ee [build] Actually use the mobileprovision file stored in build/artifacts/ 2020-03-16 18:07:01 +01:00
Émilie Feral
8c370b409c [build] Add the .mem files to all_official/ 2020-03-16 18:07:01 +01:00
Émilie Feral
d2f40130b2 [build] Change folder name: stable_release --> all_official 2020-03-16 18:07:01 +01:00
Jacob Young
a8783fe21f Remove a duplicate function, cleanup sorting and use consistent argument names in math.h.
Add missing math.h tests and make each test a single line for easier comparison with math.h.
Add missing cmath undefs and functions and use constexpr instead of static.
2020-03-16 15:00:40 +01:00
Léa Saviot
e828491171 [apps/probability] Test on finite integral computations 2020-03-16 11:40:40 +01:00
Léa Saviot
29b4c75227 [apps/probability] Assert discrete distributions override evaluation 2020-03-16 11:40:40 +01:00
Léa Saviot
5c70fdc7a6 [apps/probability] Handle a == b case in finite integral computation
For non continuous distributions, P(a <= X <= a) is not necessarily
null.
2020-03-16 11:40:40 +01:00
Émilie Feral
d222d13156 [poincare] CHange name PowerNode::tryComputeRealRootOfRationalPow -->
PowerNode::computeNotPrincipalRealRootOfRationalPow
2020-03-16 11:36:37 +01:00
Léa Saviot
da6306cb11 [poincare/multiplication] Interrupt reduction if overflow
When the overflow is due to the max size a rational can hold, stop the
reduction, otherwise some false results can appear.
For instance: 1.0092^50*ln(1.0092) was computed to 0 due to this problem
2020-03-13 14:16:43 +01:00
Léa Saviot
f00bd4d1c5 [poincare/multiplication] Factorize code 2020-03-13 14:16:43 +01:00
Léa Saviot
1e11650122 [poincare/test] Fix precision in approximation test 2020-03-13 14:16:43 +01:00
Léa Saviot
e636a2c315 [poincare/test] Add failing tests (commented but to fix later!) 2020-03-13 14:16:43 +01:00
Léa Saviot
313cbf6767 [poincare/arithmetic] Shortcut the LCM and GCD computation if equal
This fixes: LCM(7.88861e+169, 7.88861e+169), which overflowed at some
point during the computation
2020-03-13 14:16:43 +01:00
Léa Saviot
97d94d9e56 [poincare/test] Add failing test on multiplication simplification 2020-03-13 14:16:43 +01:00
LeaNumworks
13b2deb714 [poincare/approximation_helper] Clearer code
This should do the same output.
2020-03-12 14:41:50 +01:00
Léa Saviot
576d1dcd6b [poincare/power] Rename and comment computeRealRootOfRationalPow 2020-03-12 14:41:50 +01:00
Léa Saviot
175af27ea9 [poincare/approximation_helper] Factorize some code 2020-03-12 14:41:50 +01:00
Émilie Feral
879c1e3bf1 [poincare] ApproximationHelper: fix precision threshold of
NeglectRealOrImaginaryPartIfNeglectable
2020-03-12 14:41:50 +01:00
Émilie Feral
d431642e60 [poincare] Add tests on atanh approximation 2020-03-12 14:41:50 +01:00
Émilie Feral
a2e9d8efd6 [poincare] Improve trigonometry functions and power functions
approximations. We neglect the real or imaginary parts when it is
neglectable compared to the input.
2020-03-12 14:41:50 +01:00
Émilie Feral
9936d99411 [poincare] Add comment on Power::templatedApproximate 2020-03-12 14:41:50 +01:00
Émilie Feral
12a5f5499c [poincare] Handle real root finding in Power and NthRoot in order to
remove beautifying x^(p/q) -> root(x,q)^p. This triggered precision
loss!
2020-03-12 14:41:50 +01:00
Émilie Feral
5407709798 [poincare] Add approximation tests that fails because of precision loss 2020-03-12 14:41:50 +01:00
Émilie Feral
515405a5df [poincare] In Power::approximation and SquareRoot::approximation, the
real (or imaginary) part negligence should depend on the argument value
relatively to some other values (norms of the parameters) and not of its
value absolutely!
2020-03-12 14:41:50 +01:00
Léa Saviot
ebdac63681 [poincare/parser] u_ v_ w_ are not special identifiers anymore 2020-03-12 11:48:54 +01:00
Léa Saviot
90f2e5beed [ion/sdl] Do not process more than one buffered event
Scenario:
Make an infinite loop script (while 1 : 1+1) and run it. Input 1234567
then press Back to interrupt the infinite loop -> the script execution
stops, then 1234567 is input in the input line, which is quite weird. It
is even weirder when the key pressed during the [script execution / a
long computation] result in navigation inside the calculator apps.
2020-03-11 15:36:52 +01:00
Léa Saviot
9ab3558cfe [ion/events_keyboard] Remove unused cases 2020-03-11 15:36:52 +01:00
Léa Saviot
1242258992 [ion] Handle key events in all simulators as in EPSILON_SDL_SCREEN_ONLY
This way, physical keyboard events can be caught by python on all
simulators
2020-03-11 15:36:52 +01:00
Léa Saviot
4a4ba52e38 [ion/events] Better handling of Shift on the web target 2020-03-11 15:36:52 +01:00
Léa Saviot
18f3054b50 [ion/simulator/web] Do not duplicate events in scan and getPlatformEvent
Some events were caught by bith scan() and getPlatformEvent()
2020-03-11 15:36:52 +01:00
Léa Saviot
a7d419c4bd [ion/emscripten] Get physical keyboard events in scan() 2020-03-11 15:36:52 +01:00
Léa Saviot
8168a125e6 [apps/statistics] Remove unused variable in HistogramView
It is unused as HistogramView now inherits Shared::HorizontallyLabeledCurveView
2020-03-11 13:58:41 +01:00
Léa Saviot
702772a7c9 [apps/reg] Store::m_seriesChecksum is Snapshot::m_prevModelsVersions
Share these objects instead of duplicating them
2020-03-11 11:43:36 +01:00
Léa Saviot
53705fb333 [apps/graph_ctrlr] Reload range if no previous model is present
We memoize the checksum of the x first models, and we check that one of
these models is still present when the graph view appears. If so, we do
not reload the range, other wise we reload it.

Scenario:
f(t) = [t^2  t+1] in parametric
Display the graph
f(x) = 1 on ]-inf;0]
g(x) = 2 on [0;inf[
Display the graph -> the range did not change
2020-03-11 11:43:36 +01:00