CRAN Package Check Results for Package CLA

Last updated on 2020-09-22 03:49:17 CEST.

Flavor Version Tinstall Tcheck Ttotal Status Flags
r-devel-linux-x86_64-debian-clang 0.96-0 3.35 103.63 106.98 OK
r-devel-linux-x86_64-debian-gcc 0.96-0 0.35 2.03 2.38 ERROR
r-devel-linux-x86_64-fedora-clang 0.96-0 131.97 OK
r-devel-linux-x86_64-fedora-gcc 0.96-0 153.06 OK
r-devel-windows-ix86+x86_64 0.96-0 6.00 129.00 135.00 OK
r-patched-linux-x86_64 0.96-0 2.78 97.83 100.61 OK
r-patched-solaris-x86 0.96-0 181.90 ERROR
r-release-linux-x86_64 0.96-0 3.11 100.28 103.39 OK
r-release-macos-x86_64 0.96-0 OK
r-release-windows-ix86+x86_64 0.96-0 6.00 126.00 132.00 OK
r-oldrel-macos-x86_64 0.96-0 OK
r-oldrel-windows-ix86+x86_64 0.96-0 4.00 127.00 131.00 OK

Check Details

Version: 0.96-0
Check: whether package can be installed
Result: ERROR
    Installation failed.
Flavor: r-devel-linux-x86_64-debian-gcc

