Description Usage Arguments Value Author(s) References See Also Examples

It is common practice in statistical optimization to use log-parameterizations when a
parameter ought to be positive. i.e. if an optimization parameter `a`

should be non-negative then
we use `a=exp(b)`

and optimize with respect to the unconstrained parameter `b`

. This often works
well, but it does imply a rather limited working range for `b`

: using 8 byte doubles, for example,
if `b`

's magnitude gets much above 700 then `a`

overflows or underflows. This can cause
problems for numerical optimization methods.

`notExp`

is a monotonic function for mapping the real line into the positive real line with much less
extreme underflow and overflow behaviour than `exp`

. It is a piece-wise function, but is continuous
to second derivative: see the source code for the exact definition, and the example below to see what it
looks like.

`notLog`

is the inverse function of `notExp`

.

The major use of these functions was originally to provide more robust
`pdMat`

classes for `lme`

for use by `gamm`

. Currently
the `notExp2`

and `notLog2`

functions are used in
their place, as a result of changes to the nlme optimization routines.

1 2 3 |

`x` |
Argument array of real numbers ( |

An array of function values evaluated at the supplied argument values.

Simon N. Wood [email protected]

http://www.maths.bris.ac.uk/~sw15190/

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | ```
## Illustrate the notExp function:
## less steep than exp, but still monotonic.
require(mgcv)
x <- -100:100/10
op <- par(mfrow=c(2,2))
plot(x,notExp(x),type="l")
lines(x,exp(x),col=2)
plot(x,log(notExp(x)),type="l")
lines(x,log(exp(x)),col=2) # redundancy intended
x <- x/4
plot(x,notExp(x),type="l")
lines(x,exp(x),col=2)
plot(x,log(notExp(x)),type="l")
lines(x,log(exp(x)),col=2) # redundancy intended
par(op)
range(notLog(notExp(x))-x) # show that inverse works!
``` |

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.