1

Je travail sur les nombres premiers en ASM et je voudrai savoir qi qqn connaitrai un algo en ASM permétant de calculer (rapidement wink) la partie entière de la racine carré d'un entier. Merci pour votre aide smile

2

fo ke je retrouve ca.... g 2 suites convergentes vers la racines d'un nombre n fo ke je retrouve ds mes papiers

3

Quelqu'un sur ce forum même avait proposé un algo très rapide il y a un moment.
Il s'appelait Thibaut je crois wink
post.php?id=5,1889

Joyeux Noël grin
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

4

bah, vu que les carrés entiers montent très vite, tu fais une boucle qui va de 0 à racine(65535) et tu testes et t'arrète quand t'es trop loin, et tu retires 1
:D

5

Ma petite fonction ASM emploie un algo plus efficace doom
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

6

merci! je vais voir ça smile

7

ah, quel algo ?
:D

8

Un algo que je croyais avoir inventé à l'époque où j'ai posté ce code sur le forum... Pollux m'a appris qu'en fait il est connu (voilà pourquoi je dit avoir réinventer la roue, si tu n'as pas trop compris le topic dont la moitié des posts ont disparus lors du transfert). Il effectue une recherche par "dichotomie".
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

9

ah, jamais j'aurais pensé que ça se faisait aussi pour l'extraction de racine
:D

10

G regarder l'algo et je l'ai traduit en C pour le rendre plus lisible ça donne ça :
// C Source File
// Created 27/12/01; 11:36:30

#define USE_TI89              // Produce .89z File
#define RETURN_VALUE          // Return Pushed Expression
#include <tigcclib.h>         // Include All Header Files

unsigned long Esqrt(unsigned long n){
	unsigned long d1, d2, d3, d4;
  if (n == 0)
  	return 0;
  if (n >= 65536){
  	d1 = 0x00010000;
  	d4 = 256;
  } else {
  	d1 = 1;
  	d4 = 1;
  }
  do{
    d4*= 2;
    d1*= 4;
  } while (d1 <= n);
  
  d3 = d4/2;
  d1 = 0;
  do{
    d2 = d1;
    d1 = (d3 + d4)/2;
    if (d1*d1 <= n){
      d3 = d1;
    } else {
      d4 = d1;
    }
  } while(d1 != d2);
  return d1;
}

// Main Function
void _main(void)
{
  ESI argptr;
  InitArgPtr(argptr);
  if( (ArgCount() != 1) || (GetArgType(argptr) != POSINT_TAG) ){
  	ST_showHelp(strerror(8)); //invalid argument
  } else {
    push_longint(Esqrt(GetIntArg(argptr))); //on appelle la fonction 
  } //avec l'argument passé par l'utilisateur
}

A prioris ça marche, Ai-je était fidèle à ta vision des choses Thibaut? Si c le cas c cool g compris! grin

11

J'ai la flemme de regarder dans le détail.
Mais je te conseille fortement de garder la version ASM, que tu compileras séparément de ton projet C avec A68k, TIGCC te permet de le faire facilement.
Le gain de vitesse sera flagrant !

Si la lenteur ne te gêne pas et donc que tu souhaites l'implémenter en C, alors vérifie que ton interprétation ne contient pas d'erreur en compararant ici : http://alineasofts.free.fr/extern/alizee.htm
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

12

thibaut > t'as pas mal aux yeux avec cette couleur bleue grin
En préretraitre

13

>Thibaut: Mais je te conseille fortement de garder la version ASM, que tu compileras séparément de ton projet C avec A68k, TIGCC te permet de le faire facilement.

attention
1. Utilise absolument la dernière version de TIGCC sortie avant-hier: http://tigcc.ticalc.org/beta/tigcc.zip
2. Commence absolument ton fichier A68k par:
section ".data"
3. N'oublie pas de mettre le prototype de ta fonction quelque part au début de ton fichier .c (ou d'un fichier .h que tu inclus dans ton fichier .c).
[edit]Edité par Kevin Kofler le 27-12-2001 à 13:10:01[/edit]
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

