[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