MPO n° 97 Spécial 10e Anniversaire : Précision arithmétique

Ici, on fait dans le petit, le LCD qui déchire sa race, on y cause même calculatrices quand on est en manque !

Modérateur : Politburo

Répondre
Avatar du membre
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3419
Enregistré le : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: MPO 97 Spécial 10e Anniversaire : Précision arithmétique

Message par C.Ret »

Une autre version pour HP-41C qu'il faudra certainement améliorée encore :

Code : Tout sélectionner

001 LBL "MPO97                                                oooo ooooo
002   1  LOG  LASTX  ST- Y                                    o o o oo 
006   LBL 00                                                  o  
007     ST+ Y  LASTX  ENTER^  +  +  LASTX  -  X>0?  GTO 00    oo o o o o o o o oo
016   2  LOG  R^  ST* Y                                       o o o oo
020 END                                                       ooo
                                                    Total: 34 octets (soit 22 sans les 12 pour LBL et END globaux)
XEQ [alpha]MPO97[alpha] affiche 33.0000 puis une pression sur [x<>y] indique 9.93399 chiffres significatif. C'est à peine mieux qu'un Commodore alors ?
Modifié en dernier par C.Ret le 25 oct. 2020 07:35, modifié 1 fois.
SHARP PC-1211 PC-1360 EL-5150 PC-E500 | Commodore C=128D | Texas Instruments Ti-57LCD Ti-74BASICalc Ti-92II Ti-58c Ti-95PROCalc Ti-30XPROMathPrint | Hewlett-Packard HP-28S HP-41C HP-15C HP-Prime HP-71B | CASIO fx-602p | NUMWORKS | Graphoplex Rietz Neperlog | PockEmul | Sommaire des M.P.O. | Ma...dov'il sapone.
Avatar du membre
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3419
Enregistré le : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: MPO 97 Spécial 10e Anniversaire : Précision arithmétique

Message par C.Ret »

tyann a écrit : 17 oct. 2020 18:46 Bonsoir

Voici une version pour Ti 95 :

Code : Tout sélectionner

000 1 STO X +/- STOJ 
006 LBL 00 INC J 2 ST* X RCL X +1= IF> X GTL 00
024 COL 03 MRG J 2 LOG ST* J OLD COL 15 MRG J HLT
038
RUN
43. 12.94428981
Tiens, je suis surpris, je pensais naïvement retrouver sur TI 95 les performances des Ti-74 et Ti-92 en mode approchée.
En fait, non je suis bête, c'est avec les TI-58/Ti-58C/Ti-59 qu'il faut comparer.

Tiens, je n'ai pas fini mon programme sur TI-57 LCD, je m'y colle.

EDIT : Pour TI-57 LCD :

Code : Tout sélectionner

 --       St                     23.00    04          LBL 00     02       16           2
 01       00           1         02       05           2         31       17         log
 61.01    01          STO 1      61.65.01 06          STOx1      65       18          *
 94       02          +/-        71.01    07          RCL 1      71.00    19         RCL 0
 61.00    03          STO 0      51       08          x:t        13       20         R/S
                                 01       09           1         94       21          =
                                 61.85.00 10          STO+0      13       22         R/S
                                 85       11           +
                                 71.01    12          RCL 1
                                 95       13           =
                                -26       14  2nd inv x≠t ?
                                 22.09    15          GTO 00                             (22 pas)
RST R/S affiche après avoir brièvement afficher toute une série de nombres impairs croissants parfois premiers le record de 26 puis R/S donne 7.82677

