-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathLISEZMOI.numworks
52 lines (38 loc) · 1.92 KB
/
LISEZMOI.numworks
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
J'ai partiellement reussi a integrer giac dans l'application de calculs
de Numworks, sur le simulateur uniquement bien sur.
Sur la calculatrice physique, il n'y a pas assez de memoire, mais il semble possible d'en ajouter:
Voir https://tiplanet.org/forum/viewtopic.php?f=97&t=20557
Voici comment:
1/ Installer Giac/Xcas sur Mac, ca doit aussi marcher sous Linux (je n'ai pas teste). Pour la calculatrice physique, installer un compilateur ARM,
compiler tommath https://github.com/zardam/libtommath-0.39 et copier
config.h.numworks dans config.h, puis compiler avec make -f Makefile.numworks.
2/ Dans le Makefile principal ajouter
LDFLAGS = -lgiac
Sur Mac, il est peut-etre necessaire de mettre
LDFLAGS = -L/Applications/usr/lib -lgiac
3/ Modifier apps/calculation/calculation.cpp, remplacer
=====
void Calculation::setContent(const char * c, Context * context) {
...
}
=====
par
=====
extern "C" const char * caseval(const char *);
void Calculation::setContent(const char * c, Context * context) {
reset();
#if 0
strlcpy(m_inputText, c, sizeof(m_inputText));
#else
static const char * bidon=caseval("init geogebra");
const char * ans=caseval(c);
strlcpy(m_inputText,ans,sizeof(m_inputText));
#endif
Evaluation<double> * evaluation = input()->evaluate<double>(*context);
evaluation->writeTextInBuffer(m_outputText, sizeof(m_outputText));
delete evaluation;
}
=====
Ensuite recompiler, par exemple avec gcc-7
make PLATFORM=simulator CC=gcc-7 CXX=g++-7 LD=g++-7
Lancer ./app.elf, essayez par exemple int(1/x,1,2), observez que l'input est remplace le resultat exact du calcul fait par giac (en mode geogebra). J'aurais bien voulu remplacer l'output par le resultat mais ca ne marche pas parce qu'il y a surement un post-traitement qui veut un resultat approche. Mais l'objectif est atteint de mon cote, ca marche et c'est tres facile a mettre en oeuvre.