Commit Graph

95 Commits

Author SHA1 Message Date
Hugo Saint-Vignes
fa9c9c1567 [apps/regression] Add todos for logistic regressions
Change-Id: If2ddc0527d8be89970803de240a6760d037570e2
2020-11-04 15:33:03 +01:00
Léa Saviot
6b60fc561f [apps/regression] Fix wrong proportional model fit 2020-07-02 17:09:38 +02:00
Léa Saviot
21a4139c19 [apps/regression] Clean partialDerivate of the models 2020-05-13 15:25:33 +02:00
Léa Saviot
980a62da6c [apps/regression] Clean proportional_model.cpp 2020-05-13 15:25:33 +02:00
Léa Saviot
2e5e2a3258 [apps/regression] Rename Affine -> Linear and Linear -> Proportional 2020-05-13 15:25:33 +02:00
Joachim LF
740e9e9d12 [Regression] Fixed affine and linear name errors 2020-05-13 15:25:33 +02:00
Joachim LF
5297f28ffa [Regression] Switched affine and linear 2020-05-13 15:25:33 +02:00
Joachim LF
833f6ec778 [Regression] Add affine regression 2020-05-13 15:25:33 +02:00
Romain Goyet
807dd73e7b [poincare] Use a Tuple instead of an ArrayBuilder for expression
The Tuple is simply an initializer_list along with a convenience method
to cast between a list of TreeHandle and a list of Expression
2020-04-10 13:35:14 -04:00
Émilie Feral
068325d151 Coding style: remove unecessary 'virtual' keyword when 'override' is
present 2/2
2020-04-09 11:36:51 +02:00
Léa Saviot
f6c15198bc [apps/regression] Power regression uses logarithm of series
This matches other apps results and we directly compute the values from
the data instead of doing a gradient descent.
2020-02-12 15:13:21 +01:00
Léa Saviot
a8ead6b66e [apps/regression] Better initialisation of logistic model coefficients
It provides a better fit for:
x = {0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0}
y = {5.0, 9.0, 40.0, 64.0, 144.0, 200.0, 269.0, 278.0, 290.0, 295.0}
(coeffs should be {64.9, 1.0, 297.4})
2020-02-12 15:13:16 +01:00
Léa Saviot
3747b5a4b0 [apps/regression] Virtualize only the specialized part of initCoefs 2020-02-12 15:13:16 +01:00
Léa Saviot
a233b02623 [apps/regression] Better coef initialisation for trigonometric_model
It improves the trigonometric fit of
x = {0.0, 0.975, 1.97, 2.945, 3.971, 4.887, 5.924, 6.964, 7.979, 8.974, 9.998};
y = {-23.784, -23.322, -28.322, -18.422, -4.813206, 7.146241, 16.631, 16.632, 9.209189, -6.050863, -19.659};
2020-02-12 15:13:15 +01:00
Émilie Feral
ccf848a9eb [poincare] Add test: do not expand multinome when reduction target is
System
2019-11-21 09:47:16 +01:00
Léa Saviot
c71ef7ff79 [apps/graph] Evaluation methods renaming 2019-08-29 11:07:22 +02:00
Léa Saviot
7ea7ecd3c2 [poincare/coordinate2D] Rename member values to x and y 2019-08-29 11:07:22 +02:00
Léa Saviot
fbec61db47 Merge branch 'feature/Gradians' of https://github.com/boricj/epsilon 2019-08-22 11:25:25 +02:00
Léa Saviot
1e483d60ce [poincare] Coordinate2D out of the Expression class 2019-08-13 18:00:15 +02:00
Émilie Feral
9fbec16db4 [poincare] Merge MultiplicationImplicit and MultiplicationExplicit (they
were required if we wanted to parse into two distincts expression 2π and
2*π but don't)
2019-08-08 17:22:05 +02:00
Émilie Feral
c1cd0302b8 [poincare] Fix typo: explicite --> explicit, implicite --> implicit 2019-08-08 17:22:04 +02:00
Émilie Feral
fd25b678ce [poincare] Split Multiplication into MultiplicationExplicite and
MultiplicationImplicite
2019-08-08 17:22:02 +02:00
Léa Saviot
61cf762eef [poincare] Expression::ReductionContext 2019-08-08 16:29:37 +02:00
Léa Saviot
5a79d26191 [apps/regression] Factorize Model::simplifiedExpression 2019-08-08 16:22:28 +02:00
Jean-Baptiste Boric
1c40194ac1 [regression] Add gradians support 2019-06-24 22:32:55 +02:00
Ruben Dashyan
ea4dd33826 [apps/regression] Use a new helper to compute linear regression coefficients 2019-06-06 10:00:32 +02:00
Ruben Dashyan
13c63f495c [apps/regression/model/exponential_model] Explicit fit 2019-06-06 10:00:32 +02:00
Ruben Dashyan
a36ea6d1e3 [apps/regression] Use a new helper to compute linear regression coefficients 2019-05-29 11:27:30 +02:00
Ruben Dashyan
2c21055a0f [apps/regression/model/exponential_model] Explicit fit 2019-05-29 11:27:30 +02:00
Émilie Feral
c1c280762f [regression] Add an assertion on the number of entries of matrices used
in models
2019-05-03 15:54:22 +02:00
Émilie Feral
da1ee21fd5 [poincare] VerticalOffsetLayout: change name of 'Type' to 'Position' 2019-05-03 15:54:21 +02:00
Léa Saviot
7329b450dc [apps/reg] Factorize the model layouts fonts 2019-05-03 15:53:21 +02:00
Léa Saviot
c9d548ec8a [apps/reg] Clean regression models layout creation 2019-05-03 15:53:21 +02:00
Léa Saviot
bbb10f1993 [ion/kandinsky] Move unicode to ion 2019-05-03 15:53:19 +02:00
Léa Saviot
65e5adafac Remove Ion::Charset 2019-05-03 15:53:19 +02:00
Léa Saviot
f576e31ff1 [apps/poincare] Replace CharLayouts with CodePointLayouts 2019-05-03 15:53:19 +02:00
Léa Saviot
e7d2c61cec [apps/regression] Increase the iterations limit to compute a regression
The exponential regression on the following data now works:
1 120000
3 130000
6 150000
8 160000
2019-04-29 17:24:53 +02:00
Romain Goyet
4f2c7a3763 [build] Update the i18n processing to fit the out-of-tree build 2019-03-06 15:00:59 +01:00
Émilie Feral
24c9617a89 [poincare] Templatize TreeHandle Builders 2019-02-21 11:29:35 +01:00
Émilie Feral
7b5f3c570d [poincare] Change the way Expression are built 2019-02-21 11:29:35 +01:00
Émilie Feral
ac6f23684d [poincare] Clean Expression and Layout builders
Before: Opposite(Opposite(Rational(1))) misleadingly created the
expression "-1"; now, Opposite::Builder(Opposite::Builder(Rational(1)))
creates "--1"
2019-02-21 11:29:35 +01:00
Léa Saviot
e5f0959239 [poincare] Static Expression methods start with uppercase 2019-01-10 11:42:05 +01:00
Émilie Feral
6021579ae3 [regression] Clean warnings 2019-01-10 11:42:04 +01:00
Émilie Feral
fe8825df35 [shared] PoincareHelpers: update the complexFormat (force it to
Cartesian with complex input).
2019-01-10 11:42:04 +01:00
Émilie Feral
ecf3f2ea0f [poincare] Create a a flag on Expression that is set when the
approximation encouters a complex value

All approximation methods take the complex format into account.
2019-01-10 11:42:04 +01:00
Ruben Dashyan
61b1b8a09d [poincare] Add Expression::FunctionHelper class
That class is meant to contain data about named functions (e.g. sin,
tan...) in one place: their name, their number of children and a pointer to
a builder. The derived class corresponding to each such function
contains a private instance (m_functionHelper) and a getter.
The previous parser is removed, along with unecessary
constructors (used by the previous parsers).
2018-11-23 12:04:05 +01:00
Émilie Feral
b597a79910 [regression] Fix Regression with variable-length symbols 2018-11-23 12:03:58 +01:00
Lionel Debroux
1a8c6b6ae9 [poincare, escher, ion, apps] Split the huge umbrella header poincare.h, to reduce build time.
This should be a NFC, but surprisingly, it also reduces size... so what does it change ?
2018-10-23 11:49:09 +02:00
Romain Goyet
f8beae3b86 [kandinsky] Move to KDFont 2018-10-11 16:44:02 +02:00
Émilie Feral
cf8378434d [regression] When creating SimplifiedExpression, use
Number::DecimalNumber constructor to enable to get Infinity or Undefined
2018-09-18 17:50:10 +02:00