π
<-
Chat plein-écran
[^]

Module TI-Python: exploration module math + comparaisons

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

Module TI-Python: exploration module math + comparaisons

Message non lude critor » 25 Nov 2018, 23:40

Cet article traite entre autres du module TI-Python, au sujet duquel il est rédigé a posteriori et illustré à l’aide des photos de tests prises sur le stand de Texas Instruments aux journées APMEP 2018 puis congrès UdPPC 2018. Nous ne disposons pas à ce jour du module.

Certaines photos ne correspondront pas exactement à ce qui est décrit, car nous avons amélioré le script utilisé entre les deux événements, sans pouvoir reprendre toutes les photos pour diverses contraintes lors du second événement.

Dans tous les cas, notez que ces tests ont été réalisés sur un prototype non final, et que des choses évoquées peuvent changer d'ici la livraison, en bien ou en mal d’ailleurs.

9931Dans un article précédent nous t'avons présenté le TI-Python, module externe permettant l'exécution de scripts Python sur ta TI-83 Premium CE, et t'avions annoncé la présence du module math. Par la suite, nous avions exploré son module builtins.

Aujourd'hui, explorons son module math à l'aide du même script suivant :
Code: Tout sélectionner
#platforms: (0)TI-Nspire (1)NumWorks (2)Graph 90+E (3)Graph 75+E (4)TI-Python
plines=[29,12,  7, 9,11]
pcols =[53,99,509,32,32]
try:
  import sys
  try:
    if sys.platform=='nspire': platform=0
    if sys.platform=='TI-Python Adapter': platform=4
  except: platform=3
except:
  try:
    import kandinsky
    platform=1
  except:
    platform=2

nlines=plines[platform]
ncols=pcols[platform]
curline=0

def mprint(*ls):
  global curline
  st=""
  for s in ls:
    if not(isinstance(s,str)):
      s=str(s)
    st=st+s
  stlines=1+int(len(st)/ncols)
  if curline+stlines>=nlines:
    input("Input to continue:")
    curline=0
  print(st)
  curline+=stlines

def explmod(obj,hd="",obs="",reset=True):
  global curline
  if(reset): curline=0
  c=0
  for itm in sorted(dir(obj)):
    c=c+1
    try:
      if obs=="":
        try:
          obs=obj.__name__ 
        except:
          obs=str(obj)
          obs=obs[obs.find("'")+1:obs.rfind("'")]
      its=obs+"."+str(itm)
      itv=eval(its)
      mprint(hd+str(itm)+"="+str(itv))
      if itv!=obj:
        c=c+explmod(itv,hd+".",its,False)
    except:
      mprint(hd+str(itm))
  if c>0:
    mprint(hd+"Total: "+str(c)+" item(s)")
  return c


Le script nous liste alors pas moins de 50 entrées retranscrites ci-dessous :
TI-Python a écrit:9975>>> from explmod import *
>>> import math
>>> explmod(math)
__name__='math'
.count()=<bound_method>
.endswith()=<bound_method>
.find()=<bound_method>
.format()=<bound_method>
.index()=<bound_method>
.isalpha()=<bound_method>
.isdigit()=<bound_method>
9971.islower()=<bound_method>
.isspace()=<bound_method>
.isupper()=<bound_method>
.join()=<bound_method>
.lower()=<bound_method>
.lstrip()=<bound_method>
.replace()=<bound_method>
.rfind()=<bound_method>
.rindex()=<bound_method>
.rsplit()=<bound_method>
9977.rstrip()=<bound_method>
.split()=<bound_method>
.startswith()=<bound_method>
.strip()=<bound_method>
.upper()=<bound_method>
Total: 22 item(s)
acos()=<function>
asin()=<function>
atan()=<function>
atan2()=<function>
ceil()=<function>
copysign()=<function>
cos()=<function>
degrees()=<function>
e=2.71828
exp()=<function>
fabs()=<function>
floor()=<function>
fmod()=<function>
frexp()=<function>
9984isfinite()=<function>
isinf()=<function>
isnan()=<function>
ldexp()=<function>
log()=<function>
modf()=<function>
9991pi=3.14159
pow()=<function>
radians()=<function>
sin()=<function>
sqrt()=<function>
tan()=<function>
trunc()=<function>
Total: 50 item(s)
50
>>>


