Survey of Square Rooting Algorithms