6.5 LOG function

LOG
## function (x, DecFlag = FALSE) 
## {
##     if (is.nan(x)) {
##         warning("Input is NaN.")
##         return(NaN)
##     }
##     else if (x == +Inf) {
##         warning("Input is +Inf.")
##         return(+Inf)
##     }
##     else if (x == -Inf) {
##         warning("Input is -Inf.")
##         return(NaN)
##     }
##     else if (x < 0) {
##         warning("NaN produced")
##         return(NaN)
##     }
##     else if (x == 0) {
##         warning("-Inf produced")
##         return(-Inf)
##     }
##     p0 = -0.789561138874913
##     p1 = 16.3839435630215
##     p2 = -64.1249434237456
##     q0 = -35.6679777390346
##     q1 = 312.032220919245
##     q2 = -769.499321084949
##     c1 = 22713/32768
##     c2 = 1.42860682030942e-06
##     loge = 0.434294481903252
##     rthalf = 0.707106781186548
##     Res = NORM(x)
##     x1 = Res[1]
##     xexp = Res[2]
##     z = x1 - 0.5
##     if (x1 > rthalf) {
##         z = (z - 0.5)/(x1 * 0.5 + 0.5)
##     }
##     else {
##         xexp = xexp - 1
##         z = z/(z * 0.5 + 0.5)
##     }
##     w = z * z
##     z = z + z * w * ((p0 * w + p1) * w + p2)/(((w + q0) * w + 
##         q1) * w + q2)
##     if (xexp != 0) 
##         z = xexp * c2 + z + xexp * c1
##     if (DecFlag) {
##         return(loge * z)
##     }
##     else {
##         return(z)
##     }
## }
## <bytecode: 0x000001e2ae304938>
## <environment: namespace:math>

Practice Script

format(LOG(1.5), digits=22)
## [1] "0.4054651081081622754354"
format(log(1.5), digits=22)
## [1] "0.4054651081081643848592"
# Closest value of log(1.5) = 0.40546 51081 081644