π
<-

Module TI-Python disponible à l'unité chez Jarrety : 13,50€

:32ti73: :32ti73e: :32ti73e2: :32ti76f: :32ti80: :32ti81: :32ti82: :32ti85: :32ti86: :32ti82s: :32ti82sf: :32ti82sfn: :32ti83: :32ti83p: :32ti83pb: :32ti83pr: :32ti83pfr: :32ti83pse: :32ti84p: :32ti84pse: :32ti84ppse: :32ti84pfr: :32ti84pcse: :32ti83pfrusb: :32ti82p: :32ti82a: :32ti84pce: :32ti83pce:
Online

Re: Module TI-Python disponible à l'unité chez Jarrety : 13,

Unread postby parisse » 06 Feb 2019, 20:57

Oui, je suis bien d'accord, c'est juste que le message que je commentais pouvait laisser l'impression que le probleme de precision sur le calcul de f' n'existait qu'avec des floats simple precision. Voir par exemple la session de Xcas en ligne
session Xcas

Ca laisse quand meme songeur tout ca. On a du mal a croire que TI n'ait pas les ressources pour adapter vers des flottants double precision. Je me demande s'ils n'ont pas sous-traite l'affaire en externe et low-cost.
User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 86.1%
 
Posts: 3663
Joined: 13 Dec 2013, 16:35
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: Module TI-Python disponible à l'unité chez Jarrety : 13,

Unread postby critor » 06 Feb 2019, 21:24

Ah parisse, bonsoir.

Pas impossible qu'ils aient sous-traité à des personnes qui ont visiblement complètement zappé le contexte de la cible (lycée et très majoritairement sections scientifiques), pour nous avoir choisi une technologie tout juste digne d'un jouet de découverte/initiation Python.

Pendant que vous êtes sur ce topic, quelque chose qui cloche dans mon script de test de performances sans flottants ?
viewtopic.php?f=41&t=22242&start=90#p239524

Parce qu'il relègue les HP Prime et KhiCAS aux dernières places, ce à quoi je ne m'attendais pas.
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 48%
 
Posts: 41984
Images: 15890
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Online

Re: Module TI-Python disponible à l'unité chez Jarrety : 13,

Unread postby parisse » 07 Feb 2019, 07:24

En regardant rapidement le source, il y a des myabs et sgn qui semblent inutiles, mais je pense que c'est plutot l'affectation dans une liste qui est nettement plus lente car avec = l'affectation se fait par valeur, donc avec copie complete de la liste. Il faut utiliser =< pour faire une affectation par reference comme en Python.
C'est a mon sens plus intuitif quand on debute qu'apres la suite d'instructions
l=[1,2,3]; m=l; l[0]=0;
m[0] renvoie 1
Je testerai plus en detail des que j'ai un peu de temps.
User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 86.1%
 
Posts: 3663
Joined: 13 Dec 2013, 16:35
Gender: Not specified
Calculator(s):
MyCalcs profile

Online

Re: Module TI-Python disponible à l'unité chez Jarrety : 13,

Unread postby parisse » 07 Feb 2019, 08:25

