Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » KhiCAS, add-in calcul formel pour Graph 90+e et 35eii
Parisse Hors ligne Membre Points: 398 Défis: 0 Message

KhiCAS, add-in calcul formel pour Graph 90+e et 35eii

Posté le 15/07/2018 12:09

KhiCAS est le portage de Xcas pour Casio Graph 90+e et 35eii. En résumé, il transforme votre calculatrice en calculatrice CAS (ce qui en fait de la 35eii la calculatrice CAS la moins chère du marché!), programmable en Python (soit avec MicroPython, soit en syntaxe Python dans Xcas).
Documentation
Version complète pour Graph 90 Fichier g3a et Fichier complémentaire (attention pour l'émulateur il faut utiliser ces fichiers g3a et complément).
Version courte pour Graph 90 Fichier g3a ou pour Graph 35eii Fichier g1a : certaines fonctions de Xcas ne sont pas disponibles (géométrie, moteur de rendu 3d, tableur, certaines commandes Xcas manquent, pas d'interpréteur MicroPython)
Video sur des exercices niveau lycee


Précédente 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 Suivante
Lephenixnoir Hors ligne Administrateur Points: 22771 Défis: 149 Message

Citer : Posté le 14/01/2022 15:39 | #


Oui je pense que tu as raison, ça ressemble à un genre de problèmes extrêmement casse-pieds à aborder pour finalement pas grand-chose.
Parisse Hors ligne Membre Points: 398 Défis: 0 Message

Citer : Posté le 25/01/2022 12:03 | #


Petite question sur le fichier .ld: pour les fichiers objets a placer en RAM, il faut les lister un par un? Je n'arrive pas a utiliser un joker, par exemple ce qui suit ne marche pas, je suis oblige de mettre chaque fichier individuellement:

SECTIONS
{
        .rominram : {
                z*.o(.text)
                z*.o (.text.*)
                z*.o (.rodata)
                z*.o (.rodata.*)
        } > r8c2
        
        .text : {
                *(.pretext)     /* init stuff */
                *(.text)
                *(.text.*)
        } > rom
      
        /* Read-only data, in ROM */
        .rodata : {
                *(.rodata)
                *(.rodata.*)
        } > rom
       ...
Lephenixnoir Hors ligne Administrateur Points: 22771 Défis: 149 Message

Citer : Posté le 25/01/2022 13:25 | #


Si tu peux faire ça, vois le manuel de ld §3.6.4.2. Sur les règles de .text c'est d'ailleurs exactement ce qui est fait avec *.

Ce qu'il y a c'est que le nom qui est testé c'est le chemin complet du fichier spécifié sur la ligne de commande ie. dans ton cas (tu compiles dans le dossier source il me semble) un truc comme src/gen.o. Tu peux voir dans la doc que * ne matche pas les / sauf si le pattern tout entier est *.

Donc src/z*.o devrait aider. Tu peux toujours lire la commande de link pour savoir exactement à quoi ressemble le chemin.
Parisse Hors ligne Membre Points: 398 Défis: 0 Message

Citer : Posté le 25/01/2022 16:00 | #


Il n'y a pas de src/ dans la ligne de link, la voila

sh3eb-elf-g++ -g -static -nostdlib -Tprizm.ld -Wl,--gc-sections,--print-memory-usage -Wl,-Map=khicas.map catalogfr.o  ksym2poly.o kgausspol.o kthreaded.o zcsturm.o kmaple.o krpn.o kmoyal.o kmisc.o kpermu.o input_parser.o ksymbolic.o index.o kmodpoly.o kmodfactor.o kezgcd.o kderive.o ksolve.o kintg.o kintgab.o klin.o kseries.o ksubst.o kvecteur.o kglobal.o zifactor.o kalg_ext.o zgauss.o khelp.o kti89.o zplot.o kprog.o kunary.o kusual.o kidentificateur.o kgen.o zrisch.o input_lexer.o first.o zdesolve.o  fileGUI.o menuGUI.o textGUI.o fileProvider.o graphicsProvider.o stringsProvider.o kdisplay.o console.o main.o -L. -L/home/parisse/casiolocal/lib -Wl,--start-group -ltommath -lustl -lm -lc -lgcc -Wl,--end-group -o khicas.elf
Lephenixnoir Hors ligne Administrateur Points: 22771 Défis: 149 Message

Citer : Posté le 25/01/2022 16:33 | # | Fichier joint


Je vois pas trop ce qui se passe mal chez toi, peut-être un truc autour. Je te joins un exemple qui marche comme base pour comparer.
Parisse Hors ligne Membre Points: 398 Défis: 0 Message

Citer : Posté le 26/01/2022 20:15 | #


Ben, avec ton prizm.ld ou j'ai change les tailles ca marche, je ne comprends pas pourquoi ca ne marchait pas...
Merci!
Lephenixnoir Hors ligne Administrateur Points: 22771 Défis: 149 Message

Citer : Posté le 26/01/2022 20:18 | #


Content que ça marche ! Les linkers scripts sont subtils parfois, il m'a fallu lontemps pour être à l'aise avec. Sûrement un truc pas très explicite...
Parisse Hors ligne Membre Points: 398 Défis: 0 Message

Citer : Posté le 29/01/2022 16:34 | #


J'avance, le moteur 3d est maintenant integre ainsi que l'instruction plot pour tracer une fonction en 3d, par exemple plot(x^2-y^2). C'est un rendu un peu different de celui de l'appli Casio, on suppose qu'il y a de la lumiere blanche qui arrive de haut en bas de la scene, ce qui donne une illusion de relief (le rendu est different selon la pente). C'est plus lent que l'appli Casio parce que j'utilise tout l'ecran alors que Casio a un affichage un peu timbre poste.
La suite viendra bientot, avec l'activation de toutes les commandes de geometrie 2d et geometrie/graphes 3d dont les polyedres reguliers ou solides de Platon (pyramide, cube, octaedre, dodecaedre, icosaedre). (Et on ne sera pas limite a 3 objets en 3d, la seule limite sera la patience de l'utilisateur...)
Pour tester le prototype actuel du futur KhiCAS3d en 2 morceaux, il faut installer
partie 1 et partie 2
Attention, sur l'emulateur, il faut installer
partie 1 et partie 2
Pour le source c'est
par ici
Brickcities Hors ligne Membre Points: 63 Défis: 9 Message

Citer : Posté le 31/01/2022 08:09 | #


Petite question : Pensez-vous qu'il serait possible de proposer une version lite de khicas ? Genre sans certaines parties comme l'interprêteur ou les plots ? Ca permettrait de profiter de la puissance du programme pour le calcul formel tout en prenant un peu moins de mémoire (je crois ?)
Parisse Hors ligne Membre Points: 398 Défis: 0 Message

Citer : Posté le 31/01/2022 13:43 | #


En fait, la version en 1 addin de KhiCAS (https://www-fourier.univ-grenoble-alpes.fr/~parisse/casio/khicas.g3a) est une version lite de Xcas, elle n'occupe pas tant de memoire que ca puisque ca fait 2Mo (pour 16Mo de libre il me semble). Il n'est pas possible de gagner de la memoire en enlevant un morceau ou un autre, car tout est interdependant (plus exactement on peut sans doute gagner quelques dizaines de Ko en enlevant quelques instructions, mais quel interet?)
La version en cours de developpement en 2 addins devrait occuper 2 fois plus de place (environ 4Mo), mais permettre d'acceder a une version essentiellement complete de Xcas (comme sur les Numworks et TI Nspire CX). J'espere pouvoir egalement y mettre une version de MicroPython avec mes modules (donc plus complet que celui de Casio), et peut-etre QuickJS (pour le support des flottants multiprecision, et un interpreteur Javascript).
Brickcities Hors ligne Membre Points: 63 Défis: 9 Message

Citer : Posté le 31/01/2022 15:39 | #


En fait, ma question portait plus sur la version pour G35+E II, car, sauf erreur de ma part, nous n'avons que 3Mo de disponible (ce qui veut dire qu'une version avec plus de fonctionnalités n'y rentrera de toutes façons pas :/
Parisse Hors ligne Membre Points: 398 Défis: 0 Message

Citer : Posté le 31/01/2022 17:55 | #


Effectivement sur la 35eii, KhiCAS occupe une bonne partie de l'espace de stockage. Mais on ne peut pas faire significativement moins, on peut sans doute economiser une ou quelques dizaines de K en faisant attention (il doit y avoir un ou deux types de graphe qui n'ont probablement guere d'interet sur la 35 a cause de la faible resolution), mais ca ne va pas chercher loin.
Brickcities Hors ligne Membre Points: 63 Défis: 9 Message

Citer : Posté le 01/02/2022 08:51 | #


Ok, tant pis. Merci pour votre réponse en tous cas
Parisse Hors ligne Membre Points: 398 Défis: 0 Message

Citer : Posté le 14/02/2022 08:43 | #


Les nouvelles versions de KhiCAS pour Graph 90 (en francais) avec 3d et micropython sont disponibles en version entre alpha et beta ici: partie 1 et partie 2
Attention, ces binaires ne fonctionnent pas sur l'emulateur, pour lesquels il faut utiliser partie 1 et partie 2
C'est une mise a jour majeure, a la fois en termes de fonctionnalites (3d, micropython mais aussi plus de fonctionnalites, comme par exemple les unites physiques, les commandes de geometrie analytique 2d et 3d de Xcas, ou encore le support des corps finis) et en capacite memoire utilisable qui passe d'un peu moins de 128K a plus de 700K (dont par defaut 256K sont alloues a MicroPython si on le lance). Il y a encore de la place (environ 500K) pour completer la mise a jour du noyau de calcul formel qui n'est pas terminee et j'aimerais bien aussi changer la librairie de calcul entiers multi-precisions pour avoir des flottants multi-precision (par exemple pour calculer pi avec 30 decimales), en passant a QuickJS qui permettrait aussi peut-etre d'integrer l'interpreteur Javascript de QuickJS.

Ajouté le 15/02/2022 à 10:58 :
Je viens de mettre a jour avec l'ajout des applis additionnelles : tableur formel et tableau periodique des elements (avec possibilite de copier/coller facilement vers le shell).

Ajouté le 25/02/2022 à 08:35 :
Ajout d'une appli additionnelle Pret bancaire et Epargne, qui me semble plus simple a utiliser que l'appli finance de Casio.

Ajouté le 23/04/2022 à 17:11 :
Mise a jour qui corrige un bug dans la gestion de certains calculs en complexe, par exemple integrate(exp(x^2),x,0,1) (calcule a partir de erf(i)), ou encore dans la diagonalisation de matrices a coefficients complexes approches.

Ajouté le 10/05/2022 à 17:40 :
Mise a jour qui optimise un peu l'affichage des surfaces en 3d (environ 25% plus rapide). Ca reste plus lent que celui de Casio (environ 5 fois), mais le rendu est different : la zone d'affichage de KhiCAS est nettement plus large et le relief est rendu par l'intensite lumineuse. Pour faire plus rapide, il faudrait reprendre tout le code de rendu qui a ete developpe a l'origine pour la Numworks, et utiliser le fait que sur la Casio on a suffisamment de memoire pour stocker un z-buffer.

Ajouté le 17/05/2022 à 11:55 :
Mise a jour, avec des changements pour l'affichage des polyedres et des plans: ils ne sont plus affiches remplis par defaut, pour les polyedres les aretes sont representees, et pour les plans leur trace sur le cube de visualisation. On peut bien sur toujours afficher un polyedre ou un plan rempli en utilisant en dernier argument optionnel de la commande de trace color=filled. L'affichage des graphes de fonction de 2 variables et des spheres ne change pas.

Ces changements permettent de traiter des problemes de geometrie 3d (et accessoirement l'affichage est plus rapide...). Voici deux exemples de sessions KhiCAS correspondant aux 2 problemes de geometrie du bac spe maths metropole de cette annee
https://www-fourier.univ-grenoble-alpes.fr/~parisse/casio/sessions/bac11.xw et https://www-fourier.univ-grenoble-alpes.fr/~parisse/casio/sessions/bac12.xw
Voici par exemple le texte de la construction de la deuxieme figure

c:=cube([0,0,0],[1,0,0],[0,1,0]);
A,B,C,D,E,F,G,H:=vertices(c);
K:=midpoint(B,C);
T:=tetrahedron(E,F,G,K,color=magenta);
EGK:=plane(E,G,K,color=cyan);
n:=vector([0,0,0],[2,-2,1]/5,color=red);
L:=projection(EGK,F);
segment(F,L);
P:=milieu(E,G);
M:=milieu(E,K);
N:=milieu(K,G);
triangle(P,M,N,color=magenta)

Notez que dans le shell KhiCAS on peut executer des commandes de "mesure" de geometrie analytique, par exemple distance, produit scalaire, coordonnees, etc.

Rappel des liens pour installer la nouvelle version de KhiCAS sur la Graph90:
https://www-fourier.univ-grenoble-alpes.fr/~parisse/casio/khicas90.g3a et
https://www-fourier.univ-grenoble-alpes.fr/~parisse/casio/khicas90.ac2


ljf Invité

Citer : Posté le 17/05/2022 15:47 | #


Les deux liens pour installer la nouvelle version de KhiCAS sur la Graph90 sont identiques : normal ?
Slyvtt Hors ligne Community Manager Points: 896 Défis: 0 Message

Citer : Posté le 17/05/2022 16:45 | #


A priori le deuxième lien devrait etre

https://www-fourier.univ-grenoble-alpes.fr/~parisse/casio/khicas90.ac2

------------------------------------------------------------------
Le monde est dangereux à vivre ! Non pas tant à cause de ceux qui font le mal, mais à cause de ceux qui regardent et laissent faire.
-------------------------------------------------------------------
Albert Einstein
Mathématicien, Physicien, Scientifique (1879 - 1955)
Parisse Hors ligne Membre Points: 398 Défis: 0 Message

Citer : Posté le 17/05/2022 16:58 | #


Oups, j'ai edite le message initial.

Ajouté le 17/05/2022 à 17:36 :
j'ai rajoute quelques traductions (sommets, plan, vecteur, tetraedre... on ne connait pas forcement les noms en anglais en geometrie)
Parisse Hors ligne Membre Points: 398 Défis: 0 Message

Citer : Posté le 23/05/2022 17:22 | #


Nouvelle mise a jour avec un gain en vitesse pour la 3d.
Lephenixnoir Hors ligne Administrateur Points: 22771 Défis: 149 Message

Citer : Posté le 23/05/2022 17:24 | #


Content que ça marche
Parisse Hors ligne Membre Points: 398 Défis: 0 Message

Citer : Posté le 23/05/2022 21:30 | #


Grace a ton code pour l'overclock et a des optimisations dans mon code, j'ai gagne en facteur 3 environ (il faut maintenant environ 10 secondes pour un trace precis contre presque 30 auparavant).
Lephenixnoir Hors ligne Administrateur Points: 22771 Défis: 149 Message

Citer : Posté le 23/05/2022 21:33 | #


Excellent ! SlyVTT a testé sur Prizm et y'a quelques ajustements à faire, je te passerai une archive mise à jour quand ce sera bon.
Précédente 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 Suivante

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2022 | Il y a 34 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd