π
<-
Chat plein-écran
[^]

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:

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

Message non lude critor » 07 Fév 2019, 15:19

parisse a écrit: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.

C'est noté, merci.
Mais je ne peux pas pour un classement avoir d'un côté une fonction signe implémentée en Python vu qu'elle n'est pas disponible, et d'un autre côté une fonction signe native en langage machine.
Ce qui est par contre possible, c'est d'implémenter la fonction signe différemment si cela peut accélérer les HP Prime et KhiCAS sans ralentir les autres.

@Lionel
La sortie que j'ai obtenue ce midi avec ton dernier firmware Trinket :
Auto-reload is on. Simply save files over USB to run them or enter REPL to disable.

Press any key to enter the REPL. Use CTRL-D to reload.
Adafruit CircuitPython 4.0.0-beta.1-46-g3d0757102-dirty on 2019-02-07; Adafruit Trinket M0 with samd21e18
>>> import sys
>>> sys.maxsize+1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OverflowError: small int overflow
>>> 1j
1j
>>> import cmath
>>> from prec import *
>>> prec(2)
53
>>> prec(10)
16
>>>


Donc on a en plus :
  • les nombres flottants en double précision (53 bits soit 16 chiffres significatifs)
  • les nombres complexes
  • les fonctions complexes (module cmath)

Si besoin d'économiser, la Trinket dispose d'une diode RGB.
De mémoire, il y a un module pour la gérer, et sans doute du code de démo quelque part puisque dès l'allumage cette diode clignote avec un dégradé de luminosité.
Or cette diode RGB, sauf si j'ai mal regardé, a été supprimée dans le module externe TI-Python.
Donc si le but est de fournir un firmware de remplacement pour le seul module externe TI-Python (et pas l'Adafruit Trinket M0), tout ce code est inutile.

Pour le reste, comment liste-t-on l'intégralité des modules ?
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 42.3%
 
Messages: 41494
Images: 14626
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

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

Message non lude Adriweb » 07 Fév 2019, 15:24

critor a écrit:
parisse a écrit: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.

C'est noté, merci.
Mais je ne peux pas pour un classement avoir d'un côté une fonction signe implémentée en Python vu qu'elle n'est pas disponible, et d'un autre côté une fonction signe native en langage machine.
Ce qui est par contre possible, c'est d'implémenter la fonction signe différemment si cela peut accélérer les HP Prime et KhiCAS sans ralentir les autres.

Du coup, cf. mon post juste avant, nos messages se sont croisés ;)