Finalement, j'aime bien la précision de mon Commodore !!
Il doit y avoir un bugg dans mon code :( ou alors une TI-57 LCD c'est pas vraiment une TI-57 :( :(
Modifié en dernier par C.Ret le 25 oct. 2020 07:37, modifié 2 fois.
SHARP PC-1211 PC-1360 EL-5150 PC-E500 | Commodore C=128D | Texas Instruments Ti-57LCD Ti-74BASICalc Ti-92II Ti-58c Ti-95PROCalc Ti-30XPROMathPrint | Hewlett-Packard HP-28S HP-41C HP-15C HP-Prime HP-71B | CASIO fx-602p | NUMWORKS | Graphoplex Rietz Neperlog | PockEmul | Sommaire des M.P.O. | Ma...dov'il sapone.
Avatar du membre
Marge
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 6186
Enregistré le : 01 oct. 2008 14:39
Localisation : En bas, tout au fond à gauche.

Re: MPO 96 Spécial 10e Anniversaire : Précision arithmétique

Message par Marge »

Gilles59 a écrit : 17 oct. 2020 15:37
Marge a écrit : 17 oct. 2020 15:19
Gilles59 a écrit : 17 oct. 2020 14:22
Marge a écrit : 16 oct. 2020 02:05 Bon, pour montrer l'exemple, voici mon premier programme pour Turbo Pascal 5.5 sur le HP 200-LX. On ne rit pas !
Cool le TP5.5. De mémoire il a les surcouches objet etc! Il a combien de ram le 500lx?
Je me demande si la 5.5 ne gérerait pas les réels double précision (remplacer ‘Real ´ par ´double ‘)
Je suis complètement novice en pascal, mais en effet la 5.5 gère la double-précision (voir mon deuxième programme, ou plutôt ma dernière tambouille).
En revanche je ne sais pas mesurer le code 8086 compilé en mémoire vive, si tu as une idée...
Le 200LX possède 2 méga-octets de mémoire vive.
Tu peux compiler en .com ou .exe et voir la taille sur disque. Mais pas d’illusion ce sera un bonne dizaine de ko minimum puisque le programme doit embarquer les bibliothèques de calcul et autres (pas de rom).
Ah oui, en effet... pour le programme en mode étendu, j'obtiens un exécutable de... 15 008 octets. C'est un peu long pour un MPO ! Cela dit, mon programme est largement améliorable, je songe à Miskatonic pour ce faire. :)
3 hommes, 3 demis, un 3a... Magnéto, Serge !

Quelques-uns de mes petits programmes pour machines Hewlett-Packard :
15C : Knight's Tour ;
29C : (k-)Permutations, Combinations, Linear Regression and Pseudo-random number ;
34C : Hanoi Towers - Automatic & Manual resolutions ;
67
__: A L I E N .

« Boris », c'était juste Maurice enrhumé.
Avatar du membre
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3419
Enregistré le : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: MPO n° 97 Spécial 10e Anniversaire : Précision arithmétique

Message par C.Ret »

Bon, je change d'algorithme, c'est plus rapide et plus court comme cela sur mon SHARP PC-1360 :

Code : Tout sélectionner

1:FOR J=30 TO 50: IF 2^J+1=2^J PRINT J-1,J* LOG 2- LOG 2
2:NEXT J
(40 octets)
Je trouve alors en moins de " que la précision de mon PC-1360 est de 33 soit 9.93398 chiffres significatifs.
Modifié en dernier par C.Ret le 25 oct. 2020 07:38, modifié 1 fois.
SHARP PC-1211 PC-1360 EL-5150 PC-E500 | Commodore C=128D | Texas Instruments Ti-57LCD Ti-74BASICalc Ti-92II Ti-58c Ti-95PROCalc Ti-30XPROMathPrint | Hewlett-Packard HP-28S HP-41C HP-15C HP-Prime HP-71B | CASIO fx-602p | NUMWORKS | Graphoplex Rietz Neperlog | PockEmul | Sommaire des M.P.O. | Ma...dov'il sapone.
Avatar du membre
Marge
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 6186
Enregistré le : 01 oct. 2008 14:39
Localisation : En bas, tout au fond à gauche.

Re: MPO n° 97 Spécial 10e Anniversaire : Précision arithmétique

Message par Marge »

HP-19/29C
-------------
33 9.93399
-------------
1
LBL 1
2
*
ENTER
ENTER
1
+
x=y?
GTO 2
ISZ
x<->y
GTO 1
LBL 2
RCL 0
Pause
2
log
*
RTN
-------------
20 octets avec le RTN final
3 hommes, 3 demis, un 3a... Magnéto, Serge !

Quelques-uns de mes petits programmes pour machines Hewlett-Packard :
15C : Knight's Tour ;
29C : (k-)Permutations, Combinations, Linear Regression and Pseudo-random number ;
34C : Hanoi Towers - Automatic & Manual resolutions ;
67
__: A L I E N .

« Boris », c'était juste Maurice enrhumé.
Avatar du membre
Danny
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1248
Enregistré le : 28 déc. 2013 16:34

Re: MPO 97 Spécial 10e Anniversaire : Précision arithmétique

Message par Danny »

Hobiecat a écrit : 17 oct. 2020 18:34 Sur HP-41, en version pas très optimisée. :wink:

Code : Tout sélectionner

