Last updated on 2026-02-08 17:49:58 CET.
| Flavor | Version | Tinstall | Tcheck | Ttotal | Status | Flags |
|---|---|---|---|---|---|---|
| r-devel-linux-x86_64-debian-clang | 1.2-7 | 2.48 | 37.27 | 39.75 | ERROR | |
| r-devel-linux-x86_64-debian-gcc | 1.2-7 | 2.77 | 29.46 | 32.23 | ERROR | |
| r-devel-linux-x86_64-fedora-clang | 1.2-7 | 6.00 | 58.27 | 64.27 | ERROR | |
| r-devel-linux-x86_64-fedora-gcc | 1.2-7 | 6.00 | 58.55 | 64.55 | ERROR | |
| r-devel-windows-x86_64 | 1.2-7 | 5.00 | 56.00 | 61.00 | ERROR | |
| r-patched-linux-x86_64 | 1.2-7 | 3.85 | 35.91 | 39.76 | OK | |
| r-release-linux-x86_64 | 1.2-7 | 3.18 | 36.29 | 39.47 | OK | |
| r-release-macos-arm64 | 1.2-7 | OK | ||||
| r-release-macos-x86_64 | 1.2-7 | 2.00 | 44.00 | 46.00 | OK | |
| r-release-windows-x86_64 | 1.2-7 | 4.00 | 56.00 | 60.00 | OK | |
| r-oldrel-macos-arm64 | 1.2-7 | OK | ||||
| r-oldrel-macos-x86_64 | 1.2-7 | 2.00 | 36.00 | 38.00 | OK | |
| r-oldrel-windows-x86_64 | 1.2-7 | 6.00 | 68.00 | 74.00 | OK |
Version: 1.2-7
Check: tests
Result: ERROR
Running ‘L1med-tst.R’ [1s/2s]
Running ‘cov-ex.R’ [1s/1s]
Running the tests in ‘tests/cov-ex.R’ failed.
Complete output:
> library(robustX)
> library(robustbase)
> (newRB <- (packageVersion("robustbase") >= "0.99"))
[1] TRUE
>
> sessionInfo()
R Under development (unstable) (2026-02-04 r89376)
Platform: x86_64-pc-linux-gnu
Running under: Debian GNU/Linux forky/sid
Matrix products: default
BLAS: /home/hornik/tmp/R.check/r-devel-clang/Work/build/lib/libRblas.so
LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0
locale:
[1] LC_CTYPE=C.UTF-8 LC_NUMERIC=C LC_TIME=C.UTF-8
[4] LC_COLLATE=C LC_MONETARY=C.UTF-8 LC_MESSAGES=C.UTF-8
[7] LC_PAPER=C.UTF-8 LC_NAME=C LC_ADDRESS=C
[10] LC_TELEPHONE=C LC_MEASUREMENT=C.UTF-8 LC_IDENTIFICATION=C
time zone: Europe/Vienna
tzcode source: system (glibc)
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] robustbase_0.99-7 robustX_1.2-7
loaded via a namespace (and not attached):
[1] DEoptimR_1.1-4 compiler_4.6.0
> packageDescription("robustX")
Package: robustX
Type: Package
Title: 'eXtra' / 'eXperimental' Functionality for Robust Statistics
Version: 1.2-7
Date: 2023-06-14
Authors@R: c(person("Martin","Maechler", role=c("aut","cre"),
email="maechler@stat.math.ethz.ch", comment = c(ORCID =
"0000-0002-8685-9910")) , person("Werner A.", "Stahel",
role="aut", email="stahel@stat.math.ethz.ch") , person("Rolf",
"Turner", role="ctb", email="r.turner@auckland.ac.nz", comment
= "reclas()") , person("Ueli", "Oetliker", role="ctb", comment
= "original version of BACON() and mvBACON for S+") ,
person("Tobias", "Schoch", role="ctb", comment =
"init.sel=\"V2\" for BACON; fix alpha") )
Maintainer: Martin Maechler <maechler@stat.math.ethz.ch>
Description: Robustness -- 'eXperimental', 'eXtraneous', or
'eXtraordinary' Functionality for Robust Statistics. Hence
methods which are not well established, often related to
methods in package 'robustbase'. Amazingly, 'BACON()',
originally by Billor, Hadi, and Velleman (2000)
<doi:10.1016/S0167-9473(99)00101-2> has become established in
places. The "barrow wheel" `rbwheel()` is from Stahel and
Mächler (2009) <doi:10.1111/j.1467-9868.2009.00706.x>.
Imports: grDevices, graphics, stats, utils, robustbase (>= 0.92-3)
Suggests: MASS, lattice, pcaPP
Enhances: ICS
License: GPL (>= 2)
Encoding: UTF-8
NeedsCompilation: no
Packaged: 2023-06-14 21:41:58 UTC; maechler
Author: Martin Maechler [aut, cre]
(<https://orcid.org/0000-0002-8685-9910>), Werner A. Stahel
[aut], Rolf Turner [ctb] (reclas()), Ueli Oetliker [ctb]
(original version of BACON() and mvBACON for S+), Tobias Schoch
[ctb] (init.sel="V2" for BACON; fix alpha)
Repository: CRAN
Date/Publication: 2023-06-16 07:30:02 UTC
Built: R 4.6.0; ; 2026-02-05 10:36:23 UTC; unix
-- File: /home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/robustX/Meta/package.rds
> (ourBLAS <- grepl(print(normalizePath(R.home())),
+ normalizePath(extSoftVersion()[["BLAS"]]), fixed = TRUE))
[1] "/home/hornik/tmp/R.check/r-devel-clang/Work/build"
[1] TRUE
> ## need extended precision (typically *includes* 64-bit):
> doCheck <- (.Machine$sizeof.longdouble >= 16)
> cat("doCheck (= have long double):", doCheck,"\n")
doCheck (= have long double): TRUE
>
> if(!dev.interactive(orNone=TRUE)) pdf("cov-ex.pdf")
>
> covNN.1 <- robustX:::covNNC1 ## the original definition (2003)
>
> data(iris)
> system.time(cN1 <- covNN.1(iris[-5]))
user system elapsed
0.183 0.020 0.291
> system.time(cN <- covNNC (iris[-5]))# faster indeed
user system elapsed
0.097 0.000 0.185
>
> ## report.and.stop.if.not.all.equal
> report.stopifnot.all.eq <- function(a,b, tol, ...) {
+ call <- sys.call()
+ ae <- all.equal(a,b, tol=tol, ...)
+ call[[1]] <- quote(all.equal)
+ if(!isTRUE(ae))
+ stop(sprintf("Not %s:\n%s\n\n", deparse(call),
+ paste(ae, collapse="\n")),
+ call.=FALSE)
+ ## else
+ TRUE
+ }
>
> UN <- function(L) lapply(L, unname)
>
> chk.NN.new.old <- function(cNew, cNold, tol = 2e-15, tol.1 = 20*tol) {
+ stopifnot(is.list(cNold$innc), length(n.i <- names(cNold$innc)) == 4)
+ cat("classification accordance matrix:\n")
+ print(table(new = cNew $classification,
+ old = cNold$classification))
+ report.stopifnot.all.eq(UN(cNew [1:4]),
+ UN(cNold[1:4]), tol=tol.1) &
+ report.stopifnot.all.eq(cNew $innc[n.i],
+ cNold$innc[n.i], tol=tol)
+ }
>
> summ.NN <- function(cNN, digits = 3) {
+ cbind(class = cNN$classification,
+ pprob = round(cNN$postprob, digits),
+ incc.p= round(cNN$innc$postprob, digits))
+ }
>
> s1 <- summ.NN(cN1)
> ss <- summ.NN(cN)
> if(isTRUE(all.equal(ss, s1))) ss else cbind(ss, s1)
class pprob incc.p class pprob incc.p
[1,] 1 1.000 1.000 1 1.000 1.000
[2,] 1 1.000 1.000 1 1.000 1.000
[3,] 1 1.000 1.000 1 1.000 1.000
[4,] 1 1.000 1.000 1 1.000 1.000
[5,] 1 1.000 1.000 1 1.000 1.000
[6,] 1 1.000 0.171 1 1.000 0.171
[7,] 1 1.000 1.000 1 1.000 1.000
[8,] 1 1.000 1.000 1 1.000 1.000
[9,] 1 1.000 1.000 1 1.000 1.000
[10,] 1 1.000 1.000 1 1.000 1.000
[11,] 1 1.000 1.000 1 1.000 1.000
[12,] 1 1.000 1.000 1 1.000 1.000
[13,] 1 1.000 1.000 1 1.000 1.000
[14,] 1 1.000 1.000 1 1.000 1.000
[15,] 1 1.000 0.000 1 0.998 0.000
[16,] 0 0.000 0.000 0 0.000 0.000
[17,] 1 1.000 0.718 1 1.000 0.718
[18,] 1 1.000 1.000 1 1.000 1.000
[19,] 1 1.000 0.002 1 1.000 0.002
[20,] 1 1.000 1.000 1 1.000 1.000
[21,] 1 1.000 1.000 1 1.000 1.000
[22,] 1 1.000 1.000 1 1.000 1.000
[23,] 1 1.000 1.000 1 1.000 1.000
[24,] 1 1.000 1.000 1 1.000 1.000
[25,] 1 1.000 1.000 1 1.000 1.000
[26,] 1 1.000 1.000 1 1.000 1.000
[27,] 1 1.000 1.000 1 1.000 1.000
[28,] 1 1.000 1.000 1 1.000 1.000
[29,] 1 1.000 1.000 1 1.000 1.000
[30,] 1 1.000 1.000 1 1.000 1.000
[31,] 1 1.000 1.000 1 1.000 1.000
[32,] 1 1.000 1.000 1 1.000 1.000
[33,] 1 1.000 0.000 1 1.000 0.000
[34,] 0 0.000 0.000 0 0.000 0.000
[35,] 1 1.000 1.000 1 1.000 1.000
[36,] 1 1.000 1.000 1 1.000 1.000
[37,] 1 1.000 1.000 1 1.000 1.000
[38,] 1 1.000 1.000 1 1.000 1.000
[39,] 1 1.000 1.000 1 1.000 1.000
[40,] 1 1.000 1.000 1 1.000 1.000
[41,] 1 1.000 1.000 1 1.000 1.000
[42,] 0 0.000 0.000 0 0.000 0.000
[43,] 1 1.000 1.000 1 1.000 1.000
[44,] 1 1.000 1.000 1 1.000 1.000
[45,] 1 1.000 1.000 1 1.000 1.000
[46,] 1 1.000 1.000 1 1.000 1.000
[47,] 1 1.000 1.000 1 1.000 1.000
[48,] 1 1.000 1.000 1 1.000 1.000
[49,] 1 1.000 1.000 1 1.000 1.000
[50,] 1 1.000 1.000 1 1.000 1.000
[51,] 1 1.000 0.058 1 1.000 0.058
[52,] 1 1.000 1.000 1 1.000 1.000
[53,] 1 1.000 1.000 1 1.000 1.000
[54,] 1 1.000 0.773 1 1.000 0.773
[55,] 1 1.000 1.000 1 1.000 1.000
[56,] 1 1.000 1.000 1 1.000 1.000
[57,] 1 1.000 0.999 1 1.000 0.999
[58,] 1 1.000 0.000 1 1.000 0.000
[59,] 1 1.000 1.000 1 1.000 1.000
[60,] 1 1.000 1.000 1 1.000 1.000
[61,] 0 0.000 0.000 0 0.000 0.000
[62,] 1 1.000 1.000 1 1.000 1.000
[63,] 1 0.611 0.000 0 0.000 0.000
[64,] 1 1.000 1.000 1 1.000 1.000
[65,] 1 1.000 1.000 1 1.000 1.000
[66,] 1 1.000 1.000 1 1.000 1.000
[67,] 1 1.000 1.000 1 1.000 1.000
[68,] 1 1.000 1.000 1 1.000 1.000
[69,] 1 0.786 0.000 0 0.000 0.000
[70,] 1 1.000 1.000 1 1.000 1.000
[71,] 1 1.000 1.000 1 1.000 1.000
[72,] 1 1.000 1.000 1 1.000 1.000
[73,] 1 1.000 1.000 1 1.000 1.000
[74,] 1 1.000 1.000 1 1.000 1.000
[75,] 1 1.000 1.000 1 1.000 1.000
[76,] 1 1.000 1.000 1 1.000 1.000
[77,] 1 1.000 1.000 1 1.000 1.000
[78,] 1 1.000 1.000 1 1.000 1.000
[79,] 1 1.000 1.000 1 1.000 1.000
[80,] 1 1.000 1.000 1 1.000 1.000
[81,] 1 1.000 1.000 1 1.000 1.000
[82,] 1 1.000 0.999 1 1.000 0.999
[83,] 1 1.000 1.000 1 1.000 1.000
[84,] 1 1.000 1.000 1 1.000 1.000
[85,] 1 1.000 1.000 1 1.000 1.000
[86,] 1 1.000 0.000 1 1.000 0.000
[87,] 1 1.000 1.000 1 1.000 1.000
[88,] 1 1.000 0.000 1 1.000 0.000
[89,] 1 1.000 1.000 1 1.000 1.000
[90,] 1 1.000 1.000 1 1.000 1.000
[91,] 1 1.000 1.000 1 1.000 1.000
[92,] 1 1.000 1.000 1 1.000 1.000
[93,] 1 1.000 1.000 1 1.000 1.000
[94,] 1 0.944 0.000 0 0.001 0.000
[95,] 1 1.000 1.000 1 1.000 1.000
[96,] 1 1.000 1.000 1 1.000 1.000
[97,] 1 1.000 1.000 1 1.000 1.000
[98,] 1 1.000 1.000 1 1.000 1.000
[99,] 1 1.000 0.000 1 1.000 0.000
[100,] 1 1.000 1.000 1 1.000 1.000
[101,] 1 1.000 0.000 1 1.000 0.000
[102,] 1 1.000 1.000 1 1.000 1.000
[103,] 1 1.000 1.000 1 1.000 1.000
[104,] 1 1.000 1.000 1 1.000 1.000
[105,] 1 1.000 1.000 1 1.000 1.000
[106,] 1 1.000 0.000 1 0.998 0.000
[107,] 1 1.000 0.000 0 0.317 0.000
[108,] 1 1.000 0.000 1 1.000 0.000
[109,] 1 1.000 0.000 1 0.999 0.000
[110,] 0 0.000 0.000 0 0.000 0.000
[111,] 1 1.000 1.000 1 1.000 1.000
[112,] 1 1.000 1.000 1 1.000 1.000
[113,] 1 1.000 1.000 1 1.000 1.000
[114,] 1 1.000 0.000 1 1.000 0.000
[115,] 1 1.000 0.899 1 1.000 0.899
[116,] 1 1.000 1.000 1 1.000 1.000
[117,] 1 1.000 1.000 1 1.000 1.000
[118,] 0 0.000 0.000 0 0.000 0.000
[119,] 0 0.000 0.000 0 0.000 0.000
[120,] 0 0.028 0.000 0 0.000 0.000
[121,] 1 1.000 1.000 1 1.000 1.000
[122,] 1 1.000 1.000 1 1.000 1.000
[123,] 0 0.000 0.000 0 0.000 0.000
[124,] 1 1.000 1.000 1 1.000 1.000
[125,] 1 1.000 1.000 1 1.000 1.000
[126,] 1 1.000 0.229 1 1.000 0.229
[127,] 1 1.000 1.000 1 1.000 1.000
[128,] 1 1.000 1.000 1 1.000 1.000
[129,] 1 1.000 1.000 1 1.000 1.000
[130,] 1 1.000 0.702 1 1.000 0.702
[131,] 1 1.000 0.000 0 0.357 0.000
[132,] 0 0.000 0.000 0 0.000 0.000
[133,] 1 1.000 1.000 1 1.000 1.000
[134,] 1 1.000 1.000 1 1.000 1.000
[135,] 1 1.000 0.818 1 1.000 0.818
[136,] 1 1.000 0.000 1 0.999 0.000
[137,] 1 1.000 0.000 1 1.000 0.000
[138,] 1 1.000 1.000 1 1.000 1.000
[139,] 1 1.000 1.000 1 1.000 1.000
[140,] 1 1.000 1.000 1 1.000 1.000
[141,] 1 1.000 1.000 1 1.000 1.000
[142,] 1 1.000 1.000 1 1.000 1.000
[143,] 1 1.000 1.000 1 1.000 1.000
[144,] 1 1.000 1.000 1 1.000 1.000
[145,] 1 1.000 1.000 1 1.000 1.000
[146,] 1 1.000 1.000 1 1.000 1.000
[147,] 1 1.000 0.991 1 1.000 0.991
[148,] 1 1.000 1.000 1 1.000 1.000
[149,] 1 1.000 0.000 1 1.000 0.000
[150,] 1 1.000 1.000 1 1.000 1.000
>
>
> try( # testing (tol=0 too small)
+ chk.NN.new.old(cN, cN1, tol=0)
+ )
classification accordance matrix:
old
new 0 1
0 10 0
1 5 135
Error : Not all.equal(UN(cNew[1:4]), UN(cNold[1:4]), tol = tol.1):
Component "cov": Mean relative difference: 0.01479474
Component "mu": Mean relative difference: 0.003191909
Component "postprob": Mean relative difference: 0.1351993
Component "classification": Mean relative difference: 1
> ## This used to fail when we use R's instead of BLAS matrix products:
> if(doCheck)
+ chk.NN.new.old(cN, cN1, tol = 4e-15) # seen 1.1e-15 work
classification accordance matrix:
old
new 0 1
0 10 0
1 5 135
Error: Not all.equal(UN(cNew[1:4]), UN(cNold[1:4]), tol = tol.1):
Component "cov": Mean relative difference: 0.01479474
Component "mu": Mean relative difference: 0.003191909
Component "postprob": Mean relative difference: 0.1351993
Component "classification": Mean relative difference: 1
Execution halted
Flavor: r-devel-linux-x86_64-debian-clang
Version: 1.2-7
Check: tests
Result: ERROR
Running ‘L1med-tst.R’ [1s/2s]
Running ‘cov-ex.R’ [1s/1s]
Running the tests in ‘tests/cov-ex.R’ failed.
Complete output:
> library(robustX)
> library(robustbase)
> (newRB <- (packageVersion("robustbase") >= "0.99"))
[1] TRUE
>
> sessionInfo()
R Under development (unstable) (2026-02-06 r89378)
Platform: x86_64-pc-linux-gnu
Running under: Debian GNU/Linux forky/sid
Matrix products: default
BLAS: /home/hornik/tmp/R.check/r-devel-gcc/Work/build/lib/libRblas.so
LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0
locale:
[1] LC_CTYPE=C.UTF-8 LC_NUMERIC=C LC_TIME=C.UTF-8
[4] LC_COLLATE=C LC_MONETARY=C.UTF-8 LC_MESSAGES=C.UTF-8
[7] LC_PAPER=C.UTF-8 LC_NAME=C LC_ADDRESS=C
[10] LC_TELEPHONE=C LC_MEASUREMENT=C.UTF-8 LC_IDENTIFICATION=C
time zone: Europe/Vienna
tzcode source: system (glibc)
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] robustbase_0.99-7 robustX_1.2-7
loaded via a namespace (and not attached):
[1] DEoptimR_1.1-4 compiler_4.6.0
> packageDescription("robustX")
Package: robustX
Type: Package
Title: 'eXtra' / 'eXperimental' Functionality for Robust Statistics
Version: 1.2-7
Date: 2023-06-14
Authors@R: c(person("Martin","Maechler", role=c("aut","cre"),
email="maechler@stat.math.ethz.ch", comment = c(ORCID =
"0000-0002-8685-9910")) , person("Werner A.", "Stahel",
role="aut", email="stahel@stat.math.ethz.ch") , person("Rolf",
"Turner", role="ctb", email="r.turner@auckland.ac.nz", comment
= "reclas()") , person("Ueli", "Oetliker", role="ctb", comment
= "original version of BACON() and mvBACON for S+") ,
person("Tobias", "Schoch", role="ctb", comment =
"init.sel=\"V2\" for BACON; fix alpha") )
Maintainer: Martin Maechler <maechler@stat.math.ethz.ch>
Description: Robustness -- 'eXperimental', 'eXtraneous', or
'eXtraordinary' Functionality for Robust Statistics. Hence
methods which are not well established, often related to
methods in package 'robustbase'. Amazingly, 'BACON()',
originally by Billor, Hadi, and Velleman (2000)
<doi:10.1016/S0167-9473(99)00101-2> has become established in
places. The "barrow wheel" `rbwheel()` is from Stahel and
Mächler (2009) <doi:10.1111/j.1467-9868.2009.00706.x>.
Imports: grDevices, graphics, stats, utils, robustbase (>= 0.92-3)
Suggests: MASS, lattice, pcaPP
Enhances: ICS
License: GPL (>= 2)
Encoding: UTF-8
NeedsCompilation: no
Packaged: 2023-06-14 21:41:58 UTC; maechler
Author: Martin Maechler [aut, cre]
(<https://orcid.org/0000-0002-8685-9910>), Werner A. Stahel
[aut], Rolf Turner [ctb] (reclas()), Ueli Oetliker [ctb]
(original version of BACON() and mvBACON for S+), Tobias Schoch
[ctb] (init.sel="V2" for BACON; fix alpha)
Repository: CRAN
Date/Publication: 2023-06-16 07:30:02 UTC
Built: R 4.6.0; ; 2026-02-07 09:56:41 UTC; unix
-- File: /home/hornik/tmp/R.check/r-devel-gcc/Work/build/Packages/robustX/Meta/package.rds
> (ourBLAS <- grepl(print(normalizePath(R.home())),
+ normalizePath(extSoftVersion()[["BLAS"]]), fixed = TRUE))
[1] "/home/hornik/tmp/R.check/r-devel-gcc/Work/build"
[1] TRUE
> ## need extended precision (typically *includes* 64-bit):
> doCheck <- (.Machine$sizeof.longdouble >= 16)
> cat("doCheck (= have long double):", doCheck,"\n")
doCheck (= have long double): TRUE
>
> if(!dev.interactive(orNone=TRUE)) pdf("cov-ex.pdf")
>
> covNN.1 <- robustX:::covNNC1 ## the original definition (2003)
>
> data(iris)
> system.time(cN1 <- covNN.1(iris[-5]))
user system elapsed
0.115 0.016 0.135
> system.time(cN <- covNNC (iris[-5]))# faster indeed
user system elapsed
0.055 0.000 0.061
>
> ## report.and.stop.if.not.all.equal
> report.stopifnot.all.eq <- function(a,b, tol, ...) {
+ call <- sys.call()
+ ae <- all.equal(a,b, tol=tol, ...)
+ call[[1]] <- quote(all.equal)
+ if(!isTRUE(ae))
+ stop(sprintf("Not %s:\n%s\n\n", deparse(call),
+ paste(ae, collapse="\n")),
+ call.=FALSE)
+ ## else
+ TRUE
+ }
>
> UN <- function(L) lapply(L, unname)
>
> chk.NN.new.old <- function(cNew, cNold, tol = 2e-15, tol.1 = 20*tol) {
+ stopifnot(is.list(cNold$innc), length(n.i <- names(cNold$innc)) == 4)
+ cat("classification accordance matrix:\n")
+ print(table(new = cNew $classification,
+ old = cNold$classification))
+ report.stopifnot.all.eq(UN(cNew [1:4]),
+ UN(cNold[1:4]), tol=tol.1) &
+ report.stopifnot.all.eq(cNew $innc[n.i],
+ cNold$innc[n.i], tol=tol)
+ }
>
> summ.NN <- function(cNN, digits = 3) {
+ cbind(class = cNN$classification,
+ pprob = round(cNN$postprob, digits),
+ incc.p= round(cNN$innc$postprob, digits))
+ }
>
> s1 <- summ.NN(cN1)
> ss <- summ.NN(cN)
> if(isTRUE(all.equal(ss, s1))) ss else cbind(ss, s1)
class pprob incc.p class pprob incc.p
[1,] 1 1.000 1.000 1 1.000 1.000
[2,] 1 1.000 1.000 1 1.000 1.000
[3,] 1 1.000 1.000 1 1.000 1.000
[4,] 1 1.000 1.000 1 1.000 1.000
[5,] 1 1.000 1.000 1 1.000 1.000
[6,] 1 1.000 0.171 1 1.000 0.171
[7,] 1 1.000 1.000 1 1.000 1.000
[8,] 1 1.000 1.000 1 1.000 1.000
[9,] 1 1.000 1.000 1 1.000 1.000
[10,] 1 1.000 1.000 1 1.000 1.000
[11,] 1 1.000 1.000 1 1.000 1.000
[12,] 1 1.000 1.000 1 1.000 1.000
[13,] 1 1.000 1.000 1 1.000 1.000
[14,] 1 1.000 1.000 1 1.000 1.000
[15,] 1 1.000 0.000 1 0.998 0.000
[16,] 0 0.000 0.000 0 0.000 0.000
[17,] 1 1.000 0.718 1 1.000 0.718
[18,] 1 1.000 1.000 1 1.000 1.000
[19,] 1 1.000 0.002 1 1.000 0.002
[20,] 1 1.000 1.000 1 1.000 1.000
[21,] 1 1.000 1.000 1 1.000 1.000
[22,] 1 1.000 1.000 1 1.000 1.000
[23,] 1 1.000 1.000 1 1.000 1.000
[24,] 1 1.000 1.000 1 1.000 1.000
[25,] 1 1.000 1.000 1 1.000 1.000
[26,] 1 1.000 1.000 1 1.000 1.000
[27,] 1 1.000 1.000 1 1.000 1.000
[28,] 1 1.000 1.000 1 1.000 1.000
[29,] 1 1.000 1.000 1 1.000 1.000
[30,] 1 1.000 1.000 1 1.000 1.000
[31,] 1 1.000 1.000 1 1.000 1.000
[32,] 1 1.000 1.000 1 1.000 1.000
[33,] 1 1.000 0.000 1 1.000 0.000
[34,] 0 0.000 0.000 0 0.000 0.000
[35,] 1 1.000 1.000 1 1.000 1.000
[36,] 1 1.000 1.000 1 1.000 1.000
[37,] 1 1.000 1.000 1 1.000 1.000
[38,] 1 1.000 1.000 1 1.000 1.000
[39,] 1 1.000 1.000 1 1.000 1.000
[40,] 1 1.000 1.000 1 1.000 1.000
[41,] 1 1.000 1.000 1 1.000 1.000
[42,] 0 0.000 0.000 0 0.000 0.000
[43,] 1 1.000 1.000 1 1.000 1.000
[44,] 1 1.000 1.000 1 1.000 1.000
[45,] 1 1.000 1.000 1 1.000 1.000
[46,] 1 1.000 1.000 1 1.000 1.000
[47,] 1 1.000 1.000 1 1.000 1.000
[48,] 1 1.000 1.000 1 1.000 1.000
[49,] 1 1.000 1.000 1 1.000 1.000
[50,] 1 1.000 1.000 1 1.000 1.000
[51,] 1 1.000 0.058 1 1.000 0.058
[52,] 1 1.000 1.000 1 1.000 1.000
[53,] 1 1.000 1.000 1 1.000 1.000
[54,] 1 1.000 0.773 1 1.000 0.773
[55,] 1 1.000 1.000 1 1.000 1.000
[56,] 1 1.000 1.000 1 1.000 1.000
[57,] 1 1.000 0.999 1 1.000 0.999
[58,] 1 1.000 0.000 1 1.000 0.000
[59,] 1 1.000 1.000 1 1.000 1.000
[60,] 1 1.000 1.000 1 1.000 1.000
[61,] 0 0.000 0.000 0 0.000 0.000
[62,] 1 1.000 1.000 1 1.000 1.000
[63,] 1 0.611 0.000 0 0.000 0.000
[64,] 1 1.000 1.000 1 1.000 1.000
[65,] 1 1.000 1.000 1 1.000 1.000
[66,] 1 1.000 1.000 1 1.000 1.000
[67,] 1 1.000 1.000 1 1.000 1.000
[68,] 1 1.000 1.000 1 1.000 1.000
[69,] 1 0.786 0.000 0 0.000 0.000
[70,] 1 1.000 1.000 1 1.000 1.000
[71,] 1 1.000 1.000 1 1.000 1.000
[72,] 1 1.000 1.000 1 1.000 1.000
[73,] 1 1.000 1.000 1 1.000 1.000
[74,] 1 1.000 1.000 1 1.000 1.000
[75,] 1 1.000 1.000 1 1.000 1.000
[76,] 1 1.000 1.000 1 1.000 1.000
[77,] 1 1.000 1.000 1 1.000 1.000
[78,] 1 1.000 1.000 1 1.000 1.000
[79,] 1 1.000 1.000 1 1.000 1.000
[80,] 1 1.000 1.000 1 1.000 1.000
[81,] 1 1.000 1.000 1 1.000 1.000
[82,] 1 1.000 0.999 1 1.000 0.999
[83,] 1 1.000 1.000 1 1.000 1.000
[84,] 1 1.000 1.000 1 1.000 1.000
[85,] 1 1.000 1.000 1 1.000 1.000
[86,] 1 1.000 0.000 1 1.000 0.000
[87,] 1 1.000 1.000 1 1.000 1.000
[88,] 1 1.000 0.000 1 1.000 0.000
[89,] 1 1.000 1.000 1 1.000 1.000
[90,] 1 1.000 1.000 1 1.000 1.000
[91,] 1 1.000 1.000 1 1.000 1.000
[92,] 1 1.000 1.000 1 1.000 1.000
[93,] 1 1.000 1.000 1 1.000 1.000
[94,] 1 0.944 0.000 0 0.001 0.000
[95,] 1 1.000 1.000 1 1.000 1.000
[96,] 1 1.000 1.000 1 1.000 1.000
[97,] 1 1.000 1.000 1 1.000 1.000
[98,] 1 1.000 1.000 1 1.000 1.000
[99,] 1 1.000 0.000 1 1.000 0.000
[100,] 1 1.000 1.000 1 1.000 1.000
[101,] 1 1.000 0.000 1 1.000 0.000
[102,] 1 1.000 1.000 1 1.000 1.000
[103,] 1 1.000 1.000 1 1.000 1.000
[104,] 1 1.000 1.000 1 1.000 1.000
[105,] 1 1.000 1.000 1 1.000 1.000
[106,] 1 1.000 0.000 1 0.998 0.000
[107,] 1 1.000 0.000 0 0.317 0.000
[108,] 1 1.000 0.000 1 1.000 0.000
[109,] 1 1.000 0.000 1 0.999 0.000
[110,] 0 0.000 0.000 0 0.000 0.000
[111,] 1 1.000 1.000 1 1.000 1.000
[112,] 1 1.000 1.000 1 1.000 1.000
[113,] 1 1.000 1.000 1 1.000 1.000
[114,] 1 1.000 0.000 1 1.000 0.000
[115,] 1 1.000 0.899 1 1.000 0.899
[116,] 1 1.000 1.000 1 1.000 1.000
[117,] 1 1.000 1.000 1 1.000 1.000
[118,] 0 0.000 0.000 0 0.000 0.000
[119,] 0 0.000 0.000 0 0.000 0.000
[120,] 0 0.028 0.000 0 0.000 0.000
[121,] 1 1.000 1.000 1 1.000 1.000
[122,] 1 1.000 1.000 1 1.000 1.000
[123,] 0 0.000 0.000 0 0.000 0.000
[124,] 1 1.000 1.000 1 1.000 1.000
[125,] 1 1.000 1.000 1 1.000 1.000
[126,] 1 1.000 0.229 1 1.000 0.229
[127,] 1 1.000 1.000 1 1.000 1.000
[128,] 1 1.000 1.000 1 1.000 1.000
[129,] 1 1.000 1.000 1 1.000 1.000
[130,] 1 1.000 0.702 1 1.000 0.702
[131,] 1 1.000 0.000 0 0.357 0.000
[132,] 0 0.000 0.000 0 0.000 0.000
[133,] 1 1.000 1.000 1 1.000 1.000
[134,] 1 1.000 1.000 1 1.000 1.000
[135,] 1 1.000 0.818 1 1.000 0.818
[136,] 1 1.000 0.000 1 0.999 0.000
[137,] 1 1.000 0.000 1 1.000 0.000
[138,] 1 1.000 1.000 1 1.000 1.000
[139,] 1 1.000 1.000 1 1.000 1.000
[140,] 1 1.000 1.000 1 1.000 1.000
[141,] 1 1.000 1.000 1 1.000 1.000
[142,] 1 1.000 1.000 1 1.000 1.000
[143,] 1 1.000 1.000 1 1.000 1.000
[144,] 1 1.000 1.000 1 1.000 1.000
[145,] 1 1.000 1.000 1 1.000 1.000
[146,] 1 1.000 1.000 1 1.000 1.000
[147,] 1 1.000 0.991 1 1.000 0.991
[148,] 1 1.000 1.000 1 1.000 1.000
[149,] 1 1.000 0.000 1 1.000 0.000
[150,] 1 1.000 1.000 1 1.000 1.000
>
>
> try( # testing (tol=0 too small)
+ chk.NN.new.old(cN, cN1, tol=0)
+ )
classification accordance matrix:
old
new 0 1
0 10 0
1 5 135
Error : Not all.equal(UN(cNew[1:4]), UN(cNold[1:4]), tol = tol.1):
Component "cov": Mean relative difference: 0.01479474
Component "mu": Mean relative difference: 0.003191909
Component "postprob": Mean relative difference: 0.1351993
Component "classification": Mean relative difference: 1
> ## This used to fail when we use R's instead of BLAS matrix products:
> if(doCheck)
+ chk.NN.new.old(cN, cN1, tol = 4e-15) # seen 1.1e-15 work
classification accordance matrix:
old
new 0 1
0 10 0
1 5 135
Error: Not all.equal(UN(cNew[1:4]), UN(cNold[1:4]), tol = tol.1):
Component "cov": Mean relative difference: 0.01479474
Component "mu": Mean relative difference: 0.003191909
Component "postprob": Mean relative difference: 0.1351993
Component "classification": Mean relative difference: 1
Execution halted
Flavor: r-devel-linux-x86_64-debian-gcc
Version: 1.2-7
Check: tests
Result: ERROR
Running ‘L1med-tst.R’
Running ‘cov-ex.R’
Running the tests in ‘tests/cov-ex.R’ failed.
Complete output:
> library(robustX)
> library(robustbase)
> (newRB <- (packageVersion("robustbase") >= "0.99"))
[1] TRUE
>
> sessionInfo()
R Under development (unstable) (2026-02-04 r89376)
Platform: x86_64-pc-linux-gnu
Running under: Fedora Linux 42 (Workstation Edition)
Matrix products: default
BLAS: /data/gannet/ripley/R/R-clang/lib/libRblas.so
LAPACK: /data/gannet/ripley/R/R-clang/lib/libRlapack.so; LAPACK version 3.12.1
locale:
[1] LC_CTYPE=en_GB.utf8 LC_NUMERIC=C
[3] LC_TIME=en_GB.UTF-8 LC_COLLATE=C
[5] LC_MONETARY=en_GB.UTF-8 LC_MESSAGES=en_GB.UTF-8
[7] LC_PAPER=en_GB.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_GB.UTF-8 LC_IDENTIFICATION=C
time zone: Europe/London
tzcode source: system (glibc)
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] robustbase_0.99-7 robustX_1.2-7
loaded via a namespace (and not attached):
[1] DEoptimR_1.1-4 compiler_4.6.0
> packageDescription("robustX")
Package: robustX
Type: Package
Title: 'eXtra' / 'eXperimental' Functionality for Robust Statistics
Version: 1.2-7
Date: 2023-06-14
Authors@R: c(person("Martin","Maechler", role=c("aut","cre"),
email="maechler@stat.math.ethz.ch", comment = c(ORCID =
"0000-0002-8685-9910")) , person("Werner A.", "Stahel",
role="aut", email="stahel@stat.math.ethz.ch") , person("Rolf",
"Turner", role="ctb", email="r.turner@auckland.ac.nz", comment
= "reclas()") , person("Ueli", "Oetliker", role="ctb", comment
= "original version of BACON() and mvBACON for S+") ,
person("Tobias", "Schoch", role="ctb", comment =
"init.sel=\"V2\" for BACON; fix alpha") )
Maintainer: Martin Maechler <maechler@stat.math.ethz.ch>
Description: Robustness -- 'eXperimental', 'eXtraneous', or
'eXtraordinary' Functionality for Robust Statistics. Hence
methods which are not well established, often related to
methods in package 'robustbase'. Amazingly, 'BACON()',
originally by Billor, Hadi, and Velleman (2000)
<doi:10.1016/S0167-9473(99)00101-2> has become established in
places. The "barrow wheel" `rbwheel()` is from Stahel and
Mächler (2009) <doi:10.1111/j.1467-9868.2009.00706.x>.
Imports: grDevices, graphics, stats, utils, robustbase (>= 0.92-3)
Suggests: MASS, lattice, pcaPP
Enhances: ICS
License: GPL (>= 2)
Encoding: UTF-8
NeedsCompilation: no
Packaged: 2023-06-14 21:41:58 UTC; maechler
Author: Martin Maechler [aut, cre]
(<https://orcid.org/0000-0002-8685-9910>), Werner A. Stahel
[aut], Rolf Turner [ctb] (reclas()), Ueli Oetliker [ctb]
(original version of BACON() and mvBACON for S+), Tobias Schoch
[ctb] (init.sel="V2" for BACON; fix alpha)
Repository: CRAN
Date/Publication: 2023-06-16 07:30:02 UTC
Built: R 4.6.0; ; 2026-02-05 19:29:48 UTC; unix
-- File: /data/gannet/ripley/R/packages/tests-clang/robustX.Rcheck/robustX/Meta/package.rds
> (ourBLAS <- grepl(print(normalizePath(R.home())),
+ normalizePath(extSoftVersion()[["BLAS"]]), fixed = TRUE))
[1] "/data/gannet/ripley/R/R-clang"
[1] TRUE
> ## need extended precision (typically *includes* 64-bit):
> doCheck <- (.Machine$sizeof.longdouble >= 16)
> cat("doCheck (= have long double):", doCheck,"\n")
doCheck (= have long double): TRUE
>
> if(!dev.interactive(orNone=TRUE)) pdf("cov-ex.pdf")
>
> covNN.1 <- robustX:::covNNC1 ## the original definition (2003)
>
> data(iris)
> system.time(cN1 <- covNN.1(iris[-5]))
user system elapsed
0.342 0.099 1.223
> system.time(cN <- covNNC (iris[-5]))# faster indeed
user system elapsed
0.181 0.002 2.148
>
> ## report.and.stop.if.not.all.equal
> report.stopifnot.all.eq <- function(a,b, tol, ...) {
+ call <- sys.call()
+ ae <- all.equal(a,b, tol=tol, ...)
+ call[[1]] <- quote(all.equal)
+ if(!isTRUE(ae))
+ stop(sprintf("Not %s:\n%s\n\n", deparse(call),
+ paste(ae, collapse="\n")),
+ call.=FALSE)
+ ## else
+ TRUE
+ }
>
> UN <- function(L) lapply(L, unname)
>
> chk.NN.new.old <- function(cNew, cNold, tol = 2e-15, tol.1 = 20*tol) {
+ stopifnot(is.list(cNold$innc), length(n.i <- names(cNold$innc)) == 4)
+ cat("classification accordance matrix:\n")
+ print(table(new = cNew $classification,
+ old = cNold$classification))
+ report.stopifnot.all.eq(UN(cNew [1:4]),
+ UN(cNold[1:4]), tol=tol.1) &
+ report.stopifnot.all.eq(cNew $innc[n.i],
+ cNold$innc[n.i], tol=tol)
+ }
>
> summ.NN <- function(cNN, digits = 3) {
+ cbind(class = cNN$classification,
+ pprob = round(cNN$postprob, digits),
+ incc.p= round(cNN$innc$postprob, digits))
+ }
>
> s1 <- summ.NN(cN1)
> ss <- summ.NN(cN)
> if(isTRUE(all.equal(ss, s1))) ss else cbind(ss, s1)
class pprob incc.p class pprob incc.p
[1,] 1 1.000 1.000 1 1.000 1.000
[2,] 1 1.000 1.000 1 1.000 1.000
[3,] 1 1.000 1.000 1 1.000 1.000
[4,] 1 1.000 1.000 1 1.000 1.000
[5,] 1 1.000 1.000 1 1.000 1.000
[6,] 1 1.000 0.171 1 1.000 0.171
[7,] 1 1.000 1.000 1 1.000 1.000
[8,] 1 1.000 1.000 1 1.000 1.000
[9,] 1 1.000 1.000 1 1.000 1.000
[10,] 1 1.000 1.000 1 1.000 1.000
[11,] 1 1.000 1.000 1 1.000 1.000
[12,] 1 1.000 1.000 1 1.000 1.000
[13,] 1 1.000 1.000 1 1.000 1.000
[14,] 1 1.000 1.000 1 1.000 1.000
[15,] 1 1.000 0.000 1 0.998 0.000
[16,] 0 0.000 0.000 0 0.000 0.000
[17,] 1 1.000 0.718 1 1.000 0.718
[18,] 1 1.000 1.000 1 1.000 1.000
[19,] 1 1.000 0.002 1 1.000 0.002
[20,] 1 1.000 1.000 1 1.000 1.000
[21,] 1 1.000 1.000 1 1.000 1.000
[22,] 1 1.000 1.000 1 1.000 1.000
[23,] 1 1.000 1.000 1 1.000 1.000
[24,] 1 1.000 1.000 1 1.000 1.000
[25,] 1 1.000 1.000 1 1.000 1.000
[26,] 1 1.000 1.000 1 1.000 1.000
[27,] 1 1.000 1.000 1 1.000 1.000
[28,] 1 1.000 1.000 1 1.000 1.000
[29,] 1 1.000 1.000 1 1.000 1.000
[30,] 1 1.000 1.000 1 1.000 1.000
[31,] 1 1.000 1.000 1 1.000 1.000
[32,] 1 1.000 1.000 1 1.000 1.000
[33,] 1 1.000 0.000 1 1.000 0.000
[34,] 0 0.000 0.000 0 0.000 0.000
[35,] 1 1.000 1.000 1 1.000 1.000
[36,] 1 1.000 1.000 1 1.000 1.000
[37,] 1 1.000 1.000 1 1.000 1.000
[38,] 1 1.000 1.000 1 1.000 1.000
[39,] 1 1.000 1.000 1 1.000 1.000
[40,] 1 1.000 1.000 1 1.000 1.000
[41,] 1 1.000 1.000 1 1.000 1.000
[42,] 0 0.000 0.000 0 0.000 0.000
[43,] 1 1.000 1.000 1 1.000 1.000
[44,] 1 1.000 1.000 1 1.000 1.000
[45,] 1 1.000 1.000 1 1.000 1.000
[46,] 1 1.000 1.000 1 1.000 1.000
[47,] 1 1.000 1.000 1 1.000 1.000
[48,] 1 1.000 1.000 1 1.000 1.000
[49,] 1 1.000 1.000 1 1.000 1.000
[50,] 1 1.000 1.000 1 1.000 1.000
[51,] 1 1.000 0.058 1 1.000 0.058
[52,] 1 1.000 1.000 1 1.000 1.000
[53,] 1 1.000 1.000 1 1.000 1.000
[54,] 1 1.000 0.773 1 1.000 0.773
[55,] 1 1.000 1.000 1 1.000 1.000
[56,] 1 1.000 1.000 1 1.000 1.000
[57,] 1 1.000 0.999 1 1.000 0.999
[58,] 1 1.000 0.000 1 1.000 0.000
[59,] 1 1.000 1.000 1 1.000 1.000
[60,] 1 1.000 1.000 1 1.000 1.000
[61,] 0 0.000 0.000 0 0.000 0.000
[62,] 1 1.000 1.000 1 1.000 1.000
[63,] 1 0.611 0.000 0 0.000 0.000
[64,] 1 1.000 1.000 1 1.000 1.000
[65,] 1 1.000 1.000 1 1.000 1.000
[66,] 1 1.000 1.000 1 1.000 1.000
[67,] 1 1.000 1.000 1 1.000 1.000
[68,] 1 1.000 1.000 1 1.000 1.000
[69,] 1 0.786 0.000 0 0.000 0.000
[70,] 1 1.000 1.000 1 1.000 1.000
[71,] 1 1.000 1.000 1 1.000 1.000
[72,] 1 1.000 1.000 1 1.000 1.000
[73,] 1 1.000 1.000 1 1.000 1.000
[74,] 1 1.000 1.000 1 1.000 1.000
[75,] 1 1.000 1.000 1 1.000 1.000
[76,] 1 1.000 1.000 1 1.000 1.000
[77,] 1 1.000 1.000 1 1.000 1.000
[78,] 1 1.000 1.000 1 1.000 1.000
[79,] 1 1.000 1.000 1 1.000 1.000
[80,] 1 1.000 1.000 1 1.000 1.000
[81,] 1 1.000 1.000 1 1.000 1.000
[82,] 1 1.000 0.999 1 1.000 0.999
[83,] 1 1.000 1.000 1 1.000 1.000
[84,] 1 1.000 1.000 1 1.000 1.000
[85,] 1 1.000 1.000 1 1.000 1.000
[86,] 1 1.000 0.000 1 1.000 0.000
[87,] 1 1.000 1.000 1 1.000 1.000
[88,] 1 1.000 0.000 1 1.000 0.000
[89,] 1 1.000 1.000 1 1.000 1.000
[90,] 1 1.000 1.000 1 1.000 1.000
[91,] 1 1.000 1.000 1 1.000 1.000
[92,] 1 1.000 1.000 1 1.000 1.000
[93,] 1 1.000 1.000 1 1.000 1.000
[94,] 1 0.944 0.000 0 0.001 0.000
[95,] 1 1.000 1.000 1 1.000 1.000
[96,] 1 1.000 1.000 1 1.000 1.000
[97,] 1 1.000 1.000 1 1.000 1.000
[98,] 1 1.000 1.000 1 1.000 1.000
[99,] 1 1.000 0.000 1 1.000 0.000
[100,] 1 1.000 1.000 1 1.000 1.000
[101,] 1 1.000 0.000 1 1.000 0.000
[102,] 1 1.000 1.000 1 1.000 1.000
[103,] 1 1.000 1.000 1 1.000 1.000
[104,] 1 1.000 1.000 1 1.000 1.000
[105,] 1 1.000 1.000 1 1.000 1.000
[106,] 1 1.000 0.000 1 0.998 0.000
[107,] 1 1.000 0.000 0 0.317 0.000
[108,] 1 1.000 0.000 1 1.000 0.000
[109,] 1 1.000 0.000 1 0.999 0.000
[110,] 0 0.000 0.000 0 0.000 0.000
[111,] 1 1.000 1.000 1 1.000 1.000
[112,] 1 1.000 1.000 1 1.000 1.000
[113,] 1 1.000 1.000 1 1.000 1.000
[114,] 1 1.000 0.000 1 1.000 0.000
[115,] 1 1.000 0.899 1 1.000 0.899
[116,] 1 1.000 1.000 1 1.000 1.000
[117,] 1 1.000 1.000 1 1.000 1.000
[118,] 0 0.000 0.000 0 0.000 0.000
[119,] 0 0.000 0.000 0 0.000 0.000
[120,] 0 0.028 0.000 0 0.000 0.000
[121,] 1 1.000 1.000 1 1.000 1.000
[122,] 1 1.000 1.000 1 1.000 1.000
[123,] 0 0.000 0.000 0 0.000 0.000
[124,] 1 1.000 1.000 1 1.000 1.000
[125,] 1 1.000 1.000 1 1.000 1.000
[126,] 1 1.000 0.229 1 1.000 0.229
[127,] 1 1.000 1.000 1 1.000 1.000
[128,] 1 1.000 1.000 1 1.000 1.000
[129,] 1 1.000 1.000 1 1.000 1.000
[130,] 1 1.000 0.702 1 1.000 0.702
[131,] 1 1.000 0.000 0 0.357 0.000
[132,] 0 0.000 0.000 0 0.000 0.000
[133,] 1 1.000 1.000 1 1.000 1.000
[134,] 1 1.000 1.000 1 1.000 1.000
[135,] 1 1.000 0.818 1 1.000 0.818
[136,] 1 1.000 0.000 1 0.999 0.000
[137,] 1 1.000 0.000 1 1.000 0.000
[138,] 1 1.000 1.000 1 1.000 1.000
[139,] 1 1.000 1.000 1 1.000 1.000
[140,] 1 1.000 1.000 1 1.000 1.000
[141,] 1 1.000 1.000 1 1.000 1.000
[142,] 1 1.000 1.000 1 1.000 1.000
[143,] 1 1.000 1.000 1 1.000 1.000
[144,] 1 1.000 1.000 1 1.000 1.000
[145,] 1 1.000 1.000 1 1.000 1.000
[146,] 1 1.000 1.000 1 1.000 1.000
[147,] 1 1.000 0.991 1 1.000 0.991
[148,] 1 1.000 1.000 1 1.000 1.000
[149,] 1 1.000 0.000 1 1.000 0.000
[150,] 1 1.000 1.000 1 1.000 1.000
>
>
> try( # testing (tol=0 too small)
+ chk.NN.new.old(cN, cN1, tol=0)
+ )
classification accordance matrix:
old
new 0 1
0 10 0
1 5 135
Error : Not all.equal(UN(cNew[1:4]), UN(cNold[1:4]), tol = tol.1):
Component "cov": Mean relative difference: 0.01479474
Component "mu": Mean relative difference: 0.003191909
Component "postprob": Mean relative difference: 0.1351993
Component "classification": Mean relative difference: 1
> ## This used to fail when we use R's instead of BLAS matrix products:
> if(doCheck)
+ chk.NN.new.old(cN, cN1, tol = 4e-15) # seen 1.1e-15 work
classification accordance matrix:
old
new 0 1
0 10 0
1 5 135
Error: Not all.equal(UN(cNew[1:4]), UN(cNold[1:4]), tol = tol.1):
Component "cov": Mean relative difference: 0.01479474
Component "mu": Mean relative difference: 0.003191909
Component "postprob": Mean relative difference: 0.1351993
Component "classification": Mean relative difference: 1
Execution halted
Flavor: r-devel-linux-x86_64-fedora-clang
Version: 1.2-7
Check: tests
Result: ERROR
Running ‘L1med-tst.R’
Running ‘cov-ex.R’
Running the tests in ‘tests/cov-ex.R’ failed.
Complete output:
> library(robustX)
> library(robustbase)
> (newRB <- (packageVersion("robustbase") >= "0.99"))
[1] TRUE
>
> sessionInfo()
R Under development (unstable) (2026-02-04 r89376)
Platform: x86_64-pc-linux-gnu
Running under: Fedora Linux 42 (Workstation Edition)
Matrix products: default
BLAS: /data/gannet/ripley/R/R-devel/lib/libRblas.so
LAPACK: /usr/lib64/liblapack.so.3.12.0 LAPACK version 3.12.0
locale:
[1] LC_CTYPE=en_GB.utf8 LC_NUMERIC=C
[3] LC_TIME=en_GB.UTF-8 LC_COLLATE=C
[5] LC_MONETARY=en_GB.UTF-8 LC_MESSAGES=en_GB.UTF-8
[7] LC_PAPER=en_GB.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_GB.UTF-8 LC_IDENTIFICATION=C
time zone: Europe/London
tzcode source: system (glibc)
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] robustbase_0.99-7 robustX_1.2-7
loaded via a namespace (and not attached):
[1] DEoptimR_1.1-4 compiler_4.6.0
> packageDescription("robustX")
Package: robustX
Type: Package
Title: 'eXtra' / 'eXperimental' Functionality for Robust Statistics
Version: 1.2-7
Date: 2023-06-14
Authors@R: c(person("Martin","Maechler", role=c("aut","cre"),
email="maechler@stat.math.ethz.ch", comment = c(ORCID =
"0000-0002-8685-9910")) , person("Werner A.", "Stahel",
role="aut", email="stahel@stat.math.ethz.ch") , person("Rolf",
"Turner", role="ctb", email="r.turner@auckland.ac.nz", comment
= "reclas()") , person("Ueli", "Oetliker", role="ctb", comment
= "original version of BACON() and mvBACON for S+") ,
person("Tobias", "Schoch", role="ctb", comment =
"init.sel=\"V2\" for BACON; fix alpha") )
Maintainer: Martin Maechler <maechler@stat.math.ethz.ch>
Description: Robustness -- 'eXperimental', 'eXtraneous', or
'eXtraordinary' Functionality for Robust Statistics. Hence
methods which are not well established, often related to
methods in package 'robustbase'. Amazingly, 'BACON()',
originally by Billor, Hadi, and Velleman (2000)
<doi:10.1016/S0167-9473(99)00101-2> has become established in
places. The "barrow wheel" `rbwheel()` is from Stahel and
Mächler (2009) <doi:10.1111/j.1467-9868.2009.00706.x>.
Imports: grDevices, graphics, stats, utils, robustbase (>= 0.92-3)
Suggests: MASS, lattice, pcaPP
Enhances: ICS
License: GPL (>= 2)
Encoding: UTF-8
NeedsCompilation: no
Packaged: 2023-06-14 21:41:58 UTC; maechler
Author: Martin Maechler [aut, cre]
(<https://orcid.org/0000-0002-8685-9910>), Werner A. Stahel
[aut], Rolf Turner [ctb] (reclas()), Ueli Oetliker [ctb]
(original version of BACON() and mvBACON for S+), Tobias Schoch
[ctb] (init.sel="V2" for BACON; fix alpha)
Repository: CRAN
Date/Publication: 2023-06-16 07:30:02 UTC
Built: R 4.6.0; ; 2026-02-05 10:09:59 UTC; unix
-- File: /data/gannet/ripley/R/packages/tests-devel/robustX.Rcheck/robustX/Meta/package.rds
> (ourBLAS <- grepl(print(normalizePath(R.home())),
+ normalizePath(extSoftVersion()[["BLAS"]]), fixed = TRUE))
[1] "/data/gannet/ripley/R/R-devel"
[1] TRUE
> ## need extended precision (typically *includes* 64-bit):
> doCheck <- (.Machine$sizeof.longdouble >= 16)
> cat("doCheck (= have long double):", doCheck,"\n")
doCheck (= have long double): TRUE
>
> if(!dev.interactive(orNone=TRUE)) pdf("cov-ex.pdf")
>
> covNN.1 <- robustX:::covNNC1 ## the original definition (2003)
>
> data(iris)
> system.time(cN1 <- covNN.1(iris[-5]))
user system elapsed
0.363 0.111 1.149
> system.time(cN <- covNNC (iris[-5]))# faster indeed
user system elapsed
0.167 0.000 0.371
>
> ## report.and.stop.if.not.all.equal
> report.stopifnot.all.eq <- function(a,b, tol, ...) {
+ call <- sys.call()
+ ae <- all.equal(a,b, tol=tol, ...)
+ call[[1]] <- quote(all.equal)
+ if(!isTRUE(ae))
+ stop(sprintf("Not %s:\n%s\n\n", deparse(call),
+ paste(ae, collapse="\n")),
+ call.=FALSE)
+ ## else
+ TRUE
+ }
>
> UN <- function(L) lapply(L, unname)
>
> chk.NN.new.old <- function(cNew, cNold, tol = 2e-15, tol.1 = 20*tol) {
+ stopifnot(is.list(cNold$innc), length(n.i <- names(cNold$innc)) == 4)
+ cat("classification accordance matrix:\n")
+ print(table(new = cNew $classification,
+ old = cNold$classification))
+ report.stopifnot.all.eq(UN(cNew [1:4]),
+ UN(cNold[1:4]), tol=tol.1) &
+ report.stopifnot.all.eq(cNew $innc[n.i],
+ cNold$innc[n.i], tol=tol)
+ }
>
> summ.NN <- function(cNN, digits = 3) {
+ cbind(class = cNN$classification,
+ pprob = round(cNN$postprob, digits),
+ incc.p= round(cNN$innc$postprob, digits))
+ }
>
> s1 <- summ.NN(cN1)
> ss <- summ.NN(cN)
> if(isTRUE(all.equal(ss, s1))) ss else cbind(ss, s1)
class pprob incc.p class pprob incc.p
[1,] 1 1.000 1.000 1 1.000 1.000
[2,] 1 1.000 1.000 1 1.000 1.000
[3,] 1 1.000 1.000 1 1.000 1.000
[4,] 1 1.000 1.000 1 1.000 1.000
[5,] 1 1.000 1.000 1 1.000 1.000
[6,] 1 1.000 0.171 1 1.000 0.171
[7,] 1 1.000 1.000 1 1.000 1.000
[8,] 1 1.000 1.000 1 1.000 1.000
[9,] 1 1.000 1.000 1 1.000 1.000
[10,] 1 1.000 1.000 1 1.000 1.000
[11,] 1 1.000 1.000 1 1.000 1.000
[12,] 1 1.000 1.000 1 1.000 1.000
[13,] 1 1.000 1.000 1 1.000 1.000
[14,] 1 1.000 1.000 1 1.000 1.000
[15,] 1 1.000 0.000 1 0.998 0.000
[16,] 0 0.000 0.000 0 0.000 0.000
[17,] 1 1.000 0.718 1 1.000 0.718
[18,] 1 1.000 1.000 1 1.000 1.000
[19,] 1 1.000 0.002 1 1.000 0.002
[20,] 1 1.000 1.000 1 1.000 1.000
[21,] 1 1.000 1.000 1 1.000 1.000
[22,] 1 1.000 1.000 1 1.000 1.000
[23,] 1 1.000 1.000 1 1.000 1.000
[24,] 1 1.000 1.000 1 1.000 1.000
[25,] 1 1.000 1.000 1 1.000 1.000
[26,] 1 1.000 1.000 1 1.000 1.000
[27,] 1 1.000 1.000 1 1.000 1.000
[28,] 1 1.000 1.000 1 1.000 1.000
[29,] 1 1.000 1.000 1 1.000 1.000
[30,] 1 1.000 1.000 1 1.000 1.000
[31,] 1 1.000 1.000 1 1.000 1.000
[32,] 1 1.000 1.000 1 1.000 1.000
[33,] 1 1.000 0.000 1 1.000 0.000
[34,] 0 0.000 0.000 0 0.000 0.000
[35,] 1 1.000 1.000 1 1.000 1.000
[36,] 1 1.000 1.000 1 1.000 1.000
[37,] 1 1.000 1.000 1 1.000 1.000
[38,] 1 1.000 1.000 1 1.000 1.000
[39,] 1 1.000 1.000 1 1.000 1.000
[40,] 1 1.000 1.000 1 1.000 1.000
[41,] 1 1.000 1.000 1 1.000 1.000
[42,] 0 0.000 0.000 0 0.000 0.000
[43,] 1 1.000 1.000 1 1.000 1.000
[44,] 1 1.000 1.000 1 1.000 1.000
[45,] 1 1.000 1.000 1 1.000 1.000
[46,] 1 1.000 1.000 1 1.000 1.000
[47,] 1 1.000 1.000 1 1.000 1.000
[48,] 1 1.000 1.000 1 1.000 1.000
[49,] 1 1.000 1.000 1 1.000 1.000
[50,] 1 1.000 1.000 1 1.000 1.000
[51,] 1 1.000 0.058 1 1.000 0.058
[52,] 1 1.000 1.000 1 1.000 1.000
[53,] 1 1.000 1.000 1 1.000 1.000
[54,] 1 1.000 0.773 1 1.000 0.773
[55,] 1 1.000 1.000 1 1.000 1.000
[56,] 1 1.000 1.000 1 1.000 1.000
[57,] 1 1.000 0.999 1 1.000 0.999
[58,] 1 1.000 0.000 1 1.000 0.000
[59,] 1 1.000 1.000 1 1.000 1.000
[60,] 1 1.000 1.000 1 1.000 1.000
[61,] 0 0.000 0.000 0 0.000 0.000
[62,] 1 1.000 1.000 1 1.000 1.000
[63,] 1 0.611 0.000 0 0.000 0.000
[64,] 1 1.000 1.000 1 1.000 1.000
[65,] 1 1.000 1.000 1 1.000 1.000
[66,] 1 1.000 1.000 1 1.000 1.000
[67,] 1 1.000 1.000 1 1.000 1.000
[68,] 1 1.000 1.000 1 1.000 1.000
[69,] 1 0.786 0.000 0 0.000 0.000
[70,] 1 1.000 1.000 1 1.000 1.000
[71,] 1 1.000 1.000 1 1.000 1.000
[72,] 1 1.000 1.000 1 1.000 1.000
[73,] 1 1.000 1.000 1 1.000 1.000
[74,] 1 1.000 1.000 1 1.000 1.000
[75,] 1 1.000 1.000 1 1.000 1.000
[76,] 1 1.000 1.000 1 1.000 1.000
[77,] 1 1.000 1.000 1 1.000 1.000
[78,] 1 1.000 1.000 1 1.000 1.000
[79,] 1 1.000 1.000 1 1.000 1.000
[80,] 1 1.000 1.000 1 1.000 1.000
[81,] 1 1.000 1.000 1 1.000 1.000
[82,] 1 1.000 0.999 1 1.000 0.999
[83,] 1 1.000 1.000 1 1.000 1.000
[84,] 1 1.000 1.000 1 1.000 1.000
[85,] 1 1.000 1.000 1 1.000 1.000
[86,] 1 1.000 0.000 1 1.000 0.000
[87,] 1 1.000 1.000 1 1.000 1.000
[88,] 1 1.000 0.000 1 1.000 0.000
[89,] 1 1.000 1.000 1 1.000 1.000
[90,] 1 1.000 1.000 1 1.000 1.000
[91,] 1 1.000 1.000 1 1.000 1.000
[92,] 1 1.000 1.000 1 1.000 1.000
[93,] 1 1.000 1.000 1 1.000 1.000
[94,] 1 0.944 0.000 0 0.001 0.000
[95,] 1 1.000 1.000 1 1.000 1.000
[96,] 1 1.000 1.000 1 1.000 1.000
[97,] 1 1.000 1.000 1 1.000 1.000
[98,] 1 1.000 1.000 1 1.000 1.000
[99,] 1 1.000 0.000 1 1.000 0.000
[100,] 1 1.000 1.000 1 1.000 1.000
[101,] 1 1.000 0.000 1 1.000 0.000
[102,] 1 1.000 1.000 1 1.000 1.000
[103,] 1 1.000 1.000 1 1.000 1.000
[104,] 1 1.000 1.000 1 1.000 1.000
[105,] 1 1.000 1.000 1 1.000 1.000
[106,] 1 1.000 0.000 1 0.998 0.000
[107,] 1 1.000 0.000 0 0.317 0.000
[108,] 1 1.000 0.000 1 1.000 0.000
[109,] 1 1.000 0.000 1 0.999 0.000
[110,] 0 0.000 0.000 0 0.000 0.000
[111,] 1 1.000 1.000 1 1.000 1.000
[112,] 1 1.000 1.000 1 1.000 1.000
[113,] 1 1.000 1.000 1 1.000 1.000
[114,] 1 1.000 0.000 1 1.000 0.000
[115,] 1 1.000 0.899 1 1.000 0.899
[116,] 1 1.000 1.000 1 1.000 1.000
[117,] 1 1.000 1.000 1 1.000 1.000
[118,] 0 0.000 0.000 0 0.000 0.000
[119,] 0 0.000 0.000 0 0.000 0.000
[120,] 0 0.028 0.000 0 0.000 0.000
[121,] 1 1.000 1.000 1 1.000 1.000
[122,] 1 1.000 1.000 1 1.000 1.000
[123,] 0 0.000 0.000 0 0.000 0.000
[124,] 1 1.000 1.000 1 1.000 1.000
[125,] 1 1.000 1.000 1 1.000 1.000
[126,] 1 1.000 0.229 1 1.000 0.229
[127,] 1 1.000 1.000 1 1.000 1.000
[128,] 1 1.000 1.000 1 1.000 1.000
[129,] 1 1.000 1.000 1 1.000 1.000
[130,] 1 1.000 0.702 1 1.000 0.702
[131,] 1 1.000 0.000 0 0.357 0.000
[132,] 0 0.000 0.000 0 0.000 0.000
[133,] 1 1.000 1.000 1 1.000 1.000
[134,] 1 1.000 1.000 1 1.000 1.000
[135,] 1 1.000 0.818 1 1.000 0.818
[136,] 1 1.000 0.000 1 0.999 0.000
[137,] 1 1.000 0.000 1 1.000 0.000
[138,] 1 1.000 1.000 1 1.000 1.000
[139,] 1 1.000 1.000 1 1.000 1.000
[140,] 1 1.000 1.000 1 1.000 1.000
[141,] 1 1.000 1.000 1 1.000 1.000
[142,] 1 1.000 1.000 1 1.000 1.000
[143,] 1 1.000 1.000 1 1.000 1.000
[144,] 1 1.000 1.000 1 1.000 1.000
[145,] 1 1.000 1.000 1 1.000 1.000
[146,] 1 1.000 1.000 1 1.000 1.000
[147,] 1 1.000 0.991 1 1.000 0.991
[148,] 1 1.000 1.000 1 1.000 1.000
[149,] 1 1.000 0.000 1 1.000 0.000
[150,] 1 1.000 1.000 1 1.000 1.000
>
>
> try( # testing (tol=0 too small)
+ chk.NN.new.old(cN, cN1, tol=0)
+ )
classification accordance matrix:
old
new 0 1
0 10 0
1 5 135
Error : Not all.equal(UN(cNew[1:4]), UN(cNold[1:4]), tol = tol.1):
Component "cov": Mean relative difference: 0.01479474
Component "mu": Mean relative difference: 0.003191909
Component "postprob": Mean relative difference: 0.1351993
Component "classification": Mean relative difference: 1
> ## This used to fail when we use R's instead of BLAS matrix products:
> if(doCheck)
+ chk.NN.new.old(cN, cN1, tol = 4e-15) # seen 1.1e-15 work
classification accordance matrix:
old
new 0 1
0 10 0
1 5 135
Error: Not all.equal(UN(cNew[1:4]), UN(cNold[1:4]), tol = tol.1):
Component "cov": Mean relative difference: 0.01479474
Component "mu": Mean relative difference: 0.003191909
Component "postprob": Mean relative difference: 0.1351993
Component "classification": Mean relative difference: 1
Execution halted
Flavor: r-devel-linux-x86_64-fedora-gcc
Version: 1.2-7
Check: tests
Result: ERROR
Running 'L1med-tst.R' [1s]
Running 'cov-ex.R' [1s]
Running the tests in 'tests/cov-ex.R' failed.
Complete output:
> library(robustX)
> library(robustbase)
> (newRB <- (packageVersion("robustbase") >= "0.99"))
[1] TRUE
>
> sessionInfo()
R Under development (unstable) (2026-02-04 r89376 ucrt)
Platform: x86_64-w64-mingw32/x64
Running under: Windows Server 2022 x64 (build 20348)
Matrix products: default
LAPACK version 3.12.1
locale:
[1] LC_COLLATE=C LC_CTYPE=German_Germany.utf8
[3] LC_MONETARY=C LC_NUMERIC=C
[5] LC_TIME=C
time zone: Europe/Berlin
tzcode source: internal
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] robustbase_0.99-6 robustX_1.2-7
loaded via a namespace (and not attached):
[1] DEoptimR_1.1-4 compiler_4.6.0
> packageDescription("robustX")
Package: robustX
Type: Package
Title: 'eXtra' / 'eXperimental' Functionality for Robust Statistics
Version: 1.2-7
Date: 2023-06-14
Authors@R: c(person("Martin","Maechler", role=c("aut","cre"),
email="maechler@stat.math.ethz.ch", comment = c(ORCID =
"0000-0002-8685-9910")) , person("Werner A.", "Stahel",
role="aut", email="stahel@stat.math.ethz.ch") , person("Rolf",
"Turner", role="ctb", email="r.turner@auckland.ac.nz", comment
= "reclas()") , person("Ueli", "Oetliker", role="ctb", comment
= "original version of BACON() and mvBACON for S+") ,
person("Tobias", "Schoch", role="ctb", comment =
"init.sel=\"V2\" for BACON; fix alpha") )
Maintainer: Martin Maechler <maechler@stat.math.ethz.ch>
Description: Robustness -- 'eXperimental', 'eXtraneous', or
'eXtraordinary' Functionality for Robust Statistics. Hence
methods which are not well established, often related to
methods in package 'robustbase'. Amazingly, 'BACON()',
originally by Billor, Hadi, and Velleman (2000)
<doi:10.1016/S0167-9473(99)00101-2> has become established in
places. The "barrow wheel" `rbwheel()` is from Stahel and
Mächler (2009) <doi:10.1111/j.1467-9868.2009.00706.x>.
Imports: grDevices, graphics, stats, utils, robustbase (>= 0.92-3)
Suggests: MASS, lattice, pcaPP
Enhances: ICS
License: GPL (>= 2)
Encoding: UTF-8
NeedsCompilation: no
Packaged: 2023-06-14 21:41:58 UTC; maechler
Author: Martin Maechler [aut, cre]
(<https://orcid.org/0000-0002-8685-9910>), Werner A. Stahel
[aut], Rolf Turner [ctb] (reclas()), Ueli Oetliker [ctb]
(original version of BACON() and mvBACON for S+), Tobias Schoch
[ctb] (init.sel="V2" for BACON; fix alpha)
Repository: CRAN
Date/Publication: 2023-06-16 07:30:02 UTC
Built: R 4.6.0; ; 2026-02-05 03:19:42 UTC; windows
-- File: D:/RCompile/CRANpkg/lib/4.6/robustX/Meta/package.rds
> (ourBLAS <- grepl(print(normalizePath(R.home())),
+ normalizePath(extSoftVersion()[["BLAS"]]), fixed = TRUE))
[1] "D:\\RCompile\\recent\\R"
[1] FALSE
Warning message:
In normalizePath(path.expand(path), winslash, mustWork) :
path[1]="": Das System kann den angegebenen Pfad nicht finden
> ## need extended precision (typically *includes* 64-bit):
> doCheck <- (.Machine$sizeof.longdouble >= 16)
> cat("doCheck (= have long double):", doCheck,"\n")
doCheck (= have long double): TRUE
>
> if(!dev.interactive(orNone=TRUE)) pdf("cov-ex.pdf")
>
> covNN.1 <- robustX:::covNNC1 ## the original definition (2003)
>
> data(iris)
> system.time(cN1 <- covNN.1(iris[-5]))
user system elapsed
0.17 0.00 0.17
> system.time(cN <- covNNC (iris[-5]))# faster indeed
user system elapsed
0.07 0.00 0.08
>
> ## report.and.stop.if.not.all.equal
> report.stopifnot.all.eq <- function(a,b, tol, ...) {
+ call <- sys.call()
+ ae <- all.equal(a,b, tol=tol, ...)
+ call[[1]] <- quote(all.equal)
+ if(!isTRUE(ae))
+ stop(sprintf("Not %s:\n%s\n\n", deparse(call),
+ paste(ae, collapse="\n")),
+ call.=FALSE)
+ ## else
+ TRUE
+ }
>
> UN <- function(L) lapply(L, unname)
>
> chk.NN.new.old <- function(cNew, cNold, tol = 2e-15, tol.1 = 20*tol) {
+ stopifnot(is.list(cNold$innc), length(n.i <- names(cNold$innc)) == 4)
+ cat("classification accordance matrix:\n")
+ print(table(new = cNew $classification,
+ old = cNold$classification))
+ report.stopifnot.all.eq(UN(cNew [1:4]),
+ UN(cNold[1:4]), tol=tol.1) &
+ report.stopifnot.all.eq(cNew $innc[n.i],
+ cNold$innc[n.i], tol=tol)
+ }
>
> summ.NN <- function(cNN, digits = 3) {
+ cbind(class = cNN$classification,
+ pprob = round(cNN$postprob, digits),
+ incc.p= round(cNN$innc$postprob, digits))
+ }
>
> s1 <- summ.NN(cN1)
> ss <- summ.NN(cN)
> if(isTRUE(all.equal(ss, s1))) ss else cbind(ss, s1)
class pprob incc.p class pprob incc.p
[1,] 1 1.000 1.000 1 1.000 1.000
[2,] 1 1.000 1.000 1 1.000 1.000
[3,] 1 1.000 1.000 1 1.000 1.000
[4,] 1 1.000 1.000 1 1.000 1.000
[5,] 1 1.000 1.000 1 1.000 1.000
[6,] 1 1.000 0.171 1 1.000 0.171
[7,] 1 1.000 1.000 1 1.000 1.000
[8,] 1 1.000 1.000 1 1.000 1.000
[9,] 1 1.000 1.000 1 1.000 1.000
[10,] 1 1.000 1.000 1 1.000 1.000
[11,] 1 1.000 1.000 1 1.000 1.000
[12,] 1 1.000 1.000 1 1.000 1.000
[13,] 1 1.000 1.000 1 1.000 1.000
[14,] 1 1.000 1.000 1 1.000 1.000
[15,] 1 1.000 0.000 1 0.998 0.000
[16,] 0 0.000 0.000 0 0.000 0.000
[17,] 1 1.000 0.718 1 1.000 0.718
[18,] 1 1.000 1.000 1 1.000 1.000
[19,] 1 1.000 0.002 1 1.000 0.002
[20,] 1 1.000 1.000 1 1.000 1.000
[21,] 1 1.000 1.000 1 1.000 1.000
[22,] 1 1.000 1.000 1 1.000 1.000
[23,] 1 1.000 1.000 1 1.000 1.000
[24,] 1 1.000 1.000 1 1.000 1.000
[25,] 1 1.000 1.000 1 1.000 1.000
[26,] 1 1.000 1.000 1 1.000 1.000
[27,] 1 1.000 1.000 1 1.000 1.000
[28,] 1 1.000 1.000 1 1.000 1.000
[29,] 1 1.000 1.000 1 1.000 1.000
[30,] 1 1.000 1.000 1 1.000 1.000
[31,] 1 1.000 1.000 1 1.000 1.000
[32,] 1 1.000 1.000 1 1.000 1.000
[33,] 1 1.000 0.000 1 1.000 0.000
[34,] 0 0.000 0.000 0 0.000 0.000
[35,] 1 1.000 1.000 1 1.000 1.000
[36,] 1 1.000 1.000 1 1.000 1.000
[37,] 1 1.000 1.000 1 1.000 1.000
[38,] 1 1.000 1.000 1 1.000 1.000
[39,] 1 1.000 1.000 1 1.000 1.000
[40,] 1 1.000 1.000 1 1.000 1.000
[41,] 1 1.000 1.000 1 1.000 1.000
[42,] 0 0.000 0.000 0 0.000 0.000
[43,] 1 1.000 1.000 1 1.000 1.000
[44,] 1 1.000 1.000 1 1.000 1.000
[45,] 1 1.000 1.000 1 1.000 1.000
[46,] 1 1.000 1.000 1 1.000 1.000
[47,] 1 1.000 1.000 1 1.000 1.000
[48,] 1 1.000 1.000 1 1.000 1.000
[49,] 1 1.000 1.000 1 1.000 1.000
[50,] 1 1.000 1.000 1 1.000 1.000
[51,] 1 1.000 0.058 1 1.000 0.058
[52,] 1 1.000 1.000 1 1.000 1.000
[53,] 1 1.000 1.000 1 1.000 1.000
[54,] 1 1.000 0.773 1 1.000 0.773
[55,] 1 1.000 1.000 1 1.000 1.000
[56,] 1 1.000 1.000 1 1.000 1.000
[57,] 1 1.000 0.999 1 1.000 0.999
[58,] 1 1.000 0.000 1 1.000 0.000
[59,] 1 1.000 1.000 1 1.000 1.000
[60,] 1 1.000 1.000 1 1.000 1.000
[61,] 0 0.000 0.000 0 0.000 0.000
[62,] 1 1.000 1.000 1 1.000 1.000
[63,] 1 0.611 0.000 0 0.000 0.000
[64,] 1 1.000 1.000 1 1.000 1.000
[65,] 1 1.000 1.000 1 1.000 1.000
[66,] 1 1.000 1.000 1 1.000 1.000
[67,] 1 1.000 1.000 1 1.000 1.000
[68,] 1 1.000 1.000 1 1.000 1.000
[69,] 1 0.786 0.000 0 0.000 0.000
[70,] 1 1.000 1.000 1 1.000 1.000
[71,] 1 1.000 1.000 1 1.000 1.000
[72,] 1 1.000 1.000 1 1.000 1.000
[73,] 1 1.000 1.000 1 1.000 1.000
[74,] 1 1.000 1.000 1 1.000 1.000
[75,] 1 1.000 1.000 1 1.000 1.000
[76,] 1 1.000 1.000 1 1.000 1.000
[77,] 1 1.000 1.000 1 1.000 1.000
[78,] 1 1.000 1.000 1 1.000 1.000
[79,] 1 1.000 1.000 1 1.000 1.000
[80,] 1 1.000 1.000 1 1.000 1.000
[81,] 1 1.000 1.000 1 1.000 1.000
[82,] 1 1.000 0.999 1 1.000 0.999
[83,] 1 1.000 1.000 1 1.000 1.000
[84,] 1 1.000 1.000 1 1.000 1.000
[85,] 1 1.000 1.000 1 1.000 1.000
[86,] 1 1.000 0.000 1 1.000 0.000
[87,] 1 1.000 1.000 1 1.000 1.000
[88,] 1 1.000 0.000 1 1.000 0.000
[89,] 1 1.000 1.000 1 1.000 1.000
[90,] 1 1.000 1.000 1 1.000 1.000
[91,] 1 1.000 1.000 1 1.000 1.000
[92,] 1 1.000 1.000 1 1.000 1.000
[93,] 1 1.000 1.000 1 1.000 1.000
[94,] 1 0.944 0.000 0 0.001 0.000
[95,] 1 1.000 1.000 1 1.000 1.000
[96,] 1 1.000 1.000 1 1.000 1.000
[97,] 1 1.000 1.000 1 1.000 1.000
[98,] 1 1.000 1.000 1 1.000 1.000
[99,] 1 1.000 0.000 1 1.000 0.000
[100,] 1 1.000 1.000 1 1.000 1.000
[101,] 1 1.000 0.000 1 1.000 0.000
[102,] 1 1.000 1.000 1 1.000 1.000
[103,] 1 1.000 1.000 1 1.000 1.000
[104,] 1 1.000 1.000 1 1.000 1.000
[105,] 1 1.000 1.000 1 1.000 1.000
[106,] 1 1.000 0.000 1 0.998 0.000
[107,] 1 1.000 0.000 0 0.317 0.000
[108,] 1 1.000 0.000 1 1.000 0.000
[109,] 1 1.000 0.000 1 0.999 0.000
[110,] 0 0.000 0.000 0 0.000 0.000
[111,] 1 1.000 1.000 1 1.000 1.000
[112,] 1 1.000 1.000 1 1.000 1.000
[113,] 1 1.000 1.000 1 1.000 1.000
[114,] 1 1.000 0.000 1 1.000 0.000
[115,] 1 1.000 0.899 1 1.000 0.899
[116,] 1 1.000 1.000 1 1.000 1.000
[117,] 1 1.000 1.000 1 1.000 1.000
[118,] 0 0.000 0.000 0 0.000 0.000
[119,] 0 0.000 0.000 0 0.000 0.000
[120,] 0 0.028 0.000 0 0.000 0.000
[121,] 1 1.000 1.000 1 1.000 1.000
[122,] 1 1.000 1.000 1 1.000 1.000
[123,] 0 0.000 0.000 0 0.000 0.000
[124,] 1 1.000 1.000 1 1.000 1.000
[125,] 1 1.000 1.000 1 1.000 1.000
[126,] 1 1.000 0.229 1 1.000 0.229
[127,] 1 1.000 1.000 1 1.000 1.000
[128,] 1 1.000 1.000 1 1.000 1.000
[129,] 1 1.000 1.000 1 1.000 1.000
[130,] 1 1.000 0.702 1 1.000 0.702
[131,] 1 1.000 0.000 0 0.357 0.000
[132,] 0 0.000 0.000 0 0.000 0.000
[133,] 1 1.000 1.000 1 1.000 1.000
[134,] 1 1.000 1.000 1 1.000 1.000
[135,] 1 1.000 0.818 1 1.000 0.818
[136,] 1 1.000 0.000 1 0.999 0.000
[137,] 1 1.000 0.000 1 1.000 0.000
[138,] 1 1.000 1.000 1 1.000 1.000
[139,] 1 1.000 1.000 1 1.000 1.000
[140,] 1 1.000 1.000 1 1.000 1.000
[141,] 1 1.000 1.000 1 1.000 1.000
[142,] 1 1.000 1.000 1 1.000 1.000
[143,] 1 1.000 1.000 1 1.000 1.000
[144,] 1 1.000 1.000 1 1.000 1.000
[145,] 1 1.000 1.000 1 1.000 1.000
[146,] 1 1.000 1.000 1 1.000 1.000
[147,] 1 1.000 0.991 1 1.000 0.991
[148,] 1 1.000 1.000 1 1.000 1.000
[149,] 1 1.000 0.000 1 1.000 0.000
[150,] 1 1.000 1.000 1 1.000 1.000
>
>
> try( # testing (tol=0 too small)
+ chk.NN.new.old(cN, cN1, tol=0)
+ )
classification accordance matrix:
old
new 0 1
0 10 0
1 5 135
Error : Not all.equal(UN(cNew[1:4]), UN(cNold[1:4]), tol = tol.1):
Component "cov": Mean relative difference: 0.01479474
Component "mu": Mean relative difference: 0.003191909
Component "postprob": Mean relative difference: 0.1351993
Component "classification": Mean relative difference: 1
> ## This used to fail when we use R's instead of BLAS matrix products:
> if(doCheck)
+ chk.NN.new.old(cN, cN1, tol = 4e-15) # seen 1.1e-15 work
classification accordance matrix:
old
new 0 1
0 10 0
1 5 135
Error: Not all.equal(UN(cNew[1:4]), UN(cNold[1:4]), tol = tol.1):
Component "cov": Mean relative difference: 0.01479474
Component "mu": Mean relative difference: 0.003191909
Component "postprob": Mean relative difference: 0.1351993
Component "classification": Mean relative difference: 1
Execution halted
Flavor: r-devel-windows-x86_64
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.