Version: 0.96-0
Check: tests
Result: ERROR
     Running ‘SP500-ex.R’ [118s/139s]
     Running ‘findSigMu-ex.R’
    Running the tests in ‘tests/SP500-ex.R’ failed.
    Complete output:
     > require(CLA)
     Loading required package: CLA
     >
     > source(system.file("xtraR", "platform-sessionInfo.R", # <<- ../inst/xtraR/platform-sessionInfo.R
     + package = "CLA", mustWork=TRUE)) # moreSessionInfo(), withAutoprint() ..
     > mS <- moreSessionInfo(print. = TRUE)
     List of 4
     $ sizeof.long : int 4
     $ sizeof.longlong : int 8
     $ sizeof.longdouble: int 12
     $ sizeof.pointer : int 4
     32 bit platform type 'unix' ==> onWindows: FALSE
     arch: i86pc
     osVersion (0): Solaris 10
     osVersion: 'Solaris 10'
     + BLAS "is" Lapack: FALSE | BLAS=OpenBLAS: FALSE | Lapack=OpenBLAS: FALSE
     strictR: TRUE
     >
     > data(muS.sp500)# not 500, but 476 assets
     >
     > if(requireNamespace("FRAPO")) {
     + data(SP500, package = "FRAPO")
     + print(dim(SP500)) # 265 * 476
     + }
     Loading required namespace: FRAPO
     [1] 265 476
     >
     > (n <- length(muS.sp500$mu)) # 476
     [1] 476
     > system.time(# ~ 9 sec (64-bit); 13.8 sec (32-b florence); seen 27.44 sec on Winb.32
     + CLs5c.0.120 <- CLA(muS.sp500$mu, muS.sp500$covar, lB=0, uB=1/20)
     + )
     user system elapsed
     107.391 1.452 128.015
     Warning message:
     In CLA(muS.sp500$mu, muS.sp500$covar, lB = 0, uB = 1/20) :
     covariance matrix 'covar' has negative eigenvalues
     > CLs5c.0.120 # -> print() method
     Call: CLA(mu = muS.sp500$mu, covar = muS.sp500$covar, lB = 0, uB = 1/20)
     Critical Line Algorithm for n = 476 assets, resulting in 161 turning points
     Overview of result parts:
     List of 5
     $ weights_set : num [1:476, 1:161] 0 0 0.05 0 0 0 0 0 0 0 ...
     $ free_indices:List of 161
     $ gammas : num [1:161] -0.0845 -0.0845 -0.0134 -0.013 -0.0126 ...
     $ lambdas : num [1:161] 10.5 10.5 1.83 1.78 1.72 ...
     $ emptyLambdas: list()
     > ws <- CLs5c.0.120$weights_set
     > table(rowSums(ws) > 0)
    
     FALSE TRUE
     397 79
     > ## FALSE TRUE
     > ## 397 79 == we check below that indeed 79 assets have some non-0 wts
     >
     >
     > uncall <- function(x) `$<-`(x, call, NULL)
     >
     > doExtras <- TRUE # for experiments, not normally
     > doExtras <- FALSE
     >
     > if(doExtras) system.time({
     + tols <- 10^-c(1,3,5:9,11,14)
     + names(tols) <- paste0("10^", round(log10(tols)))
     + CLs5c.ls <- lapply(tols, function(tol)
     + CLA(muS.sp500$mu, muS.sp500$covar, lB=0, uB=1/20, tol.lambda = tol))
     + }) # 78.101 elapsed [nb-mm4] ; 46.108 [lynne 2018-10]
     >
     > if(doExtras) {
     + identical(uncall(CLs5c.ls[["10^-7"]]), uncall(CLs5c.0.120))
     + for(i in seq_along(tols)[-1]) {
     + cat("--=--=--=--=--\n", (n1 <- names(tols[i-1])), " vs. ", (n2 <- names(tols[i])), ": ")
     + ae <- all.equal(uncall(CLs5c.ls[[i-1]]),
     + uncall(CLs5c.ls[[ i ]]))
     + if(isTRUE(ae)) cat(" are all.equal()\n")
     + else {
     + CLA.i. <- uncall(CLs5c.ls[[i-1]]) ; wgt <- CLA.i.$weights_set
     + cat("are different [all.equal()]: dim(..[[",n1,"]]$weights_set) =",
     + dim(wgt)[1],"x", dim(wgt)[2],"\n")
     + }
     + }
     + }
     > ## 2018-10 lynne, 64b Fedora 28
     > ## 10^-1 vs. 10^-3 : are different [all.equal()]: dim(..[[ 10^-1 ]]$weights_set) = 476 x 47
     > ## 10^-3 vs. 10^-5 : are different [all.equal()]: dim(..[[ 10^-3 ]]$weights_set) = 476 x 156
     > ## 10^-5 vs. 10^-6 : are all.equal()
     > ## ................ " " "
     >
     > op <- options(width = max(500, getOption("width"))) # then it actually fits
     >
     > if(require(Matrix)) withAutoprint(local = FALSE, {
     + ## visualize how weights change "along turning points"
     + spWts <- Matrix(CLs5c.0.120$weights_set, sparse=TRUE)
     + image(spWts, xlab = "turning point", ylab = "asset number")
     + ##
     + dim(spWts.non0 <- spWts[rowSums(spWts) > 0 , ])
     + round(1000 * spWts.non0) ##-> e.g. ./Solaris_wts_non0.txt ==> readWn0()
     + ##
     + image(spWts.non0, xlab = "turning point", ylab = "asset number")
     + wts.non0 <- as(spWts.non0, "matrix")
     + }) else {
     + warning("'Matrix' package not available -- should not happen!")
     + wts.non0 <- CLs5c.0.120$weights_set[rowSums(CLs5c.0.120$weights_set) > 0 , ]
     + if(is.null(colnames(wts.non0))) ## empty column names for nice printing:
     + colnames(wts.non0) <- rep("", ncol(wts.non0))
     + print.table(round(1000 * wts.non0), zero.print=".")
     + }
     Loading required package: Matrix
     > spWts <- Matrix(CLs5c.0.120$weights_set, sparse = TRUE)
     > image(spWts, xlab = "turning point", ylab = "asset number")
     > dim(spWts.non0 <- spWts[rowSums(spWts) > 0, ])
     [1] 79 161
     > round(1000 * spWts.non0)
     79 x 161 sparse Matrix of class "dgCMatrix"
    
     AAPL 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 47 46 44 44 42 42 39 36 35 34 33 32 31 26 24 23 21 21 21 21 18 16 16 13 12 10 10 10 8 7 6 6 6 5 5 4 2 . . . . . . . . . . . . . . . . . . . . . . . . . .
     ADSK . . . . . . 0 0 0 49 50 50 50 50 50 50 50 47 47 41 41 48 49 49 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 49 48 46 45 45 43 39 38 38 37 36 36 35 30 29 24 23 19 16 14 13 13 13 12 12 12 11 10 7 7 5 5 5 4 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
     AET . . . 0 8 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 49 43 41 40 38 38 38 38 35 33 33 32 31 29 29 29 27 26 26 25 25 25 25 23 21 19 18 17 17 15 13 12 12 11 11 10 10 4 1 0 . . . . . . . . . . .
     AMGN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 0 4
     ATI 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 44 43 41 37 36 25 24 19 18 18 15 11 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
     AYE . . . . . . . . . . . . 0 3 7 3 3 1 3 9 10 38 42 42 45 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 49 48 48 48 48 48 47 43 42 38 37 31 26 22 21 21 20 18 18 17 14 13 5 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
     AZO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 2 2 3 3 4 5 5 5 5 5 6 6 7 7 7 7 8 8 8 8 8 8 8 8 8 6
     BAX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 16 18 24 24 25 27 30 34 36 38 39 40 41 43 45 46 46 48 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 49 49 49 49 49 48 48 48 47 46 46 46 45 43 43 42 42 42 42 42 42 41
     BCR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 2 3 4 4 5 5 6 7 7 7 7 7 7 6 6 6 5 5 5 5 4 4 4 4 4 4 4 4 4 2 1 1 1 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
     BDX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 3 6 7 8 8 8 8 8 9 9 9 9 9 8 8 8 8 8 8 8 8 9 10 10 11 11 14 14 15 15 15 15 15 15 16
     BIIB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 5 11 14 14 16 19 19 20 23 24 26 26 28 28 30 30 30 31 33 33 33 33 33 32 32 31 31 31 31 30 27 26 24 24 24 23 22 21 20 19 19 18 18 18 18 18 18 18 18 18 18 18 18 18 18 19 19 19 19 19 19 20 20 20 20 21 21 22 22 23 23 23 23 23 24 25 25 26 26 26 27 27 27 27 27 27 27 27 27 27 26 26 25 25 25 24 24 23 23 23 23 22 22 20 19 18 18 18 15 15 15 15 15 14 14 14 12
     BNI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 10 10 18 23 34 37 38 42 48 49 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 48 45 43 43 40 37 37 37 36 36 35 35 35 35 33 33 31 30 29 28 27 26 25 25 22 21 20 19 18 18 17 13 11 10 9 8 8 8 5 3 3 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
     BRL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 0 2 4 4 4 4 5 6 6 9 10 11 11 11 13 13 14 14 14 14 14 15 15
     BTU 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 31 12 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
     BUD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 1 1 4 4 4 9
     CCE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 2 3 7 9 10 11 12 12 12 14 16 16 18 19 21 21 21 22 22 23 23 23 23 23 24 25 26 26 26 27 27 28 29 29 29 29 29 29 30 30 31 31 31 31 31 31 31 31 31 31 31 32
     CELG 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 49 49 46 46 43 43 42 41 40 40 39 38 36 34 34 32 31 31 30 24 22 21 19 18 18 18 14 11 11 8 7 5 4 4 3 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
     CI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 7 11 11 19 21 24 25 30 33 40 42 42 44 48 49 49 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 49 48 42 40 37 36 35 34 32 29 27 26 20 16 16 15 14 14 12 12 11 11 8 7 4 4 2 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
     CL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 4 11 22 28 29 40 48 49 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
     CLX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 3 4 6 19 24 27 31 33 33 33 40 45 45 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
     CME 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 47 47 45 43 43 41 35 32 31 29 29 29 28 25 22 22 20 18 16 16 16 14 12 11 11 11 11 10 9 7 5 4 3 3 2 . . . . . . . . . . . . . . . . . . . . .
     CNX 50 50 50 50 50 50 50 50 50 50 49 49 42 39 32 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
     COST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 3 3 4 4 5 5 5 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 6 6 6 6 6 5 5 5 5 5 4 4 4 4
     CTL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 1 1 1 3
     CVS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 7 14 17 17 19 27 27 29 33 33 38 39 41 41 41 42 43 44 44 44 44 44 44 45 45 45 45 44 43 43 43 43 43 42 42 42 42 40 40 38 38 37 37 36 36 35 35 34 33 33 32 32 32 32 33 33 33 33 33 33 33 35 35 35 36 36 37 37 37 37 36 36 36 36 36 36 35 34 32 31 31 31 29 27 27 27 27 26 25 25 17 14 13 12 11 5 4 3 3 3 1 0 . .
     DF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 0 1 2 2 2 2 2 2 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3
     DGX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 2 2 3 4 7 10 11 12 12 14 16 17 17 17 18 19 19 25 28 29 29 30 35 35 36 36 36 37 38 38 40
     DVN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 1 1 1 0 . . . 0 1 1 1 1 1 1 1 1 1
     ED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 0 1 2 7 12 20 23 25 25 30 37 39 39 39 40 41 41 47 49 50 50 50 50 50 50 50 50 50 50 50 50
     EIX . . . . . . . . . . . . . . 0 37 40 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 47 45 43 43 42 41 38 37 36 36 36 34 30 25 18 16 13 13 8 2 . . . . . . . . . . . . . . . . . . . .
     ESRX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 1 2 3 5 5 6 8 9 10 10 14 15 16 16 16 17 17 17 17 17 17 16 16 16 16 15 15 15 13 12 12 12 11 11 10 9 9 8 7 5 5 5 5 5 3 3 3 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
     FCX 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 47 47 40 31 27 26 24 21 21 20 12 10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
     FE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 0 2 6 7 9 10 14 18 22 24 24 26 32 32 33 36 36 39 39 40 40 40 39 38 34 33 31 31 31 30 29 26 24 23 21 19 19 19 19 19 18 18 18 18 16 16 15 15 13 13 11 11 9 9 7 4 4 3 1 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
     GILD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 18 21 23 23 22 21 19 19 20 20 21 21 21 20 20 19 19 19 19 19 19 18 17 15 14 12 11 9 9 9 8 8 8 8 6 6 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
     HAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 0 1 2 4 7 8 8 8 10 11 12 12 12 12 13 13 14 14 14 14 14 15 15 15 15 15 15 15 15 14
     HES 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 37 33 33 33 32 32 32 26 26 25 17 13 11 10 7 6 3 3 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
     HST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 3 14 14 28 39 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 47 46 46 46 45 43 43 35 30 29 28 27 19 19 18 17 17 14 14 14 8
     HUM . . . . . . . . . . . . . . . . . . . . . 0 8 8 17 28 30 37 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 49 49 49 49 46 44 40 40 34 29 25 24 24 24 23 23 22 21 20 16 15 13 13 13 12 11 9 8 7 7 6 6 5 4 3 3 2 1 1 1 1 1 0 0 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
     INTU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 4 5 5 5 9 12 12 15 17 19 19 20 21 23 24 24 24 24 24 25 26 28 28 28 28 29 30 30 30 30 30 31 31 34 35 35 35 36 38 38 39 39 39 40 40 40 40
     JNJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 7 8 8 9 9 12 16 21 22 24 24 27 30 31 31 32 32 33 33 38 41 42 42 43 50 50 50 50 50 50 50 50 50
     K . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 5 6 9 10 17 22 23 26 29 29 31 40 44 47 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
     LH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 9 9 15 20 21 21 22 22 24 24 25 25 28 28 30 30 30 31 31 31 31 31 33 34 34 35 35 36 36 40 41 42 43 43 43 43 45 46 46 46 47 47 47 47 47 47 47 46 46 46 46 45 44 42 41 40 40 39 37 37 37 37 36 36 36 31 29 29 28 28 24 23 23 23 23 22 22 22 20
     LLL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 10 26 28 34 34 35 37 40 43 44 46 47 47 47 47 46 45 45 46 47 47 46 46 46 44 44 44 44 42 42 42 42 42 42 42 42 42 41 42 44 44 45 46 46 46 49 49 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 49 48 47 46 46 46 45 43 43 43 42 42 41 41 37 35 34 34 33 28 27 27 26 26 25 24 24 21
     LMT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 4 7 13 19 23 24 33 40 41 41 42 42 44 44 45 45 47 47 48 48 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
     LUK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 4 4 5 5 8 9 9 10 10 11 15 16 17 18 18 21 22 23 23 23 23 23 22 21 20 20 19 19 20 19 19 19 21 22 22 22 22 22 22 22 21 21 20 20 19 19 19 18 18 17 17 17 16 15 15 14 14 13 13 10 8 8 7 6 6 6 4 3 3 1 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
     MCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 2 2 2 1 1 2 2 1 1 0 0 2 4 4 4 5 5 6 6 6 6 7 7 7 8 9 9 10 10 11 11 12 12 12 12 11 11 11 9 9 8 8 8 8 8 6 5 5 4 4 4 4 4 3 2 2 1 1 1 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
     MDT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 5 8 8 11 13 16 17 18 20 21 22 22 22 23 23 24 25 27 27 28 28 29 30 31 31 31 31 32 32 35 37 37 37 38 41 41 41 41 42 42 42 42 42
     MMC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 1 1 2 3 3 5
     MON 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 48 47 39 36 30 30 26 24 18 17 17 14 10 9 9 8 6 6 5 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
     MRO 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 46 45 41 41 38 38 36 36 34 34 31 30 30 28 27 27 27 23 22 21 20 20 20 20 17 15 15 13 12 11 11 10 9 8 7 7 7 7 7 5 3 1 . . . . . . . . . . . . . . . . . . . . . . . . .
     MTW 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 35 23 14 11 10 9 5 5 4 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
     MUR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 3 3 8 8 9 9 9 9 9 6 5 4 4 4 3 3 2 2 2 4 7 7 7 8 8 9 9 9 9 12 12 14 14 15 16 17 17 17 17 19 20 20 21 21 21 21 21 21 21 21 21 21 21 21 20 20 20 21 21 21 21 21 22 22 22 22 22 22 23 23 24 24 24 24 24 24 23 23 23 23 22 22 19 17 16 16 15 11 10 10 9 9 8 8 8 6
     NEM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 0 3 6 6 8 10 12 12 12 14 15 16 16 17 17 17 18 19 21 22 22 22 23 24 25 25 25 25 26 26 27 28 29 29 29 31 31 31 32 32 32 32 32 34
     NOC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 2 5 6 12 12 15 15 25 27 34 35 40 41 46 47 49 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
     NUE 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 49 27 19 19 12 5 3 3 0 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
     NVDA 50 50 50 50 50 50 50 50 50 1 1 1 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
     PBG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 0 3 3 4 4 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 8 8 8 8 8 9 9 9 10 11 12 12 12 12 12 12 12 12 12 12 12 12 13 13 13 13 14 15 15 15 15 15 15 15 15 14 14 14 14 13 13 12 12 12 12 12 12 9
     PCP 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 49 40 32 31 29 27 27 23 23 21 21 14 13 8 8 5 4 2 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
     PDCO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 1 1 1 1 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 5 5 5 5
     PEP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 3 3 14 16 24 24 29 30 32 33 34 34 37 41 41 43 44 44 45 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
     PG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 28 37 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
     RAI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 14 17 27 28 41 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 49 44 42 40 38 38 38 38 34 32 32 30 29 28 28 28 27 26 25 25 25 25 25 24 22 20 20 19 19 18 17 17 17 17 17 16 16 13 12 11 11 11 9 8 8 8 8 7 7 7 7
     RIG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 3 8 9 10 12 15 16 16 17 18 18 18 19 19 19 19 18 18 18 18 18 19 22 22 23 24 24 25 25 24 25 25 25 25 27 27 27 27 27 26 26 25 24 24 26 27 27 27 27 27 28 28 28 28 30 30 31 31 31 31 32 32 32 32 33 32 32 32 32 32 32 32 32 32 32 32 32 32 31 30 30 28 28 26 26 26 25 24 24 24 24 24 23 22 20 18 18 17 17 15 13 13 13 12 12 12 12 9 8 7 7 7 4 4 4 3 3 3 2 2 2
     RRC 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 42 36 35 34 33 32 29 29 27 27 23 22 17 17 13 12 10 9 8 7 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
     RTN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 1 4 7 13 15 16 17 17 16 16 16 15 15 16 17 17 17 16 16 16 16 16 16 16 16 16 16 16 16 16 15 15 15 15 15 15 16 17 17 18 21 22 23 23 24 24 24 25 26 26 28 29 29 30 30 30 29 29 29 29 29 29 29 29 29 29 29 30 30 31 31 31 31 31 31 31 31 31 31 31 31 30 29 29 29 29 28 28 28 27
     SII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 1 1 2 2 3 3 3 3 3 4 4 4 4 4 3 3 2 2 2 2 1 1 1 1 1 1 . . . . . . . . . . . . . . . .
     SSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 7 10 11 12 12 20 21 21 22 22 23 23 23 25
     SYK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 1 2 4 4 7 7 8 8 8 9 9 7 7 5 4 4 3 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
     SYMC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 1 1 1 1 3 3 3 4 4 4 4 4 5
     TEX 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 44 32 31 30 17 11 9 8 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
     TIE 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 48 44 43 42 39 39 32 32 29 29 28 27 25 21 19 16 15 13 12 9 6 3 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
     TSO 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 49 45 45 43 41 41 36 36 34 33 33 32 30 27 26 23 23 21 20 18 16 15 14 13 12 12 11 11 11 10 10 10 10 10 9 9 9 9 9 8 8 8 8 7 7 7 6 6 6 5 3 2 1 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
     TYC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 1 1 2 3 3 4 5 5 5 7 8 8 9 9 9 9 10 11 11 12 13 14 14 14 14 15 15 15 15 15 16 16 16 17 17 17 17 18 18 18 18 18 18 19 19 20 21 21 21 21 23 23 23 23 23 23 23 23 23
     UST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 28 36 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 49 46
     WAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 0 2 2 6 9 10 10 11 15 16 16 17 17 18 18 18 18
     WFR 50 50 50 47 42 . 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
     WMT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 0 3 3 3 7
     X 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 39 35 25 25 18 13 3 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
     XTO . . 0 3 . . . . . . . 0 7 9 11 7 7 2 . . . . . 0 11 24 26 34 42 43 43 48 48 49 48 44 42 38 38 37 35 30 30 30 29 29 29 29 29 29 29 28 26 25 24 23 18 12 8 7 7 7 6 6 6 5 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 3 3 5 6 8 8 9 10 12 14 14 14 14 14 14 14 14 14 14 14 14 14 13 12 12 11 11 10 10 10 9 9 8 8 8 8 8 7 6 5 5 4 4 3 2 1 1 1 . . . . . . . . . . . . . . . . .
     > image(spWts.non0, xlab = "turning point", ylab = "asset number")
     > wts.non0 <- as(spWts.non0, "matrix")
     >
     > ##' To read the output from the above round(1000*spWts.non) into a (non-sparse) matrix:
     > readWn0 <- function(txtfile) {
     + stopifnot(file.exists(txtfile))
     + lns <- strsplit((ln <- readLines(txtfile)), split = " +")
     + n <- unique(lengths(lns))
     + if(length(n) != 1)
     + stop("number of 'words' in each line differ:", paste(n, collapse=", "))
     + nms <- lapply(lns, `[[`, 1)
     + rnls <- lapply(lns, `[`, -1L) # the non-names, i.e. round(1000 * wts[])
     + w1000 <- setNames(rnls, nms)
     + nr_non0 <- vapply(w1000, function(ch) sum(ch != "."), 1L)
     + list(nr_non0=nr_non0, w1000=w1000)
     + }
     > if(FALSE) { # private file
     + rr <- readWn0(txtfile = "./SP5c_Solaris_wts_non0.txt")
     + rr <- readWn0(txtfile = "./SP5c_Win32_wts_non0.txt")
     + nr_non0 <- rr$nr_non0
     + ## compare with b64.n0, to construct 'S10.b32.n0' :
     + ## same length (== 79) *and* same names :
     + stopifnot(identical(names(nr_non0), names(b64.n0)))
     + d <- nr_non0 - b64.n0
     + d[d != 0] # Solaris: the first, ADSK is 2, all others are 1 ..
     + all((d1 <- d[d != 0][-1]) == 1) # TRUE
     + dput(names(d1)) # the names for the '1' ..
     + ## Win 32: 1 2 -1 1 ... 1 2 1 1 -- win 32 is really "big" differing:
     + ## table(d) .. only 23 do *not* differ
     + ## -1 0 1 2
     + ## 5 23 49 2 majority (49 of 79): "+1"
     + }
     >
     >
     > options(op)
     > stopifnot(nrow(wts.non0) == 79)
     > if(FALSE) # once, manually (into tests/ directory
     + saveRDS(wts.non0, "wtsn0.rds")
     > file.info("wtsn0.rds")$size # 2702049
     [1] 27020
     > wtsn0.ref <- readRDS("wtsn0.rds")
     >
     > ## see on all platforms what we get -- on OpenBLAS, the dim() differs !
     > all.equal(target = wtsn0.ref, current = wts.non0, tol=0)
     [1] TRUE
     > # expect TRUE only on 64bit (Lnx, R's BLAS)
     > # 3.10416e-15 and 1.366427e-15 on other BLAS
     > differWts <- ncol(wtsn0.ref) != ncol(wts.non0)
     > if(differWts) {
     + cat("Got",ncol(wts.non0), "weights from CLA() -- different than ref with",
     + ncol(wtsn0.ref), "\n")
     + strict <- FALSE # !
     + } else {
     + strict <- mS$strictR
     + stopifnot(all.equal(target = wtsn0.ref, current = wts.non0,
     + tol = 1e-13))
     + }
     > non.0.assets <- Filter(function(.) . > 0, apply(wts.non0, 1, function(c) sum(c > 0)))
     >
     > b64.n0 <-
     + c(AAPL = 135L, ADSK = 66L, AET = 147L, AMGN = 3L, ATI = 75L,
     + AYE = 56L, AZO = 26L, BAX = 95L, BCR = 35L, BDX = 36L, BIIB = 118L,
     + BNI = 86L, BRL = 23L, BTU = 27L, BUD = 7L, CCE = 54L, CELG = 128L,
     + CI = 69L, CL = 83L, CLX = 53L, CME = 140L, CNX = 16L, COST = 40L,
     + CTL = 5L, CVS = 102L, DF = 36L, DGX = 33L, DVN = 14L, ED = 32L,
     + EIX = 127L, ESRX = 48L, FCX = 54L, FE = 61L, GILD = 38L, HAL = 31L,
     + HES = 40L, HST = 108L, HUM = 71L, INTU = 48L, JNJ = 34L, K = 61L,
     + LH = 80L, LLL = 96L, LMT = 83L, LUK = 72L, MCD = 61L, MDT = 43L,
     + MMC = 7L, MON = 53L, MRO = 136L, MTW = 66L, MUR = 97L, NEM = 45L,
     + NOC = 74L, NUE = 30L, NVDA = 13L, PBG = 72L, PCP = 102L, PDCO = 71L,
     + PEP = 69L, PG = 87L, RAI = 110L, RIG = 121L, RRC = 105L, RTN = 90L,
     + SII = 27L, SSP = 14L, SYK = 19L, SYMC = 13L, TEX = 36L, TIE = 84L,
     + TSO = 115L, TYC = 59L, UST = 127L, WAG = 17L, WFR = 5L, WMT = 6L,
     + X = 43L, XTO = 102L)
     >
     > ## 32-bit Linux (Unfortunately, currently the results are slighly *platform dependent*)
     > b32.n0 <- b64.n0
     > nn <- c("AZO", "BAX", "CLX", "COST", "DGX", "DVN", "ESRX", "LMT", "MUR", "PEP",
     + "RIG", "SYMC", "TYC", "UST")
     > b32.n0[nn] <- b64.n0[nn] + 1L
     > nn <- c("AET", "BCR", "CI", "CL", "ED", "FE", "HAL", "MCD", "SII", "SYK")
     > b32.n0[nn] <- b64.n0[nn] - 1L
     >
     > ## 64-bit Linux -no-long-double:
     > b64nLD.n0 <- b64.n0
     > nn <- c("AZO", "BAX", "BNI", "CCE", "DVN", "GILD", "INTU", "JNJ", "LH",
     + "MDT", "NOC", "PBG", "SYMC")
     > b64nLD.n0[nn] <- b64.n0[nn] + 1L
     > nn <- c("ADSK", "BCR", "BDX", "BUD", "CTL", "FE", "MCD", "SII", "SYK")
     > b64nLD.n0[nn] <- b64.n0[nn] - 1L
     > b64nLD.n0[["XTO"]] <- 99L # = b... - 3L
     >
     > ## 'Solaris 10' [MM: from CRAN output, see ./SP5c_Solaris_wts_non0.txt]
     > S10.b32.n0 <- b64.n0
     > S10.b32.n0["ADSK"] <- b64.n0["ADSK"] + 2L
     > nn <- c("AYE", "AZO", "BRL", "CLX", "CVS", "DF", "DVN", "ESRX", "HST",
     + "HUM", "K", "LMT", "MDT", "NOC", "PBG", "PDCO", "PEP", "PG",
     + "RIG", "RTN", "SSP", "SYMC", "TYC", "WAG", "WFR")
     > S10.b32.n0[nn] <- b64.n0[nn] + 1L
     >
     > ## Windows 32 bit : MM: see ./Win32_wts_non0.txt
     > win.b32.n0 <- b64.n0 + 1L ## +1: is majority
     > Dlis <- list(
     + `-2` = c("AET", "CI", "FE", "SII", "SYK"),
     + `-1` = c("AMGN", "AYE", "BCR", "BDX", "BUD", "CL", "CTL", "CVS", "DF",
     + "ED", "EIX", "ESRX", "GILD", "HAL", "HST", "LLL", "MCD", "MMC",
     + "NEM", "PDCO", "PG", "RAI", "WMT"),
     + `1` = c("ADSK", "WFR"))
     > for(nD in names(Dlis)) {
     + nms <- Dlis[[nD]]
     + win.b32.n0[nms] <- win.b32.n0[nms] + as.integer(nD)
     + }
     >
     > non.0.TARG <- if(mS$ b64) {
     + if(mS$ b64nLD)
     + b64nLD.n0
     + else
     + b64.n0
     + } else {
     + if(mS$ osVersion == "Solaris 10")
     + S10.b32.n0
     + else if(.Platform$OS.type == "windows")
     + win.b32.n0
     + else # notably 32-bit Linux
     + b32.n0
     + }
     >
     > ## see on all platforms what we get; typically no diff on 64bit *and* using R's BLAS/Lapack
     > if(all(non.0.assets == non.0.TARG)) { ## show differences:
     + cat("Asset results == non.0.TARG; showing differences b32 - b64 :\n")
     + print(table(b32.n0 -b64.n0))
     + dput(names(b64.n0)[b32.n0 -b64.n0 == +1])
     + dput(names(b64.n0)[b32.n0 -b64.n0 == -1])
     + } else {
     + cat("\n'non.0.assets' differing from non.0.TARG:\n")
     + cat("+1:\n"); dput(names(b64.n0)[non.0.assets - non.0.TARG == +1])
     + cat("-1:\n"); dput(names(b64.n0)[non.0.assets - non.0.TARG == -1])
     + ## ATLAS :
     + ## +1:
     + ## c("AZO", "BRL", "CCE", "CLX", "INTU", "JNJ", "K", "LMT", "MUR",
     + ## "PEP", "SSP", "TYC", "UST", "XTO")
     + ## -1:
     + ## c("AET", "BCR", "CI", "ED", "FE", "MCD", "NEM", "SII", "SYK", "WMT")
     + ## MKL:
     + ## +1:
     + ## c("CLX", "INTU", "LH", "LLL", "LMT", "PBG", "SYMC", "TYC")
     + ## -1:
     + ## c("AMGN", "BCR", "BUD", "CL", "CTL", "ED", "HAL", "NEM", "XTO")
     + ## OpenBLAS:
     + ## +1:
     + ## c("BAX", "COST", "HST", "JNJ", "MDT", "MUR", "NOC", "PDCO", "WAG")
     + ## -1:
     + ## c("BCR", "CI", "CTL", "ED", "EIX", "HAL", "MCD", "RAI", "SYK")
     +
     + if(any(isB <- abs(non.0.assets - non.0.TARG) > 1)) {
     + cat("more different (than just +/- 1), showing differences:\n")
     + dput((non.0.assets - non.0.TARG)[isB])
     + }
     + ## OpenBLAS (only!):
     + ## c(XTO = -2L)
     + }
    
     'non.0.assets' differing from non.0.TARG:
     +1:
     character(0)
     -1:
     c("AYE", "AZO", "BRL", "CLX", "CVS", "DF", "DVN", "ESRX", "HST",
     "HUM", "K", "LMT", "MDT", "NOC", "PBG", "PDCO", "PEP", "PG",
     "RIG", "RTN", "SSP", "SYMC", "TYC", "WAG", "WFR")
     more different (than just +/- 1), showing differences:
     c(ADSK = -2L)
     >
     > ## They have the same names and only differ by +/- 1:
     > stopifnot(exprs = {
     + identical(names(b64.n0), names(b32.n0))
     +
     + ### Simplification: Above have non.0.TARG already platform dependently
     +
     + ## if(mS$ b64) # "!strict || " : identical(*) fails on ATLAS, MKL, OpenBLAS
     + !strict || identical(non.0.assets, non.0.TARG)
     + ## else ## 32-bit
     + ## if(.Platform$OS.type == "windows")
     + ## identical(non.0.assets, win.b32.n0)
     + ## else if(mS$ osVersion == "Solaris 10")
     + ## identical(non.0.assets, S10.b32.n0)
     + ## else ## all other 32-bit, notably Linux
     + ## identical(non.0.assets, b32.n0)
     +
     + differWts || identical(head(CLs5c.0.120$free_indices, 12),
     + list(c(295L, 453L), 453L, c(453L, 472L), c(19L, 453L, 472L),
     + c(19L, 453L), 453L, c(15L, 453L), 15L, c(15L, 320L),
     + c(15L, 105L, 320L), c(105L, 320L), c(105L, 320L, 472L)))
     + })
     Error: !strict || identical(non.0.assets, non.0.TARG) is not TRUE
     Execution halted
Flavor: r-patched-solaris-x86