LBL PREC
0
STO 00
1
LBL 00
2
*
ENTER
ENTER
1
+
X=Y?
GTO 01
1
ST+ 00
RDN
RDN
GTO 00
LBL 01
RCL 00
2
LOG
*
RCL 00
RTN
Le résultat : 33 - 9.933989858
J'ai une version plus courte... de 1 pas :mrgreen:

Code : Tout sélectionner

LBL PRECIS
1
STO 01
0
STO 02
LBL 01
2
ST* 01
RCL 01
RCL 01
1
+
X=Y?
GTO 02
1
ST+ 02
GTO 01
LBL 02
RCL 02
RCL 02
2
LOG
*
RTN
Et pour HP-33 (même résultat que sur HP-65 et HP-41) :

Code : Tout sélectionner

1
STO 01
0
STO 02
2
ST* 01
RCL 01
RCL 01
1
+
X=Y?
GTO 16
1
ST+ 02
GTO 06
RCL 02
RCL 02
2
LOG
*
edit: ah, Marge nous a battus avec un beau ISZ dans son code 8) ... par contre il faut qu'il initialise le registre 0 avant pour que ça fonctionne, donc c'est un peu triché :P
? Apple, Atari, Canon, Casio, ????????????, HP, Psion, Sharp, Tandy... même TI.
Avatar du membre
Marge
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 6186
Enregistré le : 01 oct. 2008 14:39
Localisation : En bas, tout au fond à gauche.

Re: MPO 97 Spécial 10e Anniversaire : Précision arithmétique

Message par Marge »

Danny a écrit : 17 oct. 2020 20:42
edit: ah, Marge nous a battus avec un beau ISZ dans son code 8) ... par contre il faut qu'il initialise le registre 0 avant pour que ça fonctionne, donc c'est un peu triché :P
Oui, j'ai légèrement triché, mais disons que si j'ajoute un LBL 0, un 0 Sto 0, ça nous fait trois pas de plus donc 23 octets sans registre, sauf R0. Bon, allez, 30 octets si je le compte. Mais je vous mets dans le vent quand même ! :P
3 hommes, 3 demis, un 3a... Magnéto, Serge !

Quelques-uns de mes petits programmes pour machines Hewlett-Packard :
15C : Knight's Tour ;
29C : (k-)Permutations, Combinations, Linear Regression and Pseudo-random number ;
34C : Hanoi Towers - Automatic & Manual resolutions ;
67
__: A L I E N .

« Boris », c'était juste Maurice enrhumé.
Avatar du membre
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3419
Enregistré le : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: MPO 97 Spécial 10e Anniversaire : Précision arithmétique

Message par C.Ret »

Danny a écrit : 17 oct. 2020 20:42 edit: ah, Marge nous a battus avec un beau ISZ dans son code 8) ... par contre il faut qu'il initialise le registre 0 avant pour que ça fonctionne, donc c'est un peu triché :P
Battaus, battus, c'est vite dit. J'ai 19 pas de programme avec le CLREG et le RTN final. Alors, je crois que c'est plus court que ce qu'à publié Maitre Marge.

Code : Tout sélectionner

   01  CLRG    16 23         11  ST+0 45 41 00
   02    1        01         12  X>0?    25 41
   03   ABS    25 54         13  GTO0    14 00
   04 *LBL0 25 14 00         14    2        02
   05    2        02         15   LOG    16 33
   06  LSTX    16 63         16  RCL0    55 00
   07    x        51         17   PSE    16 64
   08    +        41         18    x        51
   09  LSTX    16 63         19   RTN    25 13
   10    -        31
Et je trouve bien 33 et 9.9340 sur l'émulateur que j'utilise.
Modifié en dernier par C.Ret le 17 oct. 2020 23:13, modifié 3 fois.
SHARP PC-1211 PC-1360 EL-5150 PC-E500 | Commodore C=128D | Texas Instruments Ti-57LCD Ti-74BASICalc Ti-92II Ti-58c Ti-95PROCalc Ti-30XPROMathPrint | Hewlett-Packard HP-28S HP-41C HP-15C HP-Prime HP-71B | CASIO fx-602p | NUMWORKS | Graphoplex Rietz Neperlog | PockEmul | Sommaire des M.P.O. | Ma...dov'il sapone.
Avatar du membre
Marge
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 6186
Enregistré le : 01 oct. 2008 14:39
Localisation : En bas, tout au fond à gauche.

Re: MPO n° 97 Spécial 10e Anniversaire : Précision arithmétique

Message par Marge »

