.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.45) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Required to disable full justification in groff 1.23.0. .if n .ds AD l .\" ======================================================================== .\" .IX Title "build::libcerf::src::libcerf::man::voigt_hwhm 3" .TH build::libcerf::src::libcerf::man::voigt_hwhm 3 2026-09-05 "perl v5.42.2" "libcerf manual" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH NAME voigt_hwhm \- Half width at half maximum of Voigt\*(Aqs function .SH SYNOPSIS .IX Header "SYNOPSIS" \&\fB#include .PP \&\fBdouble voigt_hwhm ( double sigma, double gamma );\fR .SH DESCRIPTION .IX Header "DESCRIPTION" The function \fBvoigt_hwhm\fR returns the half width at half maximum of the function \fBvoigt\fR. .PP The function \fBvoigt\fR returns Voigt\*(Aqs convolution .PP .Vb 1 \& voigt(x,sigma,gamma) = integral G(t,sigma) L(x\-t,gamma) dt .Ve .PP of a Gaussian .PP .Vb 1 \& G(x,sigma) = 1/sqrt(2*pi)/|sigma| * exp(\-x^2/2/sigma^2) .Ve .PP and a Lorentzian .PP .Vb 1 \& L(x,gamma) = |gamma| / pi / ( x^2 + gamma^2 ), .Ve .PP with the integral extending from \-infinity to +infinity. .SH ACCURACY .IX Header "ACCURACY" Errors are given in units of eps = 2^\-53 = 1.1e\-16, as relative deviations from high\-precision reference values. .PP For 0.25 <= gamma/sigma < 16, \fBvoigt_hwhm\fR uses a piecewise Chebyshev approximation generated by \fBppapp\fR, whose error analysis (Wuttke and Kleinsorge, see REFERENCES) bounds the relative error by 2.2 eps; the largest deviation found at the 576 generated test points in this range is 1.8 eps. Below and above that range, series expansions around the Gaussian and the Lorentzian limit are used, for which no theoretical bound exists yet; the relative error was found below 2.0 eps at 1152 generated test points for 0.03 <= gamma/sigma < 128 and at random points for 1e\-8 < gamma/sigma < 1e8. Rescaling both arguments by a common factor adds at most one rounding. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBvoigt\|(3)\fR .PP Homepage: https://jugit.fz\-juelich.de/mlz/lib/cerf .SH REFERENCES .IX Header "REFERENCES" Joachim Wuttke, "Power series for the half width of the Voigt function, rederived", J. Numer. Anal. Approx. Theo. 54, 345\-356 (2025), https://doi.org/10.33993/jnaat542\-1640, derives the series expansions used for small and large gamma/sigma. .PP Joachim Wuttke and Alexander Kleinsorge, "Algorithm 1062: Code generation for piecewise Chebyshev approximation", ACM Trans. Math. Softw. 52, 13 (2026), https://doi.org/10.1145/3805698, explains the piecewise polynomial approximation used for intermediate gamma/sigma and derives its error bound. .SH AUTHOR .IX Header "AUTHOR" Joachim Wuttke, Forschungszentrum Juelich. .SH CONTACT .IX Header "CONTACT" Please report bugs to the maintainer: .PP Joachim Wuttke .SH COPYING .IX Header "COPYING" Copyright (c) 2018\-25 Forschungszentrum Juelich GmbH .PP Software: MIT License. .PP This documentation: Creative Commons Attribution Share Alike.