Je suis à la recherche d'un algorithme pour le calcul de la racine carrée et trouvé ce fichier source. Je voudrais essayer de le reproduire car il semble assez simple mais je ne peux pas le relier à un algorithme connu (Newton, Babylone ...). Pouvez-vous me dire le nom?Code source racine carrée trouvé sur le réseau
int sqrt(int num) {
int op = num;
int res = 0;
int one = 1 << 30; // The second-to-top bit is set: 1L<<30 for long
// "one" starts at the highest power of four <= the argument.
while (one > op)
one >>= 2;
while (one != 0) {
if (op >= res + one) {
op -= res + one;
res += 2 * one;
}
res >>= 1;
one >>= 2;
}
return res;
}
Il est décrit dans [Wikipedia sous "calcul chiffres-toDigit"] (https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Digit-by-digit_calculation) –
« Pouvez-vous me dire le nom? " Je l'appellerais "cassé" en tant que 'sqrt (1073741824)' -> -1 plutôt que prévu 32768. – chux
"trouvé ce fichier source" -> Où? – chux