Commit Graph

227 Commits

Author SHA1 Message Date
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
Ruben Dashyan
a859b69939 [poincare] No default type for Token constructor 2018-11-23 12:04:05 +01:00
Émilie Feral
8770c9010a [poincare] Create Constant inheriting from SymbolAbstrac
pi, e and i are not symbols anymore but constant
2018-11-23 12:04:04 +01:00
Émilie Feral
e3d2b13758 [poincare] Fix Expression::getLinearCoefficients 2018-11-23 12:04:04 +01:00
Émilie Feral
03d0679d6f [poincare] Symbol: rename shouldBeReplacedWhileReducing in !isConstant 2018-11-23 12:04:04 +01:00
Émilie Feral
9a18f5dbf9 [poincare] Symbol Pi, i, e aren't approximate 2018-11-23 12:04:04 +01:00
Léa Saviot
4d71a3a4c6 [apps/poincare] Do not replace symbols in result of 3+c->f(x) 2018-11-23 12:04:03 +01:00
Léa Saviot
af41c42a97 [poincare] Store symbol children are not replaced during reduction 2018-11-23 12:04:01 +01:00
Léa Saviot
5a9c0b1b84 [apps] GlobalCtxt::SetExpForFunctionRecord used in StorageCartesianFunction 2018-11-23 12:04:01 +01:00
Léa Saviot
97cba08b23 [apps] Clean GLobalContext 2018-11-23 12:04:01 +01:00
Léa Saviot
dd0d390a3f [poincare] Fix Expression::ExpressionFromAddress 2018-11-23 12:04:00 +01:00
Léa Saviot
2793a622e2 [apps] Store function metadata in record 2018-11-23 12:04:00 +01:00
Léa Saviot
2442627e3c [apps] Remove attributes from StorageExpressionModel and derivates 2018-11-23 12:04:00 +01:00
Léa Saviot
907eedd4bc [poincare] Use SymbolAbstract in setExpressionForSymbol 2018-11-23 12:04:00 +01:00
Léa Saviot
63e5960ae1 [poincare] Handle empty record when creating its expression 2018-11-23 12:04:00 +01:00
Léa Saviot
4af3d27431 [poincare] ExpressionFromRecord is in Expression, not in GlobalContext 2018-11-23 12:04:00 +01:00
Léa Saviot
3809ef222d [poincare] deep and shallow Reduce have a "replace symbol" bool param 2018-11-23 12:03:59 +01:00
Léa Saviot
a7a719df4a [poincare] Handle functions in replaceSymbolWithExp and similar methods 2018-11-23 12:03:59 +01:00
Léa Saviot
4b37163653 [poincare] Fix more "char * []" type problems 2018-11-23 12:03:59 +01:00
Émilie Feral
ccbcf18811 [poincare] VariableContext holds an Expression instead of a Float<T> 2018-11-23 12:03:59 +01:00
Émilie Feral
46427c59dd [poincare] Fix Expression::getLinearCoefficients 2018-11-23 12:03:58 +01:00
Émilie Feral
256620854f [poincare] Fix IsMatrix to be used as a ExpressionTest 2018-11-23 12:03:58 +01:00
Émilie Feral
904de27815 [poincare] Fix Expression::isMatrix and Expression::isApproximate 2018-11-23 12:03:58 +01:00
Émilie Feral
1fff98f1c4 [poincare] Change Expression methods' signature to work with const char
* symbol instead of char symbol
2018-11-23 12:03:58 +01:00
Émilie Feral
cc9995d4c2 [poincare] Change getLinearCoefficients to take a variable-sized
variables as paramaters
2018-11-23 12:03:58 +01:00
Émilie Feral
bc2ce86825 [poincare] Change signature: polynomialDegree,
getPolynomialCoefficients, getPolynomialReducedCoefficients
2018-11-23 12:03:58 +01:00
Émilie Feral
b6465ecba5 [poincare] Change replaceSymbolWithExpression signature
replaceSymbolWithExpression(char
symbol..)->replaceSymbolWithExpression(const char *..
2018-11-23 12:03:58 +01:00
Émilie Feral
540fab3908 [poincare] Symbol: first version with symbol of variable length 2018-11-23 12:03:58 +01:00
Émilie Feral
fdfa69a321 [poincare] Delete useless method 2018-11-23 12:03:58 +01:00
Léa Saviot
3bbb8b39d1 [poincare] Add context argument to some ExpressionNode methods 2018-11-23 12:03:58 +01:00
Émilie Feral
78ccb69b59 [poincare] Create Expression::reduceChildren and assert that deepReduce
is not called on a Matrix
2018-10-08 16:37:57 +02:00
Émilie Feral
e4b4fd7e52 [poincare] Clean wrong assertion 2018-10-05 11:46:59 +02:00
Émilie Feral
2297d1a7aa [solver] Escape undefined equations 2018-10-05 11:46:59 +02:00
Émilie Feral
961a17b4e0 [poincare] Change replaceSymbolWithExpression implementation to be alike
deepReduce and deepBeautify
2018-09-26 16:19:09 +02:00
Émilie Feral
b7649bab8a [poincare] deepReduce is authorized on non-matrix expressions only 2018-09-26 16:12:31 +02:00
Émilie Feral
68157e7c70 [poincare] getLinearCoefficients: the equation from which we look for
coefficients can be Undefined at some point (because it is the reduction
of 0*inf for instance)
2018-09-24 18:24:17 +02:00
Émilie Feral
365b145cf3 [poincare] Change names: LayoutReference-->Layout 2018-09-18 16:29:44 +02:00
Émilie Feral
d17b0f1afb [poincare] Get rid of char table of variable size 2018-09-17 17:14:43 +02:00
Émilie Feral
e0495de6af [poincare] Change name: TreeByReference --> TreeHandle 2018-09-14 17:22:36 +02:00
Émilie Feral
616e4c0bcc [poincare] Change name: LayoutRef --> LayoutReference 2018-09-14 16:57:12 +02:00
Romain Goyet
47fe5d829a [poincare] Use a re-entrant parser
This removes all global variables
2018-09-12 14:11:20 +02:00
Romain Goyet
1f69558787 [poincare] Deal with Bison's global variable by using a static var
We will eventually clean the buffer on the next run if we got
interrupted
2018-09-12 14:11:20 +02:00
Émilie Feral
bd5af83d96 [poincare] Fix TreeNode::log 2018-09-07 15:54:23 +02:00
Émilie Feral
7feef8f266 [poincare] Expression: approximateToEvaluation does not handle
Uninitialized Expression but approximate does
2018-09-07 15:54:23 +02:00
Léa Saviot
bcf299c241 [poincare] Un-inline Expression::parent() (inline later if possible !) 2018-09-07 15:23:49 +02:00
Léa Saviot
5e42aa31f9 [poincare] un-inline setSign and approximateToEvaluation 2018-09-07 15:18:37 +02:00
Léa Saviot
45808bcbaa [poincare] Expression un-inline to reduce binary size 2018-09-07 13:54:54 +02:00
Léa Saviot
54f8c5d0d0 [poincare] Clean inlining of Expression ad LayoutNode 2018-09-06 14:14:44 +02:00
Léa Saviot
ea948117a4 [poincare] Remove ExceptionNodes and UninitializedNodes 2018-09-05 17:54:08 +02:00
Léa Saviot
e3a09286ac [poincare] Remove AllocationFailures 2018-09-05 16:19:11 +02:00