R Under development (unstable) (2026-02-10 r89394 ucrt) -- "Unsuffered Consequences" Copyright (C) 2026 The R Foundation for Statistical Computing Platform: x86_64-w64-mingw32/x64 R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > if(!require("BB"))stop("this test requires package BB.") Loading required package: BB > if(!require("setRNG"))stop("this test requires setRNG.") Loading required package: setRNG > > # Use a preset seed so test values are reproducable. > test.rng <- list(kind="Mersenne-Twister", normal.kind="Inversion", seed=1234) > old.seed <- setRNG(test.rng) > > > # Brown's almost linear system(A.P. Morgan, ACM 1983) > brownlin <- function(x) { + # two distinct solutions if n is even + # three distinct solutions if n is odd + n <- length(x) + f <- rep(NA, n) + nm1 <- 1:(n-1) + f[nm1] <- x[nm1] + sum(x) - (n+1) + f[n] <- prod(x) - 1 + f + } > > p0 <- matrix(rnorm(200), 20, 10) # 20 starting values, each of length 10 > #ans1 <- dfsane(par=p0[1,], fn=brownlin) > #ans <- BBsolve(par=p0, fn=brownlin) > ans <- multiStart(par=p0, fn=brownlin) Parameter set : 1 ... Successful convergence. Parameter set : 2 ... Successful convergence. Parameter set : 3 ... Successful convergence. Parameter set : 4 ... Successful convergence. Parameter set : 5 ... Successful convergence. Parameter set : 6 ... Successful convergence. Parameter set : 7 ... Successful convergence. Parameter set : 8 ... Successful convergence. Parameter set : 9 ... Successful convergence. Parameter set : 10 ... Successful convergence. Parameter set : 11 ... Successful convergence. Parameter set : 12 ... Successful convergence. Parameter set : 13 ... Successful convergence. Parameter set : 14 ... Successful convergence. Parameter set : 15 ... Successful convergence. Parameter set : 16 ... Successful convergence. Parameter set : 17 ... Successful convergence. Parameter set : 18 ... Successful convergence. Parameter set : 19 ... Successful convergence. Parameter set : 20 ... Successful convergence. > > #ans$par > > #pc <- princomp(ans$par) > #plot(pc$scores[,1]) # plot shows two/three distinct solutions depending on n is even/odd > > > # ans$convergence > > z <- sum(ans$par) > good <- 200.2262649045772 > #on Windows > #on Linux64 200.205695196736 > #on Linux32 200.2262649045772 > print(z, digits=16) [1] 200.1851255860637 > if(any(abs(good - z) > 5e-1)) stop("BB test BBsolve Brownln FAILED") > > proc.time() user system elapsed 0.37 0.06 0.40