critor a écrit:@Lionel
Si besoin d'économiser, la Trinket dispose d'une diode RGB.
De mémoire, il y a un module pour la gérer, et sans doute du code de démo quelque part puisque dès l'allumage cette diode clignote avec un dégradé de luminosité.
Or cette diode RGB, sauf si j'ai mal regardé, a été supprimée dans le module externe TI-Python.
Donc si le but est de fournir un firmware de remplacement pour le seul module externe TI-Python (et pas l'Adafruit Trinket M0), tout ce code est inutile.

J'en discutais avec lui tout a l'heure par IRC, il y a en fait davantage que ça, qui prend de la place (et qui n'est pas sur le TI-Python, que je sache ?)


Mais il a enlevé des choses et ça n'y est plus désormais.


critor a écrit:Pour le reste, comment liste-t-on l'intégralité des modules ?

On peut faire du copier coller ligne par ligne, mais c'est rapidement chiant... On va voir s'il y a mieux avec help et/ou dir, ou un truc de ce genre.
En tout cas help("modules") fonctionne de base sur le CircuitPython de lionel :

Code: Tout sélectionner
>>> help("modules")
__main__          collections       os                sys
array             gc                random            time
builtins          math              storage           urandom
cmath             micropython       struct
Plus any modules on the filesystem
Image

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...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.2%
 
Messages: 14614
Images: 1218
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

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

Message non lude Lionel Debroux » 07 Fév 2019, 15:31

Nouveau build, où j'ai trimmé un certain nombre de modules et de fonctionnalités inutiles, pour pouvoir mettre des fonctionnalités utiles qui, pour la plupart, ne sont pas dans l'image de TI.

D'après l'énumération d'Adriweb dans le post précédent, 5 modules ne sont pas dans l'image de TI: os, storage, urandom, cmath, micropython.
Quelles sont les fonctions des autres modules dans mon image ? Ca serait bien qu'on arrive à un sur-ensemble strict du firmware du TI-Python Adapter...
Fichiers joints
hacked_up_circuitpython_samd21_double_prec_fp_build_20190207_debrouxl_4.tar.bz2
CircuitPython Trinket M0 with DPFP, fewer useless and more useful functions
(184.19 Kio) Téléchargé 75 fois
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.2%
 
Messages: 6859
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

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

Message non lude Noury » 07 Fév 2019, 16:01

@critor voici ce que donne l'exécution de ton code sur mon pc:

Code: Tout sélectionner

151115 function calls in 0.074 seconds
   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    0.000    0.000    0.074    0.074 <string>:1(<module>)
        1    0.000    0.000    0.000    0.000 test_tiplanet.py:13(genseed)
        1    0.000    0.000    0.000    0.000 test_tiplanet.py:20(genarr)
    73888    0.008    0.000    0.008    0.000 test_tiplanet.py:30(myabs)
    75013    0.021    0.000    0.029    0.000 test_tiplanet.py:35(sgn)
        2    0.044    0.022    0.074    0.037 test_tiplanet.py:41(sortarr)
        1    0.000    0.000    0.000    0.000 test_tiplanet.py:6(hastime)
        1    0.000    0.000    0.074    0.074 test_tiplanet.py:60(test)
        1    0.000    0.000    0.074    0.074 {built-in method builtins.exec}
      538    0.000    0.000    0.000    0.000 {built-in method builtins.len}
        3    0.000    0.000    0.000    0.000 {built-in method time.monotonic}
        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
      604    0.000    0.000    0.000    0.000 {method 'extend' of 'list' objects}
     1060    0.000    0.000    0.000    0.000 {method 'pop' of 'list' objects}

On voit :
- que les appels à myabs et sgn sont les plus nombreux.
- que c'est sortarr qui consomme le plus

J'espère ne pas m'être trompé
Avatar de l’utilisateur
NouryVIP++
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 52.8%
 
Messages: 287
Inscription: 07 Sep 2018, 09:19
Localisation: Sceaux, France 92
Genre: Homme
Calculatrice(s):
MyCalcs profile

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

Message non lude Adriweb » 07 Fév 2019, 16:03

Joli :)

nbenm a écrit:On voit :
- que les appels à myabs et sgn sont les plus nombreux.
- que c'est sortarr qui consomme le plus

J'espère ne pas m'être trompé


Est-ce que tu peux modifier le script pour remplacer

Code: Tout sélectionner
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: Tout sélectionner
def sgn(x):
    if x>0:
        return 1
    elif x<0:
        return -1
    else:
        return 0


Et voir ce que ca change dans ton tableau ?

Apres faudrait voir pour optimiser sortarr mais bon, ca permet de faire des benchmarks relatifs, donc pas tres grave.

Merci
Image

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...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.2%
 
Messages: 14614
Images: 1218
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

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

Message non lude Noury » 07 Fév 2019, 16:09

C'est nettement mieux.

Code: Tout sélectionner
         77227 function calls in 0.048 seconds

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    0.000    0.000    0.048    0.048 <string>:1(<module>)
        1    0.000    0.000    0.000    0.000 test_tiplanet2.py:13(genseed)
        1    0.000    0.000    0.000    0.000 test_tiplanet2.py:20(genarr)
    75013    0.007    0.000    0.007    0.000 test_tiplanet2.py:30(sgn)
        2    0.040    0.020    0.047    0.024 test_tiplanet2.py:38(sortarr)
        1    0.000    0.000    0.048    0.048 test_tiplanet2.py:57(test)
        1    0.000    0.000    0.000    0.000 test_tiplanet2.py:6(hastime)
        1    0.000    0.000    0.048    0.048 {built-in method builtins.exec}
      538    0.000    0.000    0.000    0.000 {built-in method builtins.len}
        3    0.000    0.000    0.000    0.000 {built-in method time.monotonic}
        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
      604    0.000    0.000    0.000    0.000 {method 'extend' of 'list' objects}
     1060    0.000    0.000    0.000    0.000 {method 'pop' of 'list' objects}

Avec un effort sur sortarr, ça peut gazouiller.
Évidemment, on ne vérifie ici que la durée, pas le résultat des traitements.
Avatar de l’utilisateur
NouryVIP++
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 52.8%
 
Messages: 287
Inscription: 07 Sep 2018, 09:19
Localisation: Sceaux, France 92
Genre: Homme
Calculatrice(s):
MyCalcs profile

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

Message non lude Adriweb » 07 Fév 2019, 16:13

Ah, parfait :)
Je ne sais pas pourquoi critor a choisi une implementation tierce de sign() de la sorte, sauf si le but était de tester en meme temps l'impact de la division (pourquoi pas), mais je ne pense pas.