14

Merci Kevin j'avais le flemme de lui expliquer comment faire zzz

Ha, tu as juste oublié de lui dire d'ajouter xdef SquareThib dans le *.asm wink
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

15


gugusg : ??
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

16

Le lien du message n°3 comporte le numéro du skin, et s'affiche donc avec ton skin.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

17

Ha je savais pas que les skins était inclus dans les URL smile

Mais si je m'en crée un personnel, vous ne l'aurez pas, si ?
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

18

Non.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

19

tant que t'y est t'as qu'a creer une skin alizee et la soumettre à yaro grin
En préretraitre

20

Heyyyy !!!
pas con !!!!!!!!!! eekeekeekeek

ALLIIIZZZZEEEEE POOOOOOWWWWWWWWWEEEEEEEEERRR
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

21

j'etait sur que t'y avais pas pense grin
En préretraitre

22

He non faut être intelligent pour ça sad
Alizée RRuuullleeez love
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

23

meuh non
mais quand on est absorbé par autre chose, on y pense pas grin
En préretraitre

24

Je l'ai traduit en C pour comprendre ce qui se passait car l'ASM n'est qd mm pas très lisible. Mais dans mon programme (qui est en ASM) g evidament inclu la fonction ASM originale. Pour ce qui est de l'inclusion de fonctions ASM dans un programme C, Kevin Kofler m'avait déjà expliquer comment faire il y a quelque temps (bien que cela n'était pas 100% au point a cause du point de départ qui etait donner au fichier ASM d'où un jmp skip en première instruction). Sinon G vu ton algo sur ton site, le miens est juste : ils sont identiques (mais le mien est pas optimisé avec les >> pour des questions de lisibilité). Donc merci a tous pour votre aide!
loverotfllove

25

>Pour ce qui est de l'inclusion de fonctions ASM dans un programme C, Kevin Kofler m'avait déjà expliquer comment faire il y a quelque temps (bien que cela n'était pas 100% au point a cause du point de départ qui etait donner au fichier ASM d'où un jmp skip en première instruction).

Oui, mais avec la version qui date d'hier (de la nuit d'avant-hier à hier), il n'y a plus ça. (En fait ça fait quelques semaines qu'il n'y a plus ça, mais il y avait d'autres bogues à la place.) Il suffit de commencer ton fichier A68k par:
section ".data"
et il sera linké après les sources en C.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

26


J'ai retrouvé l'algorithme TRES intéressant de Paxal : http://tiforum.ovh.org/forum/Forum4/HTML/000630.html
[edit]Edité par Thibaut le 12-01-2002 à 22:29:10[/edit]
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

27

NAAAAAAAAAAAAAAAAAAAAAAAANNNNNNNNNN il a laissé l'ancien forum dans un coin?? trop bien ca!!!!!!!
avatar
Il n'a pas de mots
Décrire son mépris
Perdre les rênes
Il a perdu la foi

28

apparement, c la que je me dis que vive le nouveau forum !
:D

29

U0 = a / 4
Un = (Un-1 + (a / Un-1)) / 2

babylon rulezzzzzzzzzzzzzzzzzZ smile
"I read the game.dll assembly more easily than you read the joke on the back of your box of Cocoa Pebbles, and have spent the past 2 1/2 years navigating it." ©

30

pour la technique de Paxal, elle part du principe que la différence des carrés de nbr consécutifs est de la forme 2p+1 mais aussi plus simplement...grin
ex:
2²-1²=3=2+1
3²-2²=5=3+2
....
on a ainsi pour 2 nbrs consécutifs a et b (b = a+1):
b²-a²=b+a puisque b²-a²=(b-a)(b+a)
et donc (b-a)(b+a) = b+a ce qui fait bien b-a=1 -> b=a+1
on peut en déduire un algo :
c'est pas tres dur mais je ne vais pas non plus tt faire