#include "libft.h" /* * return the square root of nb * Newton–Raphson method : https://en.wikipedia.org/wiki/Newton%27s_method#Use_of_Newton's_method_to_compute_square_roots */ double ft_sqrt(double x) { double precision; if (x < 0) return -1; // handle negative numbers if (x == 0) return 0; precision = 0.00001; // Newton-Raphson double guess = x; double prev_guess; do { prev_guess = guess; guess = (guess + x / guess) / 2.0; } while (prev_guess - guess > precision); return guess; // // binary search // double low = 0 // double high = x; // double mid; // while (high - low > precision) // { // mid = (low + high) / 2.0; // if (mid * mid < x) // low = mid; // else // high = mid; // } // return (low + high) / 2.0; }