Contact

R.DNORM Function (Gnumeric)

Statistical Intermediate Gnumeric

Calculate normal density and log density with Gnumeric R.DNORM, using native examples, required mean and spread, and explicit underflow and domain checks.

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

Quick answer: =R.DNORM(0,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.DNORM returns

R.DNORM returns a normal probability density at x, or its natural logarithm when give_log is TRUE. A density is not the probability of one exact outcome. Its units are inverse measurement units, and a density can exceed 1 when the distribution is narrow. Versioned function help.

Syntax and arguments

=R.DNORM(x,mean,standard_deviation[,give_log])
  • x: observation.
  • mean: required location parameter.
  • standard_deviation: required spread; use a positive value for an ordinary normal distribution.
  • give_log: optional; FALSE by default, TRUE returns natural log density.

Brackets mark optional arguments; do not type them. Current worksheet implementation.

Reproducible examples

These self-contained formulas were recalculated natively and checked against independent mathematics. 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.DNORM(0,0,1) 0.398942280401
=R.DNORM(1,0,1) 0.241970724519
=R.DNORM(-1,0,1) 0.241970724519
=R.DNORM(2,0,2) 0.12098536226
=R.DNORM(10,10,3) 0.132980760134
=R.DNORM(0,0,1,TRUE()) -0.918938533205
=R.DNORM(1,0,1,TRUE()) -1.418938533205
=R.DNORM(5,0,1) 1.486719514734E-6

Practical worksheet

At the standard normal center, =R.DNORM(0,0,1) is approximately 0.398942280401. At x=1 or x=−1 the density is approximately 0.241970724519, illustrating symmetry. Doubling the standard deviation spreads the curve and halves its height at the corresponding standardized position.

For measured values centered at 10 with standard deviation 3, =R.DNORM(10,10,3) gives approximately 0.132980760134. Use the same units for x, mean and spread. These specified parameters define a model; the function does not estimate them from a dataset.

Advanced interpretation and checks

For z=(x−mean)/sigma, density is exp(−z²/2)/(sigma×sqrt(2π)). Log density is −z²/2−LN(sigma)−LN(2*PI())/2. Summing log densities is often more stable than multiplying many small densities.

The native x=40 standard-normal density rounds down to floating-point zero, but its log density remains approximately −800.918938533205. This preserves information about a very small positive mathematical density. The executed scale check =R.DNORM(0,0,2)*2-R.DNORM(0,0,1) is zero.

The saved advanced-check result for =R.DNORM(0,0,2)*2-R.DNORM(0,0,1) was 0.

Boundaries and troubleshooting

Negative standard deviation gives #NUM!. Zero spread is not an ordinary density: the tested center gives #NUM!, while an off-center point gives zero. A numeric string can be parsed; nonnumeric text gives #VALUE!. F5 in the table is truly empty and is converted to zero. Use TRUE/FALSE explicitly for the log flag; the tested numeric flag 2 also acts as TRUE.

F5 is genuinely empty, rather than a cell containing an empty string. #NUM! can represent an unrepresentable infinite mathematical endpoint as well as an invalid numeric domain; the distinctions above matter.

Formula Gnumeric 1.12.57 result
=R.DNORM(0,0,0) #NUM!
=R.DNORM(1,0,0) 0
=R.DNORM(0,0,-1) #NUM!
=R.DNORM("1",0,1) 0.241970724519
=R.DNORM("abc",0,1) #VALUE!
=R.DNORM(F5,0,1) 0.398942280401
=R.DNORM(0,0,1,2) -0.918938533205
=R.DNORM(0,0,1,"abc") #VALUE!
=R.DNORM(0,0) #N/A
=R.DNORM(0,0,1,0,1) #N/A
=R.DNORM(40,0,1) 0
=R.DNORM(40,0,1,TRUE()) -800.918938533205

Official evidence and checking scope

The relevant worksheet callback is unchanged between the inspected versions. That does not establish later-version numerical execution. Both stale and uncached SUM controls recalculated correctly. Native XML identities were checked; secondary ODF exports retain these functions with the ORG.GNUMERIC namespace. GUI entry, other locales and other spreadsheet products were not tested.