Et bien comme tu vas le voir, ce n'est pas parce que deux calculatrices avec Python intègrent le module math qu'elles se valent. Voici ci-dessous la comparaison de ce que renvoient les différents modèles en lançant ce même script :
Casio
Graph 90+E
NumWorks
TI-Python
pour
TI-83 Premium CE
__name__='math'
acos()
acosh()
asin()
asinh()
atan()
atan2()
atanh()
ceil()
copysign()
cos()
cosh()
degrees()
e=2.718281828459045
erf()
erfc()
exp()
expm1()
fabs()
floor()
fmod()
frexp()
gamma()
isfinite()
isinf()
isnan()
ldexp()
lgamma()
log()
log10()
log2()
modf()
pi=3.141592653589793
pow()
radians()
sin()
sinh()
sqrt()
tan()
tanh()
trunc()
__name__='math'
acos()

asin()

atan()
atan2()

ceil()

cos()


e=2.718281828459045


exp()

fabs()
floor()
fmod()
frexp()




ldexp()

log()
log10()

modf()
pi=3.141592653589793
pow()

sin()

sqrt()
tan()

trunc()
__name__='math'
acos()

asin()

atan()
atan2()

ceil()
copysign()
cos()

degrees()
e=2.718281828459045


exp()

fabs()
floor()
fmod()
frexp()

isfinite()
isinf()
isnan()
ldexp()

log()


modf()
pi=3.141592653589793
pow()
radians()
sin()

sqrt()
tan()

trunc()
__name__='math'
acos()
acosh()
asin()
asinh()
atan()
atan2()
atanh()
ceil()
copysign()
cos()
cosh()
degrees()
e=2.718281828459045
erf()
erfc()
exp()
expm1()
fabs()
floor()
fmod()
frexp()
gamma()
isfinite()
isinf()
isnan()
ldexp()
lgamma()
log()
log10()
log2()
modf()
pi=3.141592653589793
pow()
radians()
sin()
sinh()
sqrt()
tan()
tanh()
trunc()
__name__='math'
acos()

asin()

atan()
atan2()

ceil()
copysign()
cos()

degrees()
e=2.71828


exp()

fabs()
floor()
fmod()
frexp()

isfinite()
isinf()
isnan()
ldexp()

log()


modf()
pi=3.14159
pow()
radians()
sin()

sqrt()
tan()

trunc()
Total: 67Total: 47Total: 50Total: 63Total: 50


D'où le classement suivant :
  1. TI-Nspire avec 67 entrées
  2. NumWorks avec 63 entrées
  3. Casio Graph 35+E/75+E et module TI-Python pour TI-83 Premium CE avec 50 entrées
  4. Casio Graph 90+E avec 47 entrées

Les implémentations les plus complètes du module math concernent à ce jour de loin les NumWorks et TI-Nspire.

Les implémentations Casio Graph 90+E, Casio Graph 35/75+E et TI-Python pour TI-83 Premium CE à la différence ne retiennent que ce qui a été jugé utile à un niveau lycée par le ou les développeurs, avec quelques variations d'un modèle à un autre.

Outre l'absence de diverses fonctions dont les fonctions hyperboliques et logarithmes en base 2 et 10, notons que le module TI-Python semble également travailler sur des flottants en simple précision (32-bits), vu le nombre ridicule de décimales affichées pour les constantes de ce module...
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 41.8%
 
Messages: 41468
Images: 14480
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: exploration module math + comparaisons

Message non lude Zezombye » 28 Nov 2018, 13:47

J'ai ajouté des #define (10 ko de plus :p) du coup j'ai voulu savoir combien j'avais d'entrées, mais le script s'arrête à 26 (en exécutant extmod("math")) :
Image

Je fais comment pour avoir toutes les entrées ?
Avatar de l’utilisateur
ZezombyePremium
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Prochain niv.: 47.7%
 
Messages: 85
Inscription: 30 Sep 2016, 15:14
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: Module TI-Python: exploration module math + comparaisons

Message non lude critor » 28 Nov 2018, 13:51

Sais pas, le script tel que communiqué marchait parfaitement avec la dernière version de ton portage.
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 41.8%
 
Messages: 41468
Images: 14480
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: exploration module math + comparaisons

Message non lude Zezombye » 28 Nov 2018, 17:41

J'ai mis la version 1.5 en ligne, normalement le module math devrait être autant rempli que la nspire/numworks.
Avatar de l’utilisateur
ZezombyePremium
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Prochain niv.: 47.7%
 
Messages: 85
Inscription: 30 Sep 2016, 15:14
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: Module TI-Python: exploration module math + comparaisons

Message non lude critor » 28 Nov 2018, 18:32

Merci.