HP-41C....
-------------
33 9.93499
-------------
LBL 'PA'
CLX
ENTER
1
LBL 1
2
*
ENTER
ENTER
1
+
x=y?
GTO 2
Last x
STO + t
Rd
Rd
GTO 1
LBL 2
RCL.Z
PSE
2
LOG
*
RTN
-------------

Un CATALOG 1 donne 37 octets. Je compte 26 pas. Il y a à coup sûr le STO + qui compte pour deux, et les lettres du label ne sont pas innocentes non plus.
3 hommes, 3 demis, un 3a... Magnéto, Serge !

Quelques-uns de mes petits programmes pour machines Hewlett-Packard :
15C : Knight's Tour ;
29C : (k-)Permutations, Combinations, Linear Regression and Pseudo-random number ;
34C : Hanoi Towers - Automatic & Manual resolutions ;
67
__: A L I E N .

« Boris », c'était juste Maurice enrhumé.
Avatar du membre
Marge
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 6186
Enregistré le : 01 oct. 2008 14:39
Localisation : En bas, tout au fond à gauche.

Re: MPO 97 Spécial 10e Anniversaire : Précision arithmétique

Message par Marge »

C.Ret a écrit : 17 oct. 2020 23:01
Danny a écrit : 17 oct. 2020 20:42 edit: ah, Marge nous a battus avec un beau ISZ dans son code 8) ... par contre il faut qu'il initialise le registre 0 avant pour que ça fonctionne, donc c'est un peu triché :P
Battaus, battus, c'est vite dit. J'ai 19 pas de programme avec le CLREG et le RTN final. Alors, je crois que c'est plus court que ce qu'à publié Maitre Marge.

Code : Tout sélectionner

   06  LSTX    16 63
   07    x        51
   08    +        41
   09  LSTX    16 63
   10    -        31
   11  ST+0 45 41 00
   12  X>0?    25 41
   13  GTO0    14 00
   14    2        02
   15   LOG    16 33
   16  RCL0    55 00
   17   PSE    16 64
   18    x        51
   19   RTN    25 13
Et je trouve bien 33 et 9.9340 sur l'émulateur que j'utilise.
Ton STO + compte pour deux pas (enfin, peut-être pas). Ex-aequo ? Mais il manque 5 pas au début.
3 hommes, 3 demis, un 3a... Magnéto, Serge !

Quelques-uns de mes petits programmes pour machines Hewlett-Packard :
15C : Knight's Tour ;
29C : (k-)Permutations, Combinations, Linear Regression and Pseudo-random number ;
34C : Hanoi Towers - Automatic & Manual resolutions ;
67
__: A L I E N .

« Boris », c'était juste Maurice enrhumé.
Avatar du membre
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3419
Enregistré le : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: MPO n° 97 Spécial 10e Anniversaire : Précision arithmétique

Message par C.Ret »

Désolé, j'ai eut un mal fout à copier-coller le code entre l'émulateur et la page du forum. Je ne sais pas où est le bugg, mais plusieurs programmes se sont mélangés dans le Notepad. J'ai dû tout refaire. j'en ai profité pour mettre sur deux colonnes

Ah! Bon il y a des instructions qui prennent deux octets sur HP-19C ?? Me souviens plus. Je vais devoir vérifier.
De toute façon , égalité avec le CLREG dans le programme, c'est comme si j'avais gagné.
Modifié en dernier par C.Ret le 25 oct. 2020 07:39, modifié 2 fois.
SHARP PC-1211 PC-1360 EL-5150 PC-E500 | Commodore C=128D | Texas Instruments Ti-57LCD Ti-74BASICalc Ti-92II Ti-58c Ti-95PROCalc Ti-30XPROMathPrint | Hewlett-Packard HP-28S HP-41C HP-15C HP-Prime HP-71B | CASIO fx-602p | NUMWORKS | Graphoplex Rietz Neperlog | PockEmul | Sommaire des M.P.O. | Ma...dov'il sapone.
Avatar du membre
Danny
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1248
Enregistré le : 28 déc. 2013 16:34

Re: MPO n° 97 Spécial 10e Anniversaire : Précision arithmétique

Message par Danny »

Marge a écrit : 17 oct. 2020 23:03 HP-41C....
-------------
33 9.93499
-------------
LBL 'PA'
CLX
ENTER
1
LBL 1
2
*
ENTER
ENTER
1
+
x=y?
GTO 2
Last x
STO + t
Rd
Rd
GTO 1
LBL 2
RCL.Z
PSE
2
LOG
*
RTN
-------------