Ca semble etre surtout sgn vs sign qui ralentit (l'affectation par reference ne change pas grand chose car la taille de la liste n'est pas tres grande). En fait ce script teste principalement la vitesse d'interpretation. Du coup c'est normal qu'un interpreteur base sur un noyau d'evaluation CAS soit beaucoup plus lent. Ceci se compense (partiellement) par les instructions utilisables nativement, ici la fonction sign qui semble absente en Python (je decrouvre ca, c'est quand meme tres etonnant!!!) alors qu'elle est presente dans Xcas comme dans tout logiciel de calcul/calculatrice.
User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 86.1%
 
Posts: 3663
Joined: 13 Dec 2013, 16:35
Gender: Not specified
Calculator(s):
MyCalcs profile

Online

Re: Module TI-Python disponible à l'unité chez Jarrety : 13,

Unread postby parisse » 07 Feb 2019, 10:13

Teste avec KhiCAS sur la Casio: si on remplace sgn par sign, le temps d'execution est presque divise par 3 : 74 secondes. Je n'ai pas teste sur les Prime, on gagne tres probablement le meme facteur 3 environ.
User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 86.1%
 
Posts: 3663
Joined: 13 Dec 2013, 16:35
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: Module TI-Python disponible à l'unité chez Jarrety : 13,

Unread postby samourai3745 » 07 Feb 2019, 11:31

critor wrote:Ah parisse, bonsoir.

Pas impossible qu'ils aient sous-traité à des personnes qui ont visiblement complètement zappé le contexte de la cible (lycée et très majoritairement sections scientifiques), pour nous avoir choisi une technologie tout juste digne d'un jouet de découverte/initiation Python.

Pendant que vous êtes sur ce topic, quelque chose qui cloche dans mon script de test de performances sans flottants ?
viewtopic.php?f=41&t=22242&start=90#p239524

Parce qu'il relègue les HP Prime et KhiCAS aux dernières places, ce à quoi je ne m'attendais pas.


Bonjour Critor,

J'ai essayé ton prog sur ma G90+e, j'obtiens 15,129s avec le module python Casio et System error reboot address(r) target=DF1ED41F pc=00000000 avec le module Khicas du 20 janvier. Bizarre

J'espère que pour le module TI une correction sera apportée, sinon cela reste juste un bidule de démo de ce que pourrait être Python et non un module python.
User avatar
samourai3745Programmeur
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 82%
 
Posts: 75
Images: 0
Joined: 19 Jul 2015, 17:23
Location: Tours
Gender: Male
Calculator(s):
MyCalcs profile
Class: BTS Informatique de Gestion, BTS Formateur d'adultes

Re: Module TI-Python disponible à l'unité chez Jarrety : 13,

Unread postby Lionel Debroux » 07 Feb 2019, 12:24

Allez, encore un petit build trafiqué de CircuitPython. Par rapport au précédent, j'ai mis cmath, ce qui prend ~2.5 KB, et donc, pour que le binaire puisse rentrer dans les 184 KB de Flash réservés, j'ai dû tailler dans les modules spécifiques à la board (nommés *io), et un peu le code d'init... j'espère donc que ça fonctionne sur board réelle...

Merci d'avance à ceux qui testeront.
Il serait intéressant d'énumérer les modules dans ce build, pour voir les différences avec le TI-Python Adapter et les gains potentiels de place (module microcontroller, par exemple ?). La liste des modules postée par critor à https://ti-pla.net/p239442 était très restreinte, après tout.

Notes diverses:
* il reste busio I2C et busio SPI, mais ça ne gagne pas beaucoup. Si on enlève tout SPI et I2C, on va peut-être pouvoir gagner 1-2 KB, mais est-ce qu'on peut réellement le faire (parce que, par exemple, I2C et SPI ne s'avéreraient pas utilisés sur la board, et ne sont de toute façon pas accessibles physiquement si on laisse le PCB dans sa boîte plastique) ?
* certaines fonctions de maths coûtent très cher en place: pow est proche de 2.5 KB (!), expm1 fait ~1 KB, log 560 octets, __rem_pio2_large 0x540 malgré de la propagation de valeurs constantes, mp_format_float 0x54c octets malgré la même optimisation;
* on gagne ~2 KB en utilisant MICROPY_ERROR_REPORTING_TERSE, mais bien sûr, l'utilisabilité va s'en ressentir;
* si j'active MICROPY_PY_URANDOM_EXTRA_FUNCS, je passe très légèrement au-delà de la limite;
* si j'active MICROPY_PY_MATH_SPECIAL_FUNCTIONS, je monte 6 KB au-delà de la limite.

Bref... une nouvelle fois, TI, il ne fallait pas choisir ce matériel de m*, c'est tout...

