BumpFuncs

This package delivers bump functions, i.e. functions on the unit sphere that have infinitely many derivatives. Included functions cover the univariate and multivariate cases, gradients, and Hessians, with and without scale and location normalization. For further information, see e.g. a paper by Steven Johnson.

The formula used for the bump function without scale and location normalizations is simply

exp( 1 / ( ||x||^2 - 1 ) ) if ||x||<1

and zero otherwise.

BumpFuncs.bumpMethod
bump(x::Vector{Real}, x0::Vector{Real}, r::Vector{Real})

Compute a vector bump function at x centered at x0 scaled by r (element-wise)

source
BumpFuncs.bumpMethod
bump(x::Real, x0::Real, r::Real)

Compute a bump function at (x-x0) / r.

source
BumpFuncs.dbumpMethod
dbump(x::Vector{Real}, x0::Vector{Real}, r::Vector{Real})

Compute the gradient of a vector bump function at x centered at x0 scaled by r (element-wise)

source
BumpFuncs.dbumpMethod
dbump(x::Vector{Real})

Compute the first derivative of a bump function at the vector x.

source
BumpFuncs.dbumpMethod
dbump(x::Real, x0::Real, r::Real)

Compute the first derivative of a bump function at (x-x0) / r.

source
BumpFuncs.ddbumpMethod
ddbump(x::Vector{Real}, x0::Vector{Real}, r::Vector{Real})

Compute the Hessian of a vector bump function at x centered at x0 scaled by r (element-wise)

source
BumpFuncs.ddbumpMethod
ddbump(x::Vector{Real})

Compute the second derivative of a bump function at the vector x.

source
BumpFuncs.ddbumpMethod
ddbump(x::Real, x0::Real, r::Real)

Compute the second derivative of a bump function at (x-x0) / r.

source