TIP #299: ADD ISQRT() MATH FUNCTION ===================================== Version: $Revision: 1.3 $ Author: Kevin B. Kenny State: Final Type: Project Tcl-Version: 8.5 Vote: Done Created: Friday, 24 November 2006 URL: https://tip.tcl-lang.org299.html Post-History: ------------------------------------------------------------------------- ABSTRACT ========== This TIP proposes a new *expr* math function *isqrt()*. BACKGROUND ============ With the advent of large integers, Tcl supports taking the square roots of arguments that lie outside the native floating-point range of the machine. The square roots are returned as floating point numbers if possible. This behaviour is correct when floating-point calculations are intended. There are times, however, when an arbitrary-precision square root is wanted. This root cannot be obtained by evaluating /entier(sqrt($n))/, because /sqrt($n)/ has already lost precision. PROPOSED CHANGE ================= This TIP proposes adding a new math function, /isqrt($n)/, that will return the integer part of the square root of /$n/ to arbitrary precision. The argument /$n/ must be numeric and non-negative; it may be either integer or floating-point. REFERENCE IMPLEMENTATION ========================== Tcl Feature Request #1602534 contains a complete reference implementation for the /isqrt/ function. COPYRIGHT =========== This document has been placed in the public domain. ------------------------------------------------------------------------- TIP AutoGenerator - written by Donal K. Fellows