Un CATALOG 1 donne 37 octets. Je compte 26 pas. Il y a à coup sûr le STO + qui compte pour deux, et les lettres du label ne sont pas innocentes non plus.
Le mien a 1 pas de moins et 36 octets au CATALOG 1 :P :)
J'ai pas mis de PSE, mais on peut utiliser X<>Y à la fin pour voir les 2 valeurs.

Une p'tite version pour Casio, aussi :

Code : Tout sélectionner

Mcl
1 -> X
Lbl 1
2X -> X
X+1 = X => Goto 2
Isz J
Goto 1
Lbl 2
J (disp)
J log 2
IMG_8059.jpg
IMG_8059.jpg (85.85 Kio) Vu 5608 fois
? Apple, Atari, Canon, Casio, ????????????, HP, Psion, Sharp, Tandy... même TI.
Avatar du membre
Marge
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 6186
Enregistré le : 01 oct. 2008 14:39
Localisation : En bas, tout au fond à gauche.

Re: MPO n° 97 Spécial 10e Anniversaire : Précision arithmétique

Message par Marge »

@Danny
Il est d'usage de compter les registres hors-pile dans les octets (7 octets par registre), zpalm était un spécialiste de ce genre de ruse et le seul à tenir tête à C.Ret dans ces Mpo, pour être franc.
Bravo, tout de même !

[EDIT: d'ailleurs mon programme HP-41 commence stupidement car il suffit de placer un Clear Registres à la place du CLX ENTER pour gagner un pas. :wink: ]
Modifié en dernier par Marge le 18 oct. 2020 11:47, modifié 1 fois.
3 hommes, 3 demis, un 3a... Magnéto, Serge !

Quelques-uns de mes petits programmes pour machines Hewlett-Packard :
15C : Knight's Tour ;
29C : (k-)Permutations, Combinations, Linear Regression and Pseudo-random number ;
34C : Hanoi Towers - Automatic & Manual resolutions ;
67
__: A L I E N .

« Boris », c'était juste Maurice enrhumé.
Avatar du membre
fred260571
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 363
Enregistré le : 19 avr. 2016 13:10
Localisation : Toulouse

Re: MPO 96 Spécial 10e Anniversaire : Précision arithmétique

Message par fred260571 »

bernouilli92 a écrit : 17 oct. 2020 08:22 Hp48 :

Code : Tout sélectionner

« -1 1
  DO 
    2 * SWAP 1 + SWAP
  UNTIL 
    DUP DUP 1 + ==
  END 
  DROP DUP 2 LOG *
»
Taille : 62,5 octets

Résultat : 39 - 11,74017
Bonjour
J'ai dépoussiéré "Les secrets de la HP48G/GX Tome 1 6000 Bonnes adresses" J.-M. Ferrard
page 39
Pour accroitre la précision des calculs mathématiques intermédiaires et assurer ainsi la précision du résultat final, la HP48 utilise les "réels longs"
[...]
emploi [du] BCD
[...]
La mantisse est codée sur 15 quartets (c-à-d 15 chiffres).
Par contre page 35
le codage des réels : 12 quartets ( 12 chiffres ) pour la mantisse

Avec beaucoup d'huile de coude :mrgreen: :mrgreen: :mrgreen: il semble possible d'arriver à un meilleur résultat que 11,7417
ignorance is bliss
TI 57 II, TI 66, casio fx7500g, HP48GX, HP49G+, HP200LX, palm m125, Sharp PC-G850VS, HP12C
Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1602
Enregistré le : 27 oct. 2010 20:46

Re: MPO n° 97 Spécial 10e Anniversaire : Précision arithmétique

Message par Gilles59 »

Bon je vois que le newRPL sur HP50g écrase la concurrence pour ce qui est de la précision :mrgreen: j’ai hâte que les fonctions graphiques soient intégrées. Et le portage sur d’autres plateformes va donner des perfs encore plus étonnantes.
Casio FX-502P /602P / 603P / FX180P+ / FX4000P / TI57 / TI66 / TI74 Basicalc / TI95 Procalc / HP12C / HP15C LE / DM41L / HP 30B / HP39GII / HP 48SX USA / 49G / 49g+ / 50G / 50G NewRPL / HP Prime / Oric 1 / Amstrad CPC 6128+ CM14 et MM12 / Alice 32
Répondre

Retourner vers « Tous les Pockets »