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