[Distr-commits] r1514 - in branches/distr-2.9/pkg/distrEllipse: . R inst
noreply at r-forge.r-project.org
noreply at r-forge.r-project.org
Wed Sep 9 21:48:54 CEST 2026
Author: ruckdeschel
Date: 2026-09-09 21:48:53 +0200 (Wed, 09 Sep 2026)
New Revision: 1514
Modified:
branches/distr-2.9/pkg/distrEllipse/DESCRIPTION
branches/distr-2.9/pkg/distrEllipse/R/EllipticalDistribution.R
branches/distr-2.9/pkg/distrEllipse/inst/NEWS
Log:
[distrEllipse, devel branch 2.9] bug fix: [detected by Pierre Lafaye de Micheaux]
in the generating function EllipticalDistribution() in the RNG-slot,
erroneously treated scale parameter like a covariance where instead
it should have been its root
Modified: branches/distr-2.9/pkg/distrEllipse/DESCRIPTION
===================================================================
--- branches/distr-2.9/pkg/distrEllipse/DESCRIPTION 2026-07-01 18:40:25 UTC (rev 1513)
+++ branches/distr-2.9/pkg/distrEllipse/DESCRIPTION 2026-09-09 19:48:53 UTC (rev 1514)
@@ -1,6 +1,6 @@
Package: distrEllipse
Version: 2.9.0
-Date: 2019-03-13
+Date: 2026-09-09
Title: S4 Classes for Elliptically Contoured Distributions
Description: Distribution (S4-)classes for elliptically contoured distributions (based on
package 'distr').
Modified: branches/distr-2.9/pkg/distrEllipse/R/EllipticalDistribution.R
===================================================================
--- branches/distr-2.9/pkg/distrEllipse/R/EllipticalDistribution.R 2026-07-01 18:40:25 UTC (rev 1513)
+++ branches/distr-2.9/pkg/distrEllipse/R/EllipticalDistribution.R 2026-09-09 19:48:53 UTC (rev 1514)
@@ -25,10 +25,19 @@
body(dfun) <- substitute({
x0 <- x-loc0
x1 <- Iscale0 %*% x0
- r <- colSums(x0*x1)^.5
+# 20260909: bug detected by Pierre Lafaye de Micheaux :: erroneously treated
+# argument (I)scale like a covariance where it should have been
+# its choleski root
+# old code: r <- colSums(x0*x1)^.5
+# corrected code:
+ r <- colSums(x1^2)^.5
+## end correction 20260909
lg <- dlog0
lg <- lg + (1-dim1)*log(r) + lgamma(dim1/2) -
- dim1/2*log(pi)-log(2)- ldscale0/2
+# old code: dim1/2*log(pi)-log(2)- ldscale0/2
+# corrected code:
+ dim1/2*log(pi)-log(2)- ldscale0
+## end correction 20260909
return(if(log) lg else exp(lg))},
list(loc0 = loc, Iscale0 = Iscale, ldscale0 = ldscale,
dlog0 = dlog, dim1=dim0))
Modified: branches/distr-2.9/pkg/distrEllipse/inst/NEWS
===================================================================
--- branches/distr-2.9/pkg/distrEllipse/inst/NEWS 2026-07-01 18:40:25 UTC (rev 1513)
+++ branches/distr-2.9/pkg/distrEllipse/inst/NEWS 2026-09-09 19:48:53 UTC (rev 1514)
@@ -11,6 +11,12 @@
v 2.9.0
##############
+bug fix:
+ [detected by Pierre Lafaye de Micheaux]
+ in the generating function EllipticalDistribution() in the RNG-slot,
+ erroneously treated scale parameter like a covariance where instead
+ it should have been its root
+
##############
v 2.8.4
##############
More information about the Distr-commits
mailing list