Le script d'exploration de module ne marche apparemment plus avec le module math sur cette nouvelle version.
Il se tape une descente récursive infinie j'ai l'impression :
Image
Image

Je tente de réviser ça dès que possible.
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 41.8%
 
Messages: 41468
Images: 14480
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: exploration module math + comparaisons

Message non lude critor » 28 Nov 2018, 22:48

Version en cours de développement avec une protection corsée contre les descentes récursives infinies :
Code: Tout sélectionner
#platforms: (0)TI-Nspire (1)NumWorks (2)Graph 90+E (3)Graph 75+E (4)TI-Python
plines=[29,12,  7, 9,11]
pcols =[53,99,509,32,32]
try:
  import sys
  try:
    if sys.platform=='nspire': platform=0
    if sys.platform=='TI-Python Adapter': platform=4
    platform=0
  except: platform=3
except:
  try:
    import kandinsky
    platform=1
  except:
    platform=2

nlines=plines[platform]
ncols=pcols[platform]
curline=0

def mprint(*ls):
  global curline
  st=""
  for s in ls:
    if not(isinstance(s,str)):
      s=str(s)
    st=st+s
  stlines=1+int(len(st)/ncols)
  if curline+stlines>=nlines:
    input("Input to continue:")
    curline=0
  print(st)
  curline+=stlines

def sstr(obj):
  try:
    s=obj.__name__
  except:
    s=str(obj)
    a=s.find("'")
    b=s.rfind("'")
    if a>=0 and b!=a:
      s=s[s.find("'")+1:s.rfind("'")]
  return s

def explmod(pitm,pitmsl=[],reset=True):
  global curline
  if(reset):
    curline=0
    pitmsl=[sstr(pitm)]
  hd="."*(len(pitmsl)-1)
  spath=".".join(pitmsl)
  c=0
  for itms in sorted(dir(pitm)):
    c=c+1
    try:
      itm=eval(spath+"."+itms)
      mprint(hd+itms+"="+str(itm))
      if spath.rfind(itms)<0:
        pitmsl2=pitmsl.copy()
        pitmsl2.append(itms)
        c=c+explmod(itm,pitmsl2,False)
    except:
      mprint(hd+itms)
  if c>0:
    mprint(hd+"Total: "+str(c)+" item(s)")
  return c


Malheureusement, sur le Python Graph 35/75+E ça plante violemment :
ImageImage
ImageImage
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 41.8%
 
Messages: 41468
Images: 14480
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: exploration module math + comparaisons

Message non lude critor » 28 Nov 2018, 23:39

Je suis revenu à la version précédente de l'add-in.
Le script ne plante plus.
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 41.8%
 
Messages: 41468
Images: 14480
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: exploration module math + comparaisons

Message non lude parisse » 29 Nov 2018, 08:48

Je viens de mettre a jour KhiCAS pour Casio Graph 90+e en ajoutant lgamma, copysign qui n'etaient pas implementes. En principe, tout y est, sans avoir besoin de faire from math import * sauf pour quelques synonymes (log2(x):=logb(x,2):;gamma:=Gamma:;fabs:=abs:;function modf(x) local y; y:=floor(x); return x-y,y; ffunction:;radians(x):=x/180*pi:;degrees(x):=x/pi*180)
Avatar de l’utilisateur
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 77.2%
 
Messages: 3500
Inscription: 13 Déc 2013, 16:35
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: Module TI-Python: exploration module math + comparaisons

Message non lude parisse » 29 Nov 2018, 09:15

P.S. @ critor: ce serait sympa de mentionner KhiCAS dans le 1er message, il me semble qu'il y a autant sa place que les implementations non officielles pour TI nspire ou Casio graph monochrome.
Avatar de l’utilisateur
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 77.2%
 
Messages: 3500
Inscription: 13 Déc 2013, 16:35
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: Module TI-Python: exploration module math + comparaisons

Message non lude critor » 22 Déc 2018, 00:05

La nouvelle version 1.5 bêta de CasioPython pour Graph 35/75+E a vu son module math étendu :
Image

Egalité avec le MicroPython TI-Nspire désormais ! :bj:
  1. Casio Graph 35+E/75+E et TI-Nspire avec 67 entrées
  2. NumWorks avec 63 entrées
  3. module TI-Python pour TI-83 Premium CE avec 50 entrées
  4. Casio Graph 90+E avec 47 entrées

Téléchargement : archives_voir.php?id=1824811
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 41.8%
 
Messages: 41468
Images: 14480
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor


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 59 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.
1127 utilisateurs:
>1106 invités
>16 membres
>5 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)