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

Unread postby 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: Select all
#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 wrote: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: 67
Total: 47
Total: 50
Total: 63
Total: 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
User avatar
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Level up: 95.7%
 
Posts: 32926
Images: 8642
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

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

Unread postby 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 ?
User avatar
ZezombyePremium
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Level up: 45.3%
 
Posts: 85
Joined: 30 Sep 2016, 15:14
Gender: Not specified

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

Unread postby critor » 28 Nov 2018, 13:51

Sais pas, le script tel que communiqué marchait parfaitement avec la dernière version de ton portage.
Image
User avatar
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Level up: 95.7%
 
Posts: 32926
Images: 8642
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

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

Unread postby 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.
User avatar
ZezombyePremium
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Level up: 45.3%
 
Posts: 85
Joined: 30 Sep 2016, 15:14
Gender: Not specified

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

Unread postby 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
User avatar
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Level up: 95.7%
 
Posts: 32926
Images: 8642
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

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

Unread postby critor » 28 Nov 2018, 22:48

Version en cours de développement avec une protection corsée contre les descentes récursives infinies :
Code: Select all
#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
User avatar
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Level up: 95.7%
 
Posts: 32926
Images: 8642
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

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

Unread postby critor » 28 Nov 2018, 23:39

Je suis revenu à la version précédente de l'add-in.
Le script ne plante plus.
Image
User avatar
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Level up: 95.7%
 
Posts: 32926
Images: 8642
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

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

Unread postby 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)
User avatar
parisseVIP++
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 70.4%
 
Posts: 1709
Joined: 13 Dec 2013, 16:35
Gender: Not specified

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

Unread postby 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.
User avatar
parisseVIP++
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 70.4%
 
Posts: 1709
Joined: 13 Dec 2013, 16:35
Gender: Not specified

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

Unread postby critor » 22 Dec 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
User avatar
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Level up: 95.7%
 
Posts: 32926
Images: 8642
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti


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

Who is online

Users browsing this forum: No registered users and 5 guests

-
Search
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
1
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...

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 
-
Stats.
541 utilisateurs:
>526 invités
>10 membres
>5 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)