Code: Select all
LINK build-trinket_m0/firmware.elf

360 bytes free in flash out of 188416 bytes ( 184.0 kb ).
26596 bytes free in ram for stack out of 32768 bytes ( 32.0 kb ).

Create build-trinket_m0/firmware.bin
Create build-trinket_m0/firmware.uf2
Converting to uf2, output size: 376320, start address: 0x2000
Wrote 376320 bytes to build-trinket_m0/firmware.uf2.
You do not have the required permissions to view the files attached to this post.
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
User avatar
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 11.3%
 
Posts: 6865
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Class: -
GitHub: debrouxl

Online

Re: Module TI-Python disponible à l'unité chez Jarrety : 13,

Unread postby parisse » 07 Feb 2019, 14:29

Nouvelle illustration de la stupidite de vouloir economiser quelques piecettes sur la memoire, apres on est oblige de se torturer pour faire rentrer en memoire ce dont on a envie avec un gros risque d'introduire des bugs.
Lire que 2.5K c'est tres cher en place de nos jours c'est quand meme ubuesque!
User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 86.1%
 
Posts: 3663
Joined: 13 Dec 2013, 16:35
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: Module TI-Python disponible à l'unité chez Jarrety : 13,

Unread postby Lionel Debroux » 07 Feb 2019, 14:38

On est d'accord, TI a merdé, beaucoup plus que NumWorks :D

Depuis le build précédent, j'ai enlevé quelques modules, assez pour pouvoir annuler certains de mes hacks, mais pas encore assez pour mettre, par exemple, les fonctions spéciales de math, qui n'y sont pas dans le build de TI.
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
User avatar
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 11.3%
 
Posts: 6865
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Class: -
GitHub: debrouxl

Re: Module TI-Python disponible à l'unité chez Jarrety : 13,

Unread postby Adriweb » 07 Feb 2019, 15:13

parisse wrote:Teste avec KhiCAS sur la Casio: si on remplace sgn par sign, le temps d'execution est presque divise par 3 : 74 secondes. Je n'ai pas teste sur les Prime, on gagne tres probablement le meme facteur 3 environ.


Au passage, on peut remplacer ceci du script initial
Code: Select all
def myabs(x):
  if x<0:
    x=-x
  return x

def sgn(x):
  if x!=0:
    return x/myabs(x)
  else:
    return 0

par ceci :

Code: Select all
def sgn(x):
    return x and (1 if x>0 else -1)
ou
Code: Select all
def sgn(x):
    return x and (1, -1)[x < 0]
ou
Code: Select all
sgn = lambda x: x and (1 if x>0 else -1)
ou
Code: Select all
sgn = lambda x: x and (1, -1)[x < 0]


Edit: si on a math d'importé, on peut faire appel à la fonction copysign, aussi :
Code: Select all
def sign(x):
    return x and copysign(1, x)


En tout cas pour python 3 / micropython / circuitpython :P

Pour garder la compat avec giac/khicas, il faudrait quelque chose du genre :
Code: Select all
def sgn(x):
    if x>0:
        return 1
    elif x<0:
        return -1
    else:
        return 0


Bref, tout ça évite un appel de fonction, une division, etc.

J'ai loupé quelque chose que la division gérait autrement, ou pas ?

Et @parisse ce ne serait pas possible de gérer la syntaxe du short if dans l'exemple return x and (1 if x>0 else -1) ? Parce que pour le coup, même si je ne suis pas fan des que c'est ça dépasse juste une seule valeur comme ici, c'est quelque chose de très courant en Python...

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 78.9%
 
Posts: 14744
Images: 1119
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

PreviousNext

Return to News TI-z80 (TI-73, 76, 80, 81, 82, 83, 84, 85, 86)

Who is online

Users browsing this forum: ClaudeBot [spider] and 7 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
993 utilisateurs:
>934 invités
>53 membres
>6 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)