[Rd] hypot(x,y) instead of pythag(a,b) ?!

Martin Maechler Martin Maechler <maechler@stat.math.ethz.ch>
Mon, 22 May 2000 17:03:18 +0200 (CEST)

>>>>> "MM" == Martin Maechler <maechler@stat.math.ethz.ch> writes:

    MM> Some of you may have seen the pythag() part in the R API definition
    MM> in "Writing R Extensions" (source = doc/manual/R-exts.texinfo).

    MM> or followed the report and Prof. Brian Ripley's answer about
    MM> pythag()'s availability from R's binary.

    MM> As we say in above manual

     >>> `pythag(A, B)' computes `sqrt(A^2 + B^2)' without overflow or
     >>> destructive underflow: for example it still works when both A and B
     >>> are between `1e200' and `1e300' (in IEEE double precision).

    MM> -- "Problem" is : The GNU C library (and other C libraries ??)
    MM> defines a function double hypot(double x, double y)

    MM> with identical semantics to our pythag() from above The Info
    MM> (e.g. in Linux Emacs C-h i "m libc") about "Libc" contains (in the
    MM> section "Exponentiation and Logarithms"):


I forgot to mention  that  src/appl/eigen.f  (stemming from EISPACK)
defines (and uses) a fortran DOUBLE PRECISION PYTHAG(A, B) function
equivalently to  src/appl/pythag.c  {currently (R-devel) in .../approx.c},
and hence R's eigen() function actually does rely on pythag().

r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch