R.DLNORM Function (Gnumeric)
Calculate lognormal density with Gnumeric R.DLNORM. Interpret log-scale parameters, verify the normal-density transformation and inspect an extreme-input limitation.
Verification status: 21 reference, boundary and advanced-check formulas were recalculated with Gnumeric 1.12.57 ssconvert. Saved identities, the blank input and numerical results were independently checked. Gnumeric 1.12.62 was source-checked only. How formula examples are checked
Extreme-input limitation: the tested 1.12.57 call R.DLNORM(1E-200,0,1) returned #NUM!, while its log-density form returned a finite value. The ordinary mathematical density is positive but far below binary64 range; this is not a domain error in the lognormal model.
Quick answer: =R.DLNORM(1,0,1) gives 0.398942280401 in Gnumeric 1.12.57.
Availability and version history
- Introduced: First release not established; present in the retained 1.12.57 source.
- Supported in: Gnumeric 1.12.62; no retirement is established.
- Scope: Desktop Gnumeric with its Statistical Functions From R plugin. English comma-separated formulas are shown.
- Checked: October 14, 2026. Tables and the named advanced check use 1.12.57 ssconvert. Current 1.12.62 source was inspected; that release was not executed.
What R.DLNORM returns
R.DLNORM returns the lognormal probability density, or its natural logarithm. If LN(X) is normal with mean μ and standard deviation σ, the density for x>0 is EXP(−(LN(x)−μ)^2/(2σ²))/(xσSQRT(2π)). A density value is not the probability of an exact observation. Versioned function help.
Syntax and arguments
=R.DLNORM(x,logmean,logsd[,give_log])
Supply x, the mean of LN(X), and the standard deviation of LN(X); all three are required. Logsd must be positive. Optional give_log defaults to FALSE. These are parameters of the underlying normal distribution, not the ordinary mean and standard deviation of X.
Brackets mark optional arguments; do not type them. Current worksheet implementation.
Reproducible examples
These self-contained formulas were recalculated natively. Ordinary-domain results were checked against independent mathematics; source guards explain the boundary cases. Results are rounded to twelve decimal places, or thirteen significant digits for small nonzero values. This is presentation precision, not a universal accuracy guarantee.
| Formula | Gnumeric 1.12.57 result |
|---|---|
=R.DLNORM(1,0,1) |
0.398942280401 |
=R.DLNORM(2,0,1) |
0.156874019279 |
=R.DLNORM(EXP(1),1,.5) |
0.293525326347 |
=R.DLNORM(.5,0,1) |
0.627496077116 |
=R.DLNORM(1,0,1,TRUE()) |
-0.918938533205 |
=R.DLNORM(2,0,.5) |
0.152613826048 |
=R.DLNORM(1,1,2) |
0.176032663382 |
=R.DLNORM(4,1,.5) |
0.148001572447 |
Practical worksheet
With logmean=0 and logsd=1, the density at x=1 is approximately 0.398942280401. At x=2 it is approximately 0.156874019279. The distribution’s median is EXP(0)=1, while its ordinary mean is EXP(0+1/2), approximately 1.648721270700.
For observed positive values in A2:A10, a density column can use =R.DLNORM(A2,0,1). Interval probabilities require a cumulative-distribution difference rather than summing a few density heights as if they were discrete probabilities.
Advanced interpretation and checks
The change-of-variable identity is x*R.DLNORM(x,μ,σ)=R.DNORM(LN(x),μ,σ) for positive x. The executed x=2 check below gives zero residual.
For a likelihood calculation, summing log densities is more stable than multiplying very small densities. At x=1E-200, the direct log-density formula gives approximately −105578.36412950236, consistent with the native log result; exponentiating it cannot produce an ordinary positive binary64 value.
The saved advanced-check result for =R.DLNORM(2,0,1)*2-R.DNORM(LN(2),0,1) was 0.
Boundaries and troubleshooting
Zero or negative x gives density zero, while its logarithm is nonfinite and becomes #NUM!. Nonpositive logsd is rejected with #NUM!. The extreme positive-input failure above is separate from those parameter guards; the complete inspected helper is unchanged in 1.12.62, but that newer release was not executed.
Numeric text is parsed; nonnumeric text gives #VALUE!. Empty F5 is treated as zero. Missing or extra arguments give #N/A. A finite log density does not guarantee that the ordinary density path remains numerically usable for every extreme input.
F5 is genuinely empty, rather than a cell containing an empty string.
| Formula | Gnumeric 1.12.57 result |
|---|---|
=R.DLNORM(0,0,1) |
0 |
=R.DLNORM(-1,0,1) |
0 |
=R.DLNORM(0,0,1,TRUE()) |
#NUM! |
=R.DLNORM(1,0,0) |
#NUM! |
=R.DLNORM(1,0,-1) |
#NUM! |
=R.DLNORM(1E-200,0,1) |
#NUM! |
=R.DLNORM(1E-200,0,1,TRUE()) |
-105578.36412950236 |
=R.DLNORM("2",0,1) |
0.156874019279 |
=R.DLNORM("abc",0,1) |
#VALUE! |
=R.DLNORM(F5,0,1) |
0 |
=R.DLNORM(1,0) |
#N/A |
=R.DLNORM(1,0,1,0,1) |
#N/A |
Official evidence and checking scope
- Current worksheet callback
- Tested-version worksheet callback
- Current dlnorm calculation
- Tested-version dlnorm calculation
- Nonfinite worksheet-value handling
- Statistical Functions From R plugin declaration
The relevant complete worksheet callback and main calculation helper are unchanged between the inspected versions. That does not establish later-version numerical execution. Both stale and uncached SUM controls recalculated correctly. Native XML preserves the R.* identities. The secondary ODF export keeps these calls in the ORG.GNUMERIC namespace; it does not establish execution in another product. GUI entry, other locales and other spreadsheet products were not tested.
Related guides
R.DNORM, LOGNORMDIST, LN.