π
<-

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,

Unread postby critor » 07 Feb 2019, 15:19

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.

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
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

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

Unread postby Adriweb » 07 Feb 2019, 15:24

critor wrote:
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.

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 wrote:@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 wrote: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: Select all
>>> help("modules")
__main__          collections       os                sys
array             gc                random            time
builtins          math              storage           urandom
cmath             micropython       struct
Plus any modules on the filesystem

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

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

Unread postby Lionel Debroux » 07 Feb 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...
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

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

Unread postby Noury » 07 Feb 2019, 16:01

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

Code: Select all

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é
User avatar
NouryVIP++
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 64.7%
 
Posts: 318
Joined: 07 Sep 2018, 09:19
Location: Sceaux, France 92
Gender: Male
Calculator(s):
MyCalcs profile

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

Unread postby Adriweb » 07 Feb 2019, 16:03

Joli :)

nbenm wrote: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: 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):
    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

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

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

Unread postby Noury » 07 Feb 2019, 16:09

C'est nettement mieux.

Code: Select all
         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.
User avatar
NouryVIP++
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 64.7%
 
Posts: 318
Joined: 07 Sep 2018, 09:19
Location: Sceaux, France 92
Gender: Male
Calculator(s):
MyCalcs profile

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

Unread postby Adriweb » 07 Feb 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.

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

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

Unread postby Adriweb » 07 Feb 2019, 16:34

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

Code: Select all
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: Select all
def test(l, n):
    timed = hastime()
    if timed:
        start = monotonic()
    else:
        start = 0
    stop, sdiff, arr = 1, -1, []
[...]

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

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

Unread postby blouson » 07 Feb 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 ! :(
User avatar
blouson
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Level up: 66.7%
 
Posts: 135
Joined: 16 Feb 2018, 05:37
Gender: Not specified
Calculator(s):
MyCalcs profile

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

Unread postby critor » 07 Feb 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: Select all
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
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

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 18 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.
1074 utilisateurs:
>1036 invités
>31 membres
>7 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)