Contact

R.DSNORM Function (Gnumeric)

Statistical Intermediate Gnumeric Gnumeric 1.9.15

Evaluate skew-normal density with Gnumeric R.DSNORM. Understand shape/location/scale and the verified nonzero-location ordinary-versus-log density defect.

Verification status: 20 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

Nonzero-location defect: Gnumeric 1.12.57 returned 0.704108352836 for R.DSNORM(2.5,2,2,1), while the skew-normal density is approximately 0.592416625892. The log-density branch agrees with the mathematical model. The inspected 1.12.62 helper retains the same conflicting ordinary and log branches.

Quick answer: =R.DSNORM(0,2,0,1) gives 0.398942280401 in Gnumeric 1.12.57.

Availability and version history

  • Introduced: Introduced in Gnumeric 1.9.15 release notes.
  • 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.DSNORM returns

For standardized z=(x−location)/scale, the skew-normal density is 2φ(z)Φ(shape×z)/scale, where φ and Φ are standard normal density and CDF. Shape zero reduces to an ordinary normal distribution. A density height is not a point probability. Versioned function help.

Syntax and arguments

=R.DSNORM(x,shape,location,scale[,give_log])

x, shape, location and scale are all required. Use positive scale. Optional give_log defaults to FALSE and requests the natural log density when TRUE. Location is a location parameter, not generally the mean or median when shape is nonzero.

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

Reproducible examples

These self-contained formulas were recalculated natively. The separate reference column evaluates the stated mathematical distribution; discrepancies are preserved and explained rather than treated as successful mathematical results. Source branches and typed native outputs 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 Independent mathematical reference
=R.DSNORM(0,2,0,1) 0.398942280401 0.398942280401
=R.DSNORM(1,2,0,1) 0.472931717217 0.472931717217
=R.DSNORM(-1,2,0,1) 0.011009731821 0.011009731821
=R.DSNORM(1,-2,0,1) 0.011009731821 0.011009731821
=R.DSNORM(0,0,0,1) 0.398942280401 0.398942280401
=R.DSNORM(1,2,0,1,TRUE()) -0.748804261974 -0.748804261974
=R.DSNORM(2.5,2,2,1) 0.704108352836 0.592416625892
=R.DSNORM(2.5,2,2,1,TRUE()) -0.523545131668 -0.523545131668

Practical worksheet

For shape 2, location 0 and scale 1, the density at x=1 is approximately 0.472931717217, whereas at x=−1 it is 0.011009731821. Reversing the shape to −2 mirrors those heights. The table’s first examples use location zero, where the inspected ordinary branch agrees with the standard formula.

Do not extend that agreement to a shifted curve without checking it. At x=2.5 and location 2, the direct and log modes diverge as shown prominently above.

Advanced interpretation and checks

The ordinary branch passes a normal-CDF mean of location/shape, while the log branch passes shape×location. These are different whenever the relevant terms do not coincide. At x=2.5, shape 2, location 2 and scale 1, the log result is approximately −0.523545131668; exponentiating it gives the correct density 0.592416625892.

For these validated positive-scale inputs, exponentiating the log-density branch is a source-supported alternative. The executed difference below compares the ordinary result with that alternative and returns approximately 0.111691726944, exposing the mismatch. It is not a guarantee against underflow when exponentiating extremely small log densities.

The saved advanced-check result for =R.DSNORM(2.5,2,2,1)-EXP(R.DSNORM(2.5,2,2,1,TRUE())) was 0.111691726944.

Boundaries and troubleshooting

At the location itself, the correct mathematical density is φ(0)/scale for any finite shape. The tested shifted ordinary call at x=2, shape 2 and location 2 returns about 0.796807498005 instead of 0.398942280401; its log branch follows the expected value.

Negative scale gives #NUM! in the listed case. Zero-scale calls can yield zero away from location or #NUM! at a singular point, but zero scale is outside the continuous positive-scale model. Nonnumeric text gives #VALUE!, empty F5 becomes zero, and wrong arity gives #N/A. The newer release was source-checked only.

F5 is genuinely empty, rather than a cell containing an empty string.

Formula Gnumeric 1.12.57 result
=R.DSNORM(2,2,2,1) 0.796807498005
=R.DSNORM(2,2,2,1,TRUE()) -0.918938533205
=R.DSNORM(2.5,-2,2,1) 2.230069221002E-5
=R.DSNORM(2.5,-2,2,1,TRUE()) -2.191812997654
=R.DSNORM(1,2,0,0) 0
=R.DSNORM(1,2,0,-1) #NUM!
=R.DSNORM(0,0,0,0) #NUM!
=R.DSNORM("abc",2,0,1) #VALUE!
=R.DSNORM(F5,2,0,1) 0.398942280401
=R.DSNORM(1,2,0) #N/A
=R.DSNORM(1,2,0,1,0,1) #N/A

Official evidence and checking scope

The relevant complete worksheet callback and inspected calculation helpers are unchanged between the source versions; later numerical execution is not established. 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.