R Under development (unstable) (2026-02-18 r89435 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) > > > # A high-degree polynomial system (R.B. Kearfott, ACM 1987) > # There are 12 real roots (and 126 complex roots to this system!) > # > hdp <- function(x) { + f <- rep(NA, length(x)) + f[1] <- 5 * x[1]^9 - 6 * x[1]^5 * x[2]^2 + x[1] * x[2]^4 + 2 * x[1] * x[3] + f[2] <- -2 * x[1]^6 * x[2] + 2 * x[1]^2 * x[2]^3 + 2 * x[2] * x[3] + f[3] <- x[1]^2 + x[2]^2 - 0.265625 + f + } > > p0 <- matrix(runif(150), 50, 3) # 200 starting values, each of length 3 > #ans <- BBsolve(par=p0, fn=hdp) > ans <- multiStart(par=p0, fn=hdp) 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. Parameter set : 21 ... Successful convergence. Parameter set : 22 ... Successful convergence. Parameter set : 23 ... Successful convergence. Parameter set : 24 ... Successful convergence. Parameter set : 25 ... Successful convergence. Parameter set : 26 ... Successful convergence. Parameter set : 27 ... Successful convergence. Parameter set : 28 ... Successful convergence. Parameter set : 29 ... Successful convergence. Parameter set : 30 ... Successful convergence. Parameter set : 31 ... Unsuccessful convergence. Parameter set : 32 ... Successful convergence. Parameter set : 33 ... Successful convergence. Parameter set : 34 ... Successful convergence. Parameter set : 35 ... Successful convergence. Parameter set : 36 ... Successful convergence. Parameter set : 37 ... Successful convergence. Parameter set : 38 ... Successful convergence. Parameter set : 39 ... Successful convergence. Parameter set : 40 ... Successful convergence. Parameter set : 41 ... Successful convergence. Parameter set : 42 ... Successful convergence. Parameter set : 43 ... Successful convergence. Parameter set : 44 ... Successful convergence. Parameter set : 45 ... Successful convergence. Parameter set : 46 ... Successful convergence. Parameter set : 47 ... Successful convergence. Parameter set : 48 ... Successful convergence. Parameter set : 49 ... Successful convergence. Parameter set : 50 ... Successful convergence. > > #pc <- princomp(ans$par) > #plot(pc$scores[,1]) # you can see all 12 solutions > > good <- 19.3508246871 > z <- sum(ans$par[ans$converged,]) > > print(z, digits=16) [1] 20.10587920095069 > if(any(abs(good - z) > 2.0)) stop("BB test BBsolve HDP FAILED") > > proc.time() user system elapsed 0.93 0.14 1.03