Ouai, faudrait regarder pour sortarr maintenant.
Image

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...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.2%
 
Messages: 14614
Images: 1218
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

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

Message non lude Adriweb » 07 Fév 2019, 16:34

Il me semble d'ailleurs qu'il y a une petite erreur par ici :

Code: Tout sélectionner
def test(l, n):
    timed = hastime()
    if timed:
        start = monotonic()
    start, stop, sdiff, arr = 0, 1, -1, []
[...]

l'assignation de start dans le if timed est inutile car elle se fait overrider juste après.

Je suppose que le code voulu est :
Code: Tout sélectionner
def test(l, n):
    timed = hastime()
    if timed:
        start = monotonic()
    else:
        start = 0
    stop, sdiff, arr = 1, -1, []
[...]
Image

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...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.2%
 
Messages: 14614
Images: 1218
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

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

Message non lude blouson » 07 Fév 2019, 16:49

Tout ça fait quand même bien peur , et si ce module avait servi à guider un missile ou doser un médicament ! :(
Avatar de l’utilisateur
blouson
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Prochain niv.: 66.7%
 
Messages: 135
Inscription: 16 Fév 2018, 05:37
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

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

Message non lude critor » 07 Fév 2019, 18:04

Installé la dernière build améliorée du firmware par Lionel.

Bon, maintenant que le module externe TI-Python calcule en virgule flottante aussi bien que les autres pythonnettes, on peut enfin comparer les performances en flottants :

Code: Tout sélectionner
try:
  from time import *
except:
  pass

def hastime():
  try:
    monotonic()
    return True
  except:
    return False

def seuil(d):
  timed=hastime()
  start,stop,n,u,l,d=0 or timed and monotonic(),1,0,2.,1,d**2
  while (u-l)**2>=d: u,n=1+(1/((1-u)*(n+1))),n+1
  stop=timed and monotonic() or 1
  return [stop-start,n,u]


Ligne d'appel : seuil(.001)

  1. TI-Nspire CX CR3- : 28.64s
  2. TI-Nspire : 30.95s
  3. HP Prime G2 : 33.05s
  4. TI-Nspire CX CR4+ : 42.32s
  5. NumWorks : 51.91s
  6. HP Prime G1 : 2min12.69
  7. Graph 90+E : 3min42.08
  8. TI-Python + firmware de Lionel : 4min30.91
  9. Graph 75+E + CasioPython : 4min36.77
  10. Graph 90+E + KhiCAS : 6min07.34

On peut remarquer que les performances du module externe TI-Python amélioré en virgule flottante sont très proches d'une Casio Graph 75+E, légèrement meilleures ici avec la dernière build de Lionel, légèrement inférieures (4min38) avec l'avant-dernière build de Lionel.
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 42.3%
 
Messages: 41494
Images: 14626
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

PrécédenteSuivante

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

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 117 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1180 utilisateurs:
>1152 invités
>24 membres
>4 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)