RcppFaddeeva (version 0.1.0)

Voigt: The Voigt function, corresponding to the convolution of a lorentzian and a gaussian distribution

Description

Voigt distribution

Lorentzian distribution

Gaussian distribution

Usage

Voigt(x, x0, sigma, gamma, real = TRUE, ...)
Lorentz(x, x0, gamma)
Gauss(x, x0, sigma)

Arguments

x
numeric vector
x0
scalar, peak position
sigma
parameter of the gaussian
gamma
parameter of the lorentzian
real
logical, return only the real part of the complex Faddeeva
...
passed to Faddeeva_w

Value

numeric or complex vector

Functions

  • Voigt: Voigt lineshape function
  • Lorentz: Lorentzian lineshape function
  • Gauss: Gaussian lineshape function

Examples

Run this code
## should integrate to 1 in all cases
integrate(Lorentz, -Inf, Inf, x0=200, gamma=100)
integrate(Gauss, -Inf, Inf, x0=200, sigma=50)
integrate(Voigt, -Inf, Inf, x0=200, sigma=50, gamma=100)

## visual comparison
x <- seq(-1000, 1000)
x0 <- 200
l <- Lorentz(x, x0, 30)
g <- Gauss(x, x0, 100)
N <- length(x)
c <- convolve(Gauss(x, 0, 100),
              rev(Lorentz(x, x0, 30)), type="o")[seq(N/2, length=N)]
v <- Voigt(x, x0, 100, 30)
matplot(x, cbind(v, l, g, c), t="l", lty=c(1,2,2,1), xlab="x", ylab="")
legend("topleft", legend = c("Voigt", "Lorentz", "Gauss", "Convolution"), bty="n",
       lty=c(1,2,2,1), col=1:4)

Run the code above in your browser using DataLab