Attempts to minimize an unconstrained or bounds (box) and mask constrained function of many parameters by a nonlinear conjugate gradients method using the Dai / Yuan update and restart. Based on Nash (1979) Algorithm 22 for its main structure, which is method "CG" of the optim() function that has rarely performed well. Bounds (or box) constraints and masks (equality constraints) can be imposed on parameters. This code is entirely in R to allow users to explore and understand the method.

Rcgmin is a wrapper that calls Rcgminu for unconstrained problems, else Rcgminb. The direct call of the subsidiary routines is discouraged.

Rcgmin(par, fn, gr, lower, upper, bdmsk, control = list(), ...)

   Rcgminu(par, fn, gr, control = list(), ...) 

   Rcgminb(par, fn, gr, lower, upper, bdmsk, control = list(), ...)

Arguments

par

A numeric vector of starting estimates.

fn

A function that returns the value of the objective at the supplied set of parameters par using auxiliary data in .... The first argument of fn must be par.

gr

A function that returns the gradient of the objective at the supplied set of parameters par using auxiliary data in ... as a numeric vector. The first argument of gr must be par.

lower

A vector of lower bounds on the parameters.

upper

A vector of upper bounds on the parameters.

bdmsk

An indicator vector, having 1 for each parameter that is "free" or unconstrained, and 0 for any parameter that is fixed or MASKED for the duration of the optimization.

control

An optional list of control settings.

...

Further arguments to be passed to fn.

Details

Function fn must return a numeric value.

gr must be provided, either as a user-supplied function, or as the quoted name of one of the gradient approximation routines provided in this package. Choices are routines grfwd, grback, grcentral or grnd. The last of these calls the grad() function from package numDeriv. These are called by putting the name of the (numerical) gradient function in quotation marks, e.g.,

gr="grcentral"

to use the central difference numerical approximation. (This is the recommended choice in the absence of other considerations.)

Note that all but the grnd routine use a stepsize parameter that can be redefined in a special environment optsp in variable deps. The default is optsp$deps = 1e-06. However, redefining this is discouraged unless you understand what you are doing.

The control argument is a list.

maxit

A limit on the number of iterations (default 500). Note that this is used to compute a quantity maxfeval<-round(sqrt(n+1)*maxit) where n is the number of parameters to be minimized.

trace

Set 0 (default) for no output, >0 for trace output (larger values imply more output).

eps

Tolerance used to calculate numerical gradients. Default is 1.0E-7. See source code for Rcgmin for details of application.

dowarn

= TRUE if we want warnings generated by optimx. Default is TRUE.

tol

Tolerance used in testing the size of the square of the gradient. Default is 0 on input, which uses a value of tolgr = npar*npar*.Machine$double.eps in testing if crossprod(g) <= tolgr * (abs(fmin) + reltest). If the user supplies a value for tol that is non-zero, then that value is used for tolgr.

reltest=100 is only alterable by changing the code. fmin is the current best value found for the function minimum value.

Note that the scale of the gradient means that tests for a small gradient can easily be mismatched to a given problem. The defaults in Rcgmin are a "best guess".

checkgrad

= TRUE if we want gradient function checked against numerical approximations. Default is FALSE.

checkbounds

= TRUE if we want bounds verified. Default is TRUE.

As of 2011-11-21 the following controls have been REMOVED

usenumDeriv

There is now a choice of numerical gradient routines. See argument gr.

maximize

To maximize user_function, supply a function that computes (-1)*user_function. An alternative is to call Rcgmin via the package optimx, where the MAXIMIZE field of the OPCON structure in package optfntools is used.

Value

A list with components:

par

The best set of parameters found.

value

The value of the objective at the best set of parameters found.

counts

A two-element integer vector giving the number of calls to 'fn' and 'gr' respectively. This excludes those calls needed to compute the Hessian, if requested, and any calls to 'fn' to compute a finite-difference approximation to the gradient.

convergence

An integer code. '0' indicates successful convergence. '1' indicates that the function evaluation count 'maxfeval' was reached. '2' indicates initial point is infeasible.

message

A character string giving any additional information returned by the optimizer, or 'NULL'.

bdmsk

Returned index describing the status of bounds and masks at the proposed solution. Parameters for which bdmsk are 1 are unconstrained or "free", those with bdmsk 0 are masked i.e., fixed. For historical reasons, we indicate a parameter is at a lower bound using -3 or upper bound using -1.

References

Dai, Y. H. and Y. Yuan (2001). An efficient hybrid conjugate gradient method for unconstrained optimization. Annals of Operations Research 103 (1-4), 33–47.

Nash JC (1979). Compact Numerical Methods for Computers: Linear Algebra and Function Minimisation. Adam Hilger, Bristol. Second Edition, 1990, Bristol: Institute of Physics Publications.

Nash, J. C. and M. Walker-Smith (1987). Nonlinear Parameter Estimation: An Integrated System in BASIC. New York: Marcel Dekker. See https://www.nashinfo.com/nlpe.htm for a downloadable version of this plus some extras.

See also

Examples

#####################
require(numDeriv)
#> Loading required package: numDeriv
## Rosenbrock Banana function
fr <- function(x) {
    x1 <- x[1]
    x2 <- x[2]
    100 * (x2 - x1 * x1)^2 + (1 - x1)^2
}

grr <- function(x) { ## Gradient of 'fr'
    x1 <- x[1]
    x2 <- x[2]
    c(-400 * x1 * (x2 - x1 * x1) - 2 * (1 - x1),
       200 *      (x2 - x1 * x1))
}

grn<-function(x){
    gg<-grad(fr, x)
}  


ansrosenbrock0 <- Rcgmin(fn=fr,gr=grn, par=c(1,2))
print(ansrosenbrock0) # use print to allow copy to separate file that 
#> $par
#> [1] 0.9999999 0.9999999
#> 
#> $value
#> [1] 2.769504e-15
#> 
#> $counts
#> [1] 68 30
#> 
#> $convergence
#> [1] 0
#> 
#> $message
#> [1] "Rcgmin seems to have converged"
#> 
#    can be called using source()
#####################
# Simple bounds and masks test
bt.f<-function(x){
 sum(x*x)
}

bt.g<-function(x){
  gg<-2.0*x
}

n<-10
xx<-rep(0,n)
lower<-rep(0,n)
upper<-lower # to get arrays set
bdmsk<-rep(1,n)
bdmsk[(trunc(n/2)+1)]<-0
for (i in 1:n) { 
   lower[i]<-1.0*(i-1)*(n-1)/n
   upper[i]<-1.0*i*(n+1)/n
}
xx<-0.5*(lower+upper)
ansbt<-Rcgmin(xx, bt.f, bt.g, lower, upper, bdmsk, control=list(trace=1))
#> admissible =  TRUE 
#> maskadded =  FALSE 
#> parchanged =  FALSE 
#> Rcgmin -- J C Nash 2009 - bounds constraint version of new CG
#> an R implementation of Alg 22 with Yuan/Dai modification
#> Rcgminb: maxfeval set to  10000 
#> Initial function value= 337.525 
#> Initial fn= 337.525 
#> 1   0   1   337.525   last decrease= NA 
#> 3   1   2   251.455   last decrease= 86.06996 
#> Yuan/Dai cycle reset
#> 3   2   1   251.455   last decrease= NA 
#> 5   3   2   249.2466   last decrease= 2.208412 
#> Yuan/Dai cycle reset
#> 5   4   1   249.2466   last decrease= NA 
#> 7   5   2   247.4157   last decrease= 1.830923 
#> Yuan/Dai cycle reset
#> 7   6   1   247.4157   last decrease= NA 
#> 9   7   2   245.9974   last decrease= 1.41828 
#> Yuan/Dai cycle reset
#> 9   8   1   245.9974   last decrease= NA 
#> 11   9   2   243.7158   last decrease= 2.281617 
#> Yuan/Dai cycle reset
#> 11   10   1   243.7158   last decrease= NA 
#> 13   11   2   242.6786   last decrease= 1.037168 
#> Yuan/Dai cycle reset
#> 13   12   1   242.6786   last decrease= NA 
#> 15   13   2   241.9403   last decrease= 0.7383196 
#> Yuan/Dai cycle reset
#> 15   14   1   241.9403   last decrease= NA 
#> 17   15   2   241.5045   last decrease= 0.4358326 
#> Yuan/Dai cycle reset
#> 17   16   1   241.5045   last decrease= NA 
#> 19   17   2   241.4025   last decrease= 0.1019875 
#> Very small gradient -- gradsqr = 0 
#> Rcgmin seems to have converged 

print(ansbt)
#> $par
#>  [1] 0.00 0.90 1.80 2.70 3.60 5.55 5.40 6.30 7.20 8.10
#> 
#> $value
#> [1] 241.4025
#> 
#> $counts
#> [1] 19 18
#> 
#> $convergence
#> [1] 0
#> 
#> $message
#> [1] "Rcgmin seems to have converged"
#> 
#> $bdmsk
#>  [1]  1 -3 -3 -3 -3  0 -3 -3 -3 -3
#> 

#####################
genrose.f<- function(x, gs=NULL){ # objective function
## One generalization of the Rosenbrock banana valley function (n parameters)
  n <- length(x)
        if(is.null(gs)) { gs=100.0 }
  fval<-1.0 + sum (gs*(x[1:(n-1)]^2 - x[2:n])^2 + (x[2:n] - 1)^2)
        return(fval)
}
genrose.g <- function(x, gs=NULL){
# vectorized gradient for genrose.f
# Ravi Varadhan 2009-04-03
  n <- length(x)
        if(is.null(gs)) { gs=100.0 }
  gg <- as.vector(rep(0, n))
  tn <- 2:n
  tn1 <- tn - 1
  z1 <- x[tn] - x[tn1]^2
  z2 <- 1 - x[tn]
  gg[tn] <- 2 * (gs * z1 - z2)
  gg[tn1] <- gg[tn1] - 4 * gs * x[tn1] * z1
  gg
}

# analytic gradient test
xx<-rep(pi,10)
lower<-NULL
upper<-NULL
bdmsk<-NULL
genrosea<-Rcgmin(xx,genrose.f, genrose.g, gs=10)
genrosen<-optimr(xx, genrose.f, "grfwd", method="Rcgmin", gs=10)
genrosenn<-try(Rcgmin(xx,genrose.f, gs=10)) # use local numerical gradient
#> Error in Rcgmin(xx, genrose.f, gs = 10) : 
#>   Rcgmin must have gradient function provided. Call via optimr() to use approximations.
cat("genrosea uses analytic gradient\n")
#> genrosea uses analytic gradient
print(genrosea)
#> $par
#>  [1] 1 1 1 1 1 1 1 1 1 1
#> 
#> $value
#> [1] 1
#> 
#> $counts
#> [1] 87 39
#> 
#> $convergence
#> [1] 0
#> 
#> $message
#> [1] "Rcgmin seems to have converged"
#> 
cat("genrosen uses default gradient approximation\n")
#> genrosen uses default gradient approximation
print(genrosen)
#> $par
#>  [1] 0.9999998 0.9999998 1.0000000 1.0000000 0.9999995 0.9999985 0.9999972
#>  [8] 0.9999947 0.9999898 0.9999804
#> attr(,"status")
#>  [1] " " " " " " " " " " " " " " " " " " " "
#> 
#> $value
#> [1] 1
#> attr(,"fname")
#> [1] "(no_name)"
#> attr(,"method")
#> [1] "Rcgmin"
#> attr(,"ptype")
#> [1] "U"
#> 
#> $counts
#> [1] 90 39
#> 
#> $convergence
#> [1] 0
#> 
#> $message
#> [1] NA
#> 
#> $scounts
#> [1] 90 39  0
#> 
#> attr(,"maximize")
#> [1] FALSE

cat("timings B vs U\n")
#> timings B vs U
lo<-rep(-100,10)
up<-rep(100,10)
bdmsk<-rep(1,10)
tb<-system.time(ab<-Rcgminb(xx,genrose.f, genrose.g, lower=lo, upper=up, bdmsk=bdmsk))[1]
#> Rcgminb: maxfeval set to  10000 
tu<-system.time(au<-Rcgminu(xx,genrose.f, genrose.g))[1]
cat("times U=",tu,"   B=",tb,"\n")
#> times U= 0.002    B= 0.004 
cat("solution Rcgminu\n")
#> solution Rcgminu
print(au)
#> $par
#>  [1] 1 1 1 1 1 1 1 1 1 1
#> 
#> $value
#> [1] 1
#> 
#> $counts
#> [1] 146  69
#> 
#> $convergence
#> [1] 0
#> 
#> $message
#> [1] "Rcgmin seems to have converged"
#> 
cat("solution Rcgminb\n")
#> solution Rcgminb
print(ab)
#> $par
#>  [1] 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000
#>  [8] 1.0000000 1.0000000 0.9999999
#> 
#> $value
#> [1] 1
#> 
#> $counts
#> [1] 120  58
#> 
#> $convergence
#> [1] 0
#> 
#> $message
#> [1] "Rcgmin seems to have converged"
#> 
#> $bdmsk
#>  [1] 1 1 1 1 1 1 1 1 1 1
#> 
cat("diff fu-fb=",au$value-ab$value,"\n")
#> diff fu-fb= -1.110223e-14 
cat("max abs parameter diff = ", max(abs(au$par-ab$par)),"\n")
#> max abs parameter diff =  8.590758e-08 

maxfn<-function(x) {
        n<-length(x)
  ss<-seq(1,n)
  f<-10-(crossprod(x-ss))^2
  f<-as.numeric(f)
  return(f)
}

gmaxfn<-function(x) {
     gg<-grad(maxfn, x) 
}


negmaxfn<-function(x) {
  f<-(-1)*maxfn(x)
  return(f)
}



cat("test that maximize=TRUE works correctly\n")
#> test that maximize=TRUE works correctly

n<-6
xx<-rep(1,n)
ansmax<-Rcgmin(xx,maxfn, gmaxfn, control=list(maximize=TRUE,trace=1))
#> Warning: Rcgmin no longer supports maximize 111121 -- see documentation
print(ansmax)
#> [[1]]
#> [1] 1 1 1 1 1 1
#> 
#> [[2]]
#> [1] NA
#> 
#> [[3]]
#> [1] 0 0
#> 
#> [[4]]
#> [1] 9999
#> 
#> [[5]]
#> [1] "Rcgmin no longer supports maximize 111121"
#> 

cat("using the negmax function should give same parameters\n")
#> using the negmax function should give same parameters
ansnegmaxn<-optimr(xx,negmaxfn, "grfwd", method="Rcgmin", control=list(trace=1))
#> parchanged =  FALSE 
#> Parameter scaling:[1] 1 1 1 1 1 1
#> Using numerical approximation ' grfwd ' to gradient in optimr()
#> Rcgminu -- J C Nash 2009 - unconstrained version CG min
#> an R implementation of Alg 22 with Yuan/Dai modification
#> Initial function value= 3015 
#> Initial fn= 3015 
#> 1   0   1   3015   last decrease= NA 
#> ***6   1   2   -9.572994   last decrease= 3024.573 
#> Yuan/Dai cycle reset
#> 6   2   1   -9.572994   last decrease= NA 
#> 8   3   2   -9.917497   last decrease= 0.344503 
#> Yuan/Dai cycle reset
#> 8   4   1   -9.917497   last decrease= NA 
#> 10   5   2   -9.988393   last decrease= 0.07089675 
#> Yuan/Dai cycle reset
#> 10   6   1   -9.988393   last decrease= NA 
#> 12   7   2   -9.998355   last decrease= 0.009962049 
#> Yuan/Dai cycle reset
#> 12   8   1   -9.998355   last decrease= NA 
#> 14   9   2   -9.999767   last decrease= 0.001411631 
#> Yuan/Dai cycle reset
#> 14   10   1   -9.999767   last decrease= NA 
#> 16   11   2   -9.99996   last decrease= 0.000192525 
#> Yuan/Dai cycle reset
#> 16   12   1   -9.99996   last decrease= NA 
#> 18   13   2   -9.999992   last decrease= 3.285756e-05 
#> Yuan/Dai cycle reset
#> 18   14   1   -9.999992   last decrease= NA 
#> 20   15   2   -9.999999   last decrease= 6.110352e-06 
#> Yuan/Dai cycle reset
#> 20   16   1   -9.999999   last decrease= NA 
#> 22   17   2   -10   last decrease= 1.171299e-06 
#> Yuan/Dai cycle reset
#> 22   18   1   -10   last decrease= NA 
#> 24   19   2   -10   last decrease= 2.24885e-07 
#> Yuan/Dai cycle reset
#> 24   20   1   -10   last decrease= NA 
#> 26   21   2   -10   last decrease= 4.162082e-08 
#> Yuan/Dai cycle reset
#> 26   22   1   -10   last decrease= NA 
#> 28   23   2   -10   last decrease= 1.256772e-11 
#> Yuan/Dai cycle reset
#> 28   24   1   -10   last decrease= NA 
#> 30   25   2   -10   last decrease= 1.251443e-11 
#> Yuan/Dai cycle reset
#> 30   26   1   -10   last decrease= NA 
#> 32   27   2   -10   last decrease= 1.245581e-11 
#> Yuan/Dai cycle reset
#> 32   28   1   -10   last decrease= NA 
#> 34   29   2   -10   last decrease= 1.239719e-11 
#> Yuan/Dai cycle reset
#> 34   30   1   -10   last decrease= NA 
#> 36   31   2   -10   last decrease= 1.234035e-11 
#> Yuan/Dai cycle reset
#> 36   32   1   -10   last decrease= NA 
#> 38   33   2   -10   last decrease= 1.228528e-11 
#> Yuan/Dai cycle reset
#> 38   34   1   -10   last decrease= NA 
#> 40   35   2   -10   last decrease= 1.223022e-11 
#> Yuan/Dai cycle reset
#> 40   36   1   -10   last decrease= NA 
#> 42   37   2   -10   last decrease= 1.217515e-11 
#> Yuan/Dai cycle reset
#> 42   38   1   -10   last decrease= NA 
#> 44   39   2   -10   last decrease= 1.211653e-11 
#> Yuan/Dai cycle reset
#> 44   40   1   -10   last decrease= NA 
#> 46   41   2   -10   last decrease= 1.206502e-11 
#> Yuan/Dai cycle reset
#> 46   42   1   -10   last decrease= NA 
#> 48   43   2   -10   last decrease= 1.200995e-11 
#> Yuan/Dai cycle reset
#> 48   44   1   -10   last decrease= NA 
#> 50   45   2   -10   last decrease= 1.195311e-11 
#> Yuan/Dai cycle reset
#> 50   46   1   -10   last decrease= NA 
#> 52   47   2   -10   last decrease= 1.189981e-11 
#> Yuan/Dai cycle reset
#> 52   48   1   -10   last decrease= NA 
#> 54   49   2   -10   last decrease= 1.184297e-11 
#> Yuan/Dai cycle reset
#> 54   50   1   -10   last decrease= NA 
#> 56   51   2   -10   last decrease= 1.178968e-11 
#> Yuan/Dai cycle reset
#> 56   52   1   -10   last decrease= NA 
#> 58   53   2   -10   last decrease= 1.173817e-11 
#> Yuan/Dai cycle reset
#> 58   54   1   -10   last decrease= NA 
#> 60   55   2   -10   last decrease= 1.168488e-11 
#> Yuan/Dai cycle reset
#> 60   56   1   -10   last decrease= NA 
#> 62   57   2   -10   last decrease= 1.163336e-11 
#> Yuan/Dai cycle reset
#> 62   58   1   -10   last decrease= NA 
#> 64   59   2   -10   last decrease= 1.158185e-11 
#> Yuan/Dai cycle reset
#> 64   60   1   -10   last decrease= NA 
#> 66   61   2   -10   last decrease= 1.152856e-11 
#> Yuan/Dai cycle reset
#> 66   62   1   -10   last decrease= NA 
#> 68   63   2   -10   last decrease= 1.148237e-11 
#> Yuan/Dai cycle reset
#> 68   64   1   -10   last decrease= NA 
#> 70   65   2   -10   last decrease= 1.142553e-11 
#> Yuan/Dai cycle reset
#> 70   66   1   -10   last decrease= NA 
#> 72   67   2   -10   last decrease= 1.137579e-11 
#> Yuan/Dai cycle reset
#> 72   68   1   -10   last decrease= NA 
#> 74   69   2   -10   last decrease= 1.13225e-11 
#> Yuan/Dai cycle reset
#> 74   70   1   -10   last decrease= NA 
#> 76   71   2   -10   last decrease= 1.127809e-11 
#> Yuan/Dai cycle reset
#> 76   72   1   -10   last decrease= NA 
#> 78   73   2   -10   last decrease= 1.122835e-11 
#> Yuan/Dai cycle reset
#> 78   74   1   -10   last decrease= NA 
#> 80   75   2   -10   last decrease= 1.117861e-11 
#> Yuan/Dai cycle reset
#> 80   76   1   -10   last decrease= NA 
#> 82   77   2   -10   last decrease= 1.112355e-11 
#> Yuan/Dai cycle reset
#> 82   78   1   -10   last decrease= NA 
#> 84   79   2   -10   last decrease= 1.107914e-11 
#> Yuan/Dai cycle reset
#> 84   80   1   -10   last decrease= NA 
#> 86   81   2   -10   last decrease= 1.10294e-11 
#> Yuan/Dai cycle reset
#> 86   82   1   -10   last decrease= NA 
#> 88   83   2   -10   last decrease= 1.098321e-11 
#> Yuan/Dai cycle reset
#> 88   84   1   -10   last decrease= NA 
#> 90   85   2   -10   last decrease= 1.09317e-11 
#> Yuan/Dai cycle reset
#> 90   86   1   -10   last decrease= NA 
#> 92   87   2   -10   last decrease= 1.088551e-11 
#> Yuan/Dai cycle reset
#> 92   88   1   -10   last decrease= NA 
#> 94   89   2   -10   last decrease= 1.083578e-11 
#> Yuan/Dai cycle reset
#> 94   90   1   -10   last decrease= NA 
#> 96   91   2   -10   last decrease= 1.078782e-11 
#> Yuan/Dai cycle reset
#> 96   92   1   -10   last decrease= NA 
#> 98   93   2   -10   last decrease= 1.074163e-11 
#> Yuan/Dai cycle reset
#> 98   94   1   -10   last decrease= NA 
#> 100   95   2   -10   last decrease= 1.0699e-11 
#> Yuan/Dai cycle reset
#> 100   96   1   -10   last decrease= NA 
#> 102   97   2   -10   last decrease= 1.064926e-11 
#> Yuan/Dai cycle reset
#> 102   98   1   -10   last decrease= NA 
#> 104   99   2   -10   last decrease= 1.059952e-11 
#> Yuan/Dai cycle reset
#> 104   100   1   -10   last decrease= NA 
#> 106   101   2   -10   last decrease= 1.055511e-11 
#> Yuan/Dai cycle reset
#> 106   102   1   -10   last decrease= NA 
#> 108   103   2   -10   last decrease= 1.051248e-11 
#> Yuan/Dai cycle reset
#> 108   104   1   -10   last decrease= NA 
#> 110   105   2   -10   last decrease= 1.046452e-11 
#> Yuan/Dai cycle reset
#> 110   106   1   -10   last decrease= NA 
#> 112   107   2   -10   last decrease= 1.041833e-11 
#> Yuan/Dai cycle reset
#> 112   108   1   -10   last decrease= NA 
#> 114   109   2   -10   last decrease= 1.037392e-11 
#> Yuan/Dai cycle reset
#> 114   110   1   -10   last decrease= NA 
#> 116   111   2   -10   last decrease= 1.033129e-11 
#> Yuan/Dai cycle reset
#> 116   112   1   -10   last decrease= NA 
#> 118   113   2   -10   last decrease= 1.028866e-11 
#> Yuan/Dai cycle reset
#> 118   114   1   -10   last decrease= NA 
#> 120   115   2   -10   last decrease= 1.02407e-11 
#> Yuan/Dai cycle reset
#> 120   116   1   -10   last decrease= NA 
#> 122   117   2   -10   last decrease= 1.019806e-11 
#> Yuan/Dai cycle reset
#> 122   118   1   -10   last decrease= NA 
#> 124   119   2   -10   last decrease= 1.015366e-11 
#> Yuan/Dai cycle reset
#> 124   120   1   -10   last decrease= NA 
#> 126   121   2   -10   last decrease= 1.011102e-11 
#> Yuan/Dai cycle reset
#> 126   122   1   -10   last decrease= NA 
#> 128   123   2   -10   last decrease= 1.006839e-11 
#> Yuan/Dai cycle reset
#> 128   124   1   -10   last decrease= NA 
#> 130   125   2   -10   last decrease= 1.002398e-11 
#> Yuan/Dai cycle reset
#> 130   126   1   -10   last decrease= NA 
#> 132   127   2   -10   last decrease= 9.981349e-12 
#> Yuan/Dai cycle reset
#> 132   128   1   -10   last decrease= NA 
#> 134   129   2   -10   last decrease= 9.93694e-12 
#> Yuan/Dai cycle reset
#> 134   130   1   -10   last decrease= NA 
#> 136   131   2   -10   last decrease= 9.894308e-12 
#> Yuan/Dai cycle reset
#> 136   132   1   -10   last decrease= NA 
#> 138   133   2   -10   last decrease= 9.853451e-12 
#> Yuan/Dai cycle reset
#> 138   134   1   -10   last decrease= NA 
#> 140   135   2   -10   last decrease= 9.812595e-12 
#> Yuan/Dai cycle reset
#> 140   136   1   -10   last decrease= NA 
#> 142   137   2   -10   last decrease= 9.771739e-12 
#> Yuan/Dai cycle reset
#> 142   138   1   -10   last decrease= NA 
#> 144   139   2   -10   last decrease= 9.72733e-12 
#> Yuan/Dai cycle reset
#> 144   140   1   -10   last decrease= NA 
#> 146   141   2   -10   last decrease= 9.690027e-12 
#> Yuan/Dai cycle reset
#> 146   142   1   -10   last decrease= NA 
#> 148   143   2   -10   last decrease= 9.645618e-12 
#> Yuan/Dai cycle reset
#> 148   144   1   -10   last decrease= NA 
#> 150   145   2   -10   last decrease= 9.610091e-12 
#> Yuan/Dai cycle reset
#> 150   146   1   -10   last decrease= NA 
#> 152   147   2   -10   last decrease= 9.565682e-12 
#> Yuan/Dai cycle reset
#> 152   148   1   -10   last decrease= NA 
#> 154   149   2   -10   last decrease= 9.526602e-12 
#> Yuan/Dai cycle reset
#> 154   150   1   -10   last decrease= NA 
#> 156   151   2   -10   last decrease= 9.485746e-12 
#> Yuan/Dai cycle reset
#> 156   152   1   -10   last decrease= NA 
#> 158   153   2   -10   last decrease= 9.446666e-12 
#> Yuan/Dai cycle reset
#> 158   154   1   -10   last decrease= NA 
#> 160   155   2   -10   last decrease= 9.405809e-12 
#> Yuan/Dai cycle reset
#> 160   156   1   -10   last decrease= NA 
#> 162   157   2   -10   last decrease= 9.372059e-12 
#> Yuan/Dai cycle reset
#> 162   158   1   -10   last decrease= NA 
#> 164   159   2   -10   last decrease= 9.32765e-12 
#> Yuan/Dai cycle reset
#> 164   160   1   -10   last decrease= NA 
#> 166   161   2   -10   last decrease= 9.290346e-12 
#> Yuan/Dai cycle reset
#> 166   162   1   -10   last decrease= NA 
#> 168   163   2   -10   last decrease= 9.251266e-12 
#> Yuan/Dai cycle reset
#> 168   164   1   -10   last decrease= NA 
#> 170   165   2   -10   last decrease= 9.213963e-12 
#> Yuan/Dai cycle reset
#> 170   166   1   -10   last decrease= NA 
#> 172   167   2   -10   last decrease= 9.173107e-12 
#> Yuan/Dai cycle reset
#> 172   168   1   -10   last decrease= NA 
#> 174   169   2   -10   last decrease= 9.135803e-12 
#> Yuan/Dai cycle reset
#> 174   170   1   -10   last decrease= NA 
#> 176   171   2   -10   last decrease= 9.100276e-12 
#> Yuan/Dai cycle reset
#> 176   172   1   -10   last decrease= NA 
#> 178   173   2   -10   last decrease= 9.062973e-12 
#> Yuan/Dai cycle reset
#> 178   174   1   -10   last decrease= NA 
#> 180   175   2   -10   last decrease= 9.029222e-12 
#> Yuan/Dai cycle reset
#> 180   176   1   -10   last decrease= NA 
#> 182   177   2   -10   last decrease= 8.984813e-12 
#> Yuan/Dai cycle reset
#> 182   178   1   -10   last decrease= NA 
#> 184   179   2   -10   last decrease= 8.949286e-12 
#> Yuan/Dai cycle reset
#> 184   180   1   -10   last decrease= NA 
#> 186   181   2   -10   last decrease= 8.917311e-12 
#> Yuan/Dai cycle reset
#> 186   182   1   -10   last decrease= NA 
#> 188   183   2   -10   last decrease= 8.876455e-12 
#> Yuan/Dai cycle reset
#> 188   184   1   -10   last decrease= NA 
#> 190   185   2   -10   last decrease= 8.839152e-12 
#> Yuan/Dai cycle reset
#> 190   186   1   -10   last decrease= NA 
#> 192   187   2   -10   last decrease= 8.805401e-12 
#> Yuan/Dai cycle reset
#> 192   188   1   -10   last decrease= NA 
#> 194   189   2   -10   last decrease= 8.769874e-12 
#> Yuan/Dai cycle reset
#> 194   190   1   -10   last decrease= NA 
#> 196   191   2   -10   last decrease= 8.730794e-12 
#> Yuan/Dai cycle reset
#> 196   192   1   -10   last decrease= NA 
#> 198   193   2   -10   last decrease= 8.697043e-12 
#> Yuan/Dai cycle reset
#> 198   194   1   -10   last decrease= NA 
#> 200   195   2   -10   last decrease= 8.665069e-12 
#> Yuan/Dai cycle reset
#> 200   196   1   -10   last decrease= NA 
#> 202   197   2   -10   last decrease= 8.625989e-12 
#> Yuan/Dai cycle reset
#> 202   198   1   -10   last decrease= NA 
#> 204   199   2   -10   last decrease= 8.592238e-12 
#> Yuan/Dai cycle reset
#> 204   200   1   -10   last decrease= NA 
#> 206   201   2   -10   last decrease= 8.556711e-12 
#> Yuan/Dai cycle reset
#> 206   202   1   -10   last decrease= NA 
#> 208   203   2   -10   last decrease= 8.521184e-12 
#> Yuan/Dai cycle reset
#> 208   204   1   -10   last decrease= NA 
#> 210   205   2   -10   last decrease= 8.490986e-12 
#> Yuan/Dai cycle reset
#> 210   206   1   -10   last decrease= NA 
#> 212   207   2   -10   last decrease= 8.455459e-12 
#> Yuan/Dai cycle reset
#> 212   208   1   -10   last decrease= NA 
#> 214   209   2   -10   last decrease= 8.419931e-12 
#> Yuan/Dai cycle reset
#> 214   210   1   -10   last decrease= NA 
#> 216   211   2   -10   last decrease= 8.389733e-12 
#> Yuan/Dai cycle reset
#> 216   212   1   -10   last decrease= NA 
#> 218   213   2   -10   last decrease= 8.350654e-12 
#> Yuan/Dai cycle reset
#> 218   214   1   -10   last decrease= NA 
#> 220   215   2   -10   last decrease= 8.318679e-12 
#> Yuan/Dai cycle reset
#> 220   216   1   -10   last decrease= NA 
#> 222   217   2   -10   last decrease= 8.283152e-12 
#> Yuan/Dai cycle reset
#> 222   218   1   -10   last decrease= NA 
#> 224   219   2   -10   last decrease= 8.25473e-12 
#> Yuan/Dai cycle reset
#> 224   220   1   -10   last decrease= NA 
#> 226   221   2   -10   last decrease= 8.217427e-12 
#> Yuan/Dai cycle reset
#> 226   222   1   -10   last decrease= NA 
#> 228   223   2   -10   last decrease= 8.189005e-12 
#> Yuan/Dai cycle reset
#> 228   224   1   -10   last decrease= NA 
#> 230   225   2   -10   last decrease= 8.153478e-12 
#> Yuan/Dai cycle reset
#> 230   226   1   -10   last decrease= NA 
#> 232   227   2   -10   last decrease= 8.12328e-12 
#> Yuan/Dai cycle reset
#> 232   228   1   -10   last decrease= NA 
#> 234   229   2   -10   last decrease= 8.091305e-12 
#> Yuan/Dai cycle reset
#> 234   230   1   -10   last decrease= NA 
#> 236   231   2   -10   last decrease= 8.059331e-12 
#> Yuan/Dai cycle reset
#> 236   232   1   -10   last decrease= NA 
#> 238   233   2   -10   last decrease= 8.023804e-12 
#> Yuan/Dai cycle reset
#> 238   234   1   -10   last decrease= NA 
#> 240   235   2   -10   last decrease= 7.991829e-12 
#> Yuan/Dai cycle reset
#> 240   236   1   -10   last decrease= NA 
#> 242   237   2   -10   last decrease= 7.963408e-12 
#> Yuan/Dai cycle reset
#> 242   238   1   -10   last decrease= NA 
#> 244   239   2   -10   last decrease= 7.929657e-12 
#> Yuan/Dai cycle reset
#> 244   240   1   -10   last decrease= NA 
#> 246   241   2   -10   last decrease= 7.897683e-12 
#> Yuan/Dai cycle reset
#> 246   242   1   -10   last decrease= NA 
#> 248   243   2   -10   last decrease= 7.869261e-12 
#> Yuan/Dai cycle reset
#> 248   244   1   -10   last decrease= NA 
#> 250   245   2   -10   last decrease= 7.839063e-12 
#> Yuan/Dai cycle reset
#> 250   246   1   -10   last decrease= NA 
#> 252   247   2   -10   last decrease= 7.805312e-12 
#> Yuan/Dai cycle reset
#> 252   248   1   -10   last decrease= NA 
#> 254   249   2   -10   last decrease= 7.775114e-12 
#> Yuan/Dai cycle reset
#> 254   250   1   -10   last decrease= NA 
#> 256   251   2   -10   last decrease= 7.746692e-12 
#> Yuan/Dai cycle reset
#> 256   252   1   -10   last decrease= NA 
#> 258   253   2   -10   last decrease= 7.716494e-12 
#> Yuan/Dai cycle reset
#> 258   254   1   -10   last decrease= NA 
#> 260   255   2   -10   last decrease= 7.68452e-12 
#> Yuan/Dai cycle reset
#> 260   256   1   -10   last decrease= NA 
#> 262   257   2   -10   last decrease= 7.657874e-12 
#> Yuan/Dai cycle reset
#> 262   258   1   -10   last decrease= NA 
#> 264   259   2   -10   last decrease= 7.624124e-12 
#> Yuan/Dai cycle reset
#> 264   260   1   -10   last decrease= NA 
#> 266   261   2   -10   last decrease= 7.593925e-12 
#> Yuan/Dai cycle reset
#> 266   262   1   -10   last decrease= NA 
#> 268   263   2   -10   last decrease= 7.569056e-12 
#> Yuan/Dai cycle reset
#> 268   264   1   -10   last decrease= NA 
#> 270   265   2   -10   last decrease= 7.538858e-12 
#> Yuan/Dai cycle reset
#> 270   266   1   -10   last decrease= NA 
#> 272   267   2   -10   last decrease= 7.506884e-12 
#> Yuan/Dai cycle reset
#> 272   268   1   -10   last decrease= NA 
#> 274   269   2   -10   last decrease= 7.480239e-12 
#> Yuan/Dai cycle reset
#> 274   270   1   -10   last decrease= NA 
#> 276   271   2   -10   last decrease= 7.450041e-12 
#> Yuan/Dai cycle reset
#> 276   272   1   -10   last decrease= NA 
#> 278   273   2   -10   last decrease= 7.423395e-12 
#> Yuan/Dai cycle reset
#> 278   274   1   -10   last decrease= NA 
#> 280   275   2   -10   last decrease= 7.389644e-12 
#> Yuan/Dai cycle reset
#> 280   276   1   -10   last decrease= NA 
#> 282   277   2   -10   last decrease= 7.364775e-12 
#> Yuan/Dai cycle reset
#> 282   278   1   -10   last decrease= NA 
#> 284   279   2   -10   last decrease= 7.336354e-12 
#> Yuan/Dai cycle reset
#> 284   280   1   -10   last decrease= NA 
#> 286   281   2   -10   last decrease= 7.306156e-12 
#> Yuan/Dai cycle reset
#> 286   282   1   -10   last decrease= NA 
#> 288   283   2   -10   last decrease= 7.27951e-12 
#> Yuan/Dai cycle reset
#> 288   284   1   -10   last decrease= NA 
#> 290   285   2   -10   last decrease= 7.249312e-12 
#> Yuan/Dai cycle reset
#> 290   286   1   -10   last decrease= NA 
#> 292   287   2   -10   last decrease= 7.22622e-12 
#> Yuan/Dai cycle reset
#> 292   288   1   -10   last decrease= NA 
#> 294   289   2   -10   last decrease= 7.196022e-12 
#> Yuan/Dai cycle reset
#> 294   290   1   -10   last decrease= NA 
#> 296   291   2   -10   last decrease= 7.169376e-12 
#> Yuan/Dai cycle reset
#> 296   292   1   -10   last decrease= NA 
#> 298   293   2   -10   last decrease= 7.142731e-12 
#> Yuan/Dai cycle reset
#> 298   294   1   -10   last decrease= NA 
#> 300   295   2   -10   last decrease= 7.112533e-12 
#> Yuan/Dai cycle reset
#> 300   296   1   -10   last decrease= NA 
#> 302   297   2   -10   last decrease= 7.08944e-12 
#> Yuan/Dai cycle reset
#> 302   298   1   -10   last decrease= NA 
#> 304   299   2   -10   last decrease= 7.062795e-12 
#> Yuan/Dai cycle reset
#> 304   300   1   -10   last decrease= NA 
#> 306   301   2   -10   last decrease= 7.034373e-12 
#> Yuan/Dai cycle reset
#> 306   302   1   -10   last decrease= NA 
#> 308   303   2   -10   last decrease= 7.005951e-12 
#> Yuan/Dai cycle reset
#> 308   304   1   -10   last decrease= NA 
#> 310   305   2   -10   last decrease= 6.979306e-12 
#> Yuan/Dai cycle reset
#> 310   306   1   -10   last decrease= NA 
#> 312   307   2   -10   last decrease= 6.954437e-12 
#> Yuan/Dai cycle reset
#> 312   308   1   -10   last decrease= NA 
#> 314   309   2   -10   last decrease= 6.929568e-12 
#> Yuan/Dai cycle reset
#> 314   310   1   -10   last decrease= NA 
#> 316   311   2   -10   last decrease= 6.902923e-12 
#> Yuan/Dai cycle reset
#> 316   312   1   -10   last decrease= NA 
#> 318   313   2   -10   last decrease= 6.876277e-12 
#> Yuan/Dai cycle reset
#> 318   314   1   -10   last decrease= NA 
#> 320   315   2   -10   last decrease= 6.853185e-12 
#> Yuan/Dai cycle reset
#> 320   316   1   -10   last decrease= NA 
#> 322   317   2   -10   last decrease= 6.82121e-12 
#> Yuan/Dai cycle reset
#> 322   318   1   -10   last decrease= NA 
#> 324   319   2   -10   last decrease= 6.796341e-12 
#> Yuan/Dai cycle reset
#> 324   320   1   -10   last decrease= NA 
#> 326   321   2   -10   last decrease= 6.775025e-12 
#> Yuan/Dai cycle reset
#> 326   322   1   -10   last decrease= NA 
#> 328   323   2   -10   last decrease= 6.74838e-12 
#> Yuan/Dai cycle reset
#> 328   324   1   -10   last decrease= NA 
#> 330   325   2   -10   last decrease= 6.721734e-12 
#> Yuan/Dai cycle reset
#> 330   326   1   -10   last decrease= NA 
#> 332   327   2   -10   last decrease= 6.693313e-12 
#> Yuan/Dai cycle reset
#> 332   328   1   -10   last decrease= NA 
#> 334   329   2   -10   last decrease= 6.675549e-12 
#> Yuan/Dai cycle reset
#> 334   330   1   -10   last decrease= NA 
#> 336   331   2   -10   last decrease= 6.647127e-12 
#> Yuan/Dai cycle reset
#> 336   332   1   -10   last decrease= NA 
#> 338   333   2   -10   last decrease= 6.624035e-12 
#> Yuan/Dai cycle reset
#> 338   334   1   -10   last decrease= NA 
#> 340   335   2   -10   last decrease= 6.595613e-12 
#> Yuan/Dai cycle reset
#> 340   336   1   -10   last decrease= NA 
#> 342   337   2   -10   last decrease= 6.576073e-12 
#> Yuan/Dai cycle reset
#> 342   338   1   -10   last decrease= NA 
#> 344   339   2   -10   last decrease= 6.549428e-12 
#> Yuan/Dai cycle reset
#> 344   340   1   -10   last decrease= NA 
#> 346   341   2   -10   last decrease= 6.522782e-12 
#> Yuan/Dai cycle reset
#> 346   342   1   -10   last decrease= NA 
#> 348   343   2   -10   last decrease= 6.503242e-12 
#> Yuan/Dai cycle reset
#> 348   344   1   -10   last decrease= NA 
#> 350   345   2   -10   last decrease= 6.474821e-12 
#> Yuan/Dai cycle reset
#> 350   346   1   -10   last decrease= NA 
#> 352   347   2   -10   last decrease= 6.455281e-12 
#> Yuan/Dai cycle reset
#> 352   348   1   -10   last decrease= NA 
#> 354   349   2   -10   last decrease= 6.432188e-12 
#> Yuan/Dai cycle reset
#> 354   350   1   -10   last decrease= NA 
#> 356   351   2   -10   last decrease= 6.403766e-12 
#> Yuan/Dai cycle reset
#> 356   352   1   -10   last decrease= NA 
#> 358   353   2   -10   last decrease= 6.38245e-12 
#> Yuan/Dai cycle reset
#> 358   354   1   -10   last decrease= NA 
#> 360   355   2   -10   last decrease= 6.355805e-12 
#> Yuan/Dai cycle reset
#> 360   356   1   -10   last decrease= NA 
#> 362   357   2   -10   last decrease= 6.338041e-12 
#> Yuan/Dai cycle reset
#> 362   358   1   -10   last decrease= NA 
#> 364   359   2   -10   last decrease= 6.311396e-12 
#> Yuan/Dai cycle reset
#> 364   360   1   -10   last decrease= NA 
#> 366   361   2   -10   last decrease= 6.29008e-12 
#> Yuan/Dai cycle reset
#> 366   362   1   -10   last decrease= NA 
#> 368   363   2   -10   last decrease= 6.263434e-12 
#> Yuan/Dai cycle reset
#> 368   364   1   -10   last decrease= NA 
#> 370   365   2   -10   last decrease= 6.245671e-12 
#> Yuan/Dai cycle reset
#> 370   366   1   -10   last decrease= NA 
#> 372   367   2   -10   last decrease= 6.220802e-12 
#> Yuan/Dai cycle reset
#> 372   368   1   -10   last decrease= NA 
#> 374   369   2   -10   last decrease= 6.195933e-12 
#> Yuan/Dai cycle reset
#> 374   370   1   -10   last decrease= NA 
#> 376   371   2   -10   last decrease= 6.178169e-12 
#> Yuan/Dai cycle reset
#> 376   372   1   -10   last decrease= NA 
#> 378   373   2   -10   last decrease= 6.151524e-12 
#> Yuan/Dai cycle reset
#> 378   374   1   -10   last decrease= NA 
#> 380   375   2   -10   last decrease= 6.128431e-12 
#> Yuan/Dai cycle reset
#> 380   376   1   -10   last decrease= NA 
#> 382   377   2   -10   last decrease= 6.110668e-12 
#> Yuan/Dai cycle reset
#> 382   378   1   -10   last decrease= NA 
#> 384   379   2   -10   last decrease= 6.087575e-12 
#> Yuan/Dai cycle reset
#> 384   380   1   -10   last decrease= NA 
#> 386   381   2   -10   last decrease= 6.062706e-12 
#> Yuan/Dai cycle reset
#> 386   382   1   -10   last decrease= NA 
#> 388   383   2   -10   last decrease= 6.043166e-12 
#> Yuan/Dai cycle reset
#> 388   384   1   -10   last decrease= NA 
#> 390   385   2   -10   last decrease= 6.020073e-12 
#> Yuan/Dai cycle reset
#> 390   386   1   -10   last decrease= NA 
#> 392   387   2   -10   last decrease= 6.00231e-12 
#> Yuan/Dai cycle reset
#> 392   388   1   -10   last decrease= NA 
#> 394   389   2   -10   last decrease= 5.979217e-12 
#> Yuan/Dai cycle reset
#> 394   390   1   -10   last decrease= NA 
#> 396   391   2   -10   last decrease= 5.956124e-12 
#> Yuan/Dai cycle reset
#> 396   392   1   -10   last decrease= NA 
#> 398   393   2   -10   last decrease= 5.933032e-12 
#> Yuan/Dai cycle reset
#> 398   394   1   -10   last decrease= NA 
#> 400   395   2   -10   last decrease= 5.915268e-12 
#> Yuan/Dai cycle reset
#> 400   396   1   -10   last decrease= NA 
#> 402   397   2   -10   last decrease= 5.892176e-12 
#> Yuan/Dai cycle reset
#> 402   398   1   -10   last decrease= NA 
#> 404   399   2   -10   last decrease= 5.870859e-12 
#> Yuan/Dai cycle reset
#> 404   400   1   -10   last decrease= NA 
#> 406   401   2   -10   last decrease= 5.853096e-12 
#> Yuan/Dai cycle reset
#> 406   402   1   -10   last decrease= NA 
#> 408   403   2   -10   last decrease= 5.82645e-12 
#> Yuan/Dai cycle reset
#> 408   404   1   -10   last decrease= NA 
#> 410   405   2   -10   last decrease= 5.81224e-12 
#> Yuan/Dai cycle reset
#> 410   406   1   -10   last decrease= NA 
#> 412   407   2   -10   last decrease= 5.787371e-12 
#> Yuan/Dai cycle reset
#> 412   408   1   -10   last decrease= NA 
#> 414   409   2   -10   last decrease= 5.769607e-12 
#> Yuan/Dai cycle reset
#> 414   410   1   -10   last decrease= NA 
#> 416   411   2   -10   last decrease= 5.748291e-12 
#> Yuan/Dai cycle reset
#> 416   412   1   -10   last decrease= NA 
#> 418   413   2   -10   last decrease= 5.725198e-12 
#> Yuan/Dai cycle reset
#> 418   414   1   -10   last decrease= NA 
#> 420   415   2   -10   last decrease= 5.709211e-12 
#> Yuan/Dai cycle reset
#> 420   416   1   -10   last decrease= NA 
#> 422   417   2   -10   last decrease= 5.684342e-12 
#> Yuan/Dai cycle reset
#> 422   418   1   -10   last decrease= NA 
#> 424   419   2   -10   last decrease= 5.666578e-12 
#> Yuan/Dai cycle reset
#> 424   420   1   -10   last decrease= NA 
#> 426   421   2   -10   last decrease= 5.645262e-12 
#> Yuan/Dai cycle reset
#> 426   422   1   -10   last decrease= NA 
#> 428   423   2   -10   last decrease= 5.629275e-12 
#> Yuan/Dai cycle reset
#> 428   424   1   -10   last decrease= NA 
#> 430   425   2   -10   last decrease= 5.606182e-12 
#> Yuan/Dai cycle reset
#> 430   426   1   -10   last decrease= NA 
#> 432   427   2   -10   last decrease= 5.586642e-12 
#> Yuan/Dai cycle reset
#> 432   428   1   -10   last decrease= NA 
#> 434   429   2   -10   last decrease= 5.568879e-12 
#> Yuan/Dai cycle reset
#> 434   430   1   -10   last decrease= NA 
#> 436   431   2   -10   last decrease= 5.549339e-12 
#> Yuan/Dai cycle reset
#> 436   432   1   -10   last decrease= NA 
#> 438   433   2   -10   last decrease= 5.526246e-12 
#> Yuan/Dai cycle reset
#> 438   434   1   -10   last decrease= NA 
#> 440   435   2   -10   last decrease= 5.510259e-12 
#> Yuan/Dai cycle reset
#> 440   436   1   -10   last decrease= NA 
#> 442   437   2   -10   last decrease= 5.488943e-12 
#> Yuan/Dai cycle reset
#> 442   438   1   -10   last decrease= NA 
#> 444   439   2   -10   last decrease= 5.472955e-12 
#> Yuan/Dai cycle reset
#> 444   440   1   -10   last decrease= NA 
#> 446   441   2   -10   last decrease= 5.451639e-12 
#> Yuan/Dai cycle reset
#> 446   442   1   -10   last decrease= NA 
#> 448   443   2   -10   last decrease= 5.430323e-12 
#> Yuan/Dai cycle reset
#> 448   444   1   -10   last decrease= NA 
#> 450   445   2   -10   last decrease= 5.414336e-12 
#> Yuan/Dai cycle reset
#> 450   446   1   -10   last decrease= NA 
#> 452   447   2   -10   last decrease= 5.398348e-12 
#> Yuan/Dai cycle reset
#> 452   448   1   -10   last decrease= NA 
#> 454   449   2   -10   last decrease= 5.377032e-12 
#> Yuan/Dai cycle reset
#> 454   450   1   -10   last decrease= NA 
#> 456   451   2   -10   last decrease= 5.355716e-12 
#> Yuan/Dai cycle reset
#> 456   452   1   -10   last decrease= NA 
#> 458   453   2   -10   last decrease= 5.341505e-12 
#> Yuan/Dai cycle reset
#> 458   454   1   -10   last decrease= NA 
#> 460   455   2   -10   last decrease= 5.320189e-12 
#> Yuan/Dai cycle reset
#> 460   456   1   -10   last decrease= NA 
#> 462   457   2   -10   last decrease= 5.302425e-12 
#> Yuan/Dai cycle reset
#> 462   458   1   -10   last decrease= NA 
#> 464   459   2   -10   last decrease= 5.284662e-12 
#> Yuan/Dai cycle reset
#> 464   460   1   -10   last decrease= NA 
#> 466   461   2   -10   last decrease= 5.266898e-12 
#> Yuan/Dai cycle reset
#> 466   462   1   -10   last decrease= NA 
#> 468   463   2   -10   last decrease= 5.250911e-12 
#> Yuan/Dai cycle reset
#> 468   464   1   -10   last decrease= NA 
#> 470   465   2   -10   last decrease= 5.229595e-12 
#> Yuan/Dai cycle reset
#> 470   466   1   -10   last decrease= NA 
#> 472   467   2   -10   last decrease= 5.211831e-12 
#> Yuan/Dai cycle reset
#> 472   468   1   -10   last decrease= NA 
#> 474   469   2   -10   last decrease= 5.190515e-12 
#> Yuan/Dai cycle reset
#> 474   470   1   -10   last decrease= NA 
#> 476   471   2   -10   last decrease= 5.17808e-12 
#> Yuan/Dai cycle reset
#> 476   472   1   -10   last decrease= NA 
#> 478   473   2   -10   last decrease= 5.15854e-12 
#> Yuan/Dai cycle reset
#> 478   474   1   -10   last decrease= NA 
#> 480   475   2   -10   last decrease= 5.139e-12 
#> Yuan/Dai cycle reset
#> 480   476   1   -10   last decrease= NA 
#> 482   477   2   -10   last decrease= 5.121237e-12 
#> Yuan/Dai cycle reset
#> 482   478   1   -10   last decrease= NA 
#> 484   479   2   -10   last decrease= 5.107026e-12 
#> Yuan/Dai cycle reset
#> 484   480   1   -10   last decrease= NA 
#> 486   481   2   -10   last decrease= 5.091039e-12 
#> Yuan/Dai cycle reset
#> 486   482   1   -10   last decrease= NA 
#> 488   483   2   -10   last decrease= 5.071499e-12 
#> Yuan/Dai cycle reset
#> 488   484   1   -10   last decrease= NA 
#> 490   485   2   -10   last decrease= 5.053735e-12 
#> Yuan/Dai cycle reset
#> 490   486   1   -10   last decrease= NA 
#> 492   487   2   -10   last decrease= 5.037748e-12 
#> Yuan/Dai cycle reset
#> 492   488   1   -10   last decrease= NA 
#> 494   489   2   -10   last decrease= 5.019984e-12 
#> Yuan/Dai cycle reset
#> 494   490   1   -10   last decrease= NA 
#> 496   491   2   -10   last decrease= 5.002221e-12 
#> Yuan/Dai cycle reset
#> 496   492   1   -10   last decrease= NA 
#> 498   493   2   -10   last decrease= 4.98801e-12 
#> Yuan/Dai cycle reset
#> 498   494   1   -10   last decrease= NA 
#> 500   495   2   -10   last decrease= 4.96847e-12 
#> Yuan/Dai cycle reset
#> 500   496   1   -10   last decrease= NA 
#> 502   497   2   -10   last decrease= 4.950707e-12 
#> Yuan/Dai cycle reset
#> 502   498   1   -10   last decrease= NA 
#> 504   499   2   -10   last decrease= 4.938272e-12 
#> Yuan/Dai cycle reset
#> 504   500   1   -10   last decrease= NA 
#> 506   501   2   -10   last decrease= 4.916956e-12 
#> Yuan/Dai cycle reset
#> 506   502   1   -10   last decrease= NA 
#> 508   503   2   -10   last decrease= 4.902745e-12 
#> Yuan/Dai cycle reset
#> 508   504   1   -10   last decrease= NA 
#> 510   505   2   -10   last decrease= 4.886758e-12 
#> Yuan/Dai cycle reset
#> 510   506   1   -10   last decrease= NA 
#> 512   507   2   -10   last decrease= 4.87077e-12 
#> Yuan/Dai cycle reset
#> 512   508   1   -10   last decrease= NA 
#> 514   509   2   -10   last decrease= 4.854783e-12 
#> Yuan/Dai cycle reset
#> 514   510   1   -10   last decrease= NA 
#> 516   511   2   -10   last decrease= 4.838796e-12 
#> Yuan/Dai cycle reset
#> 516   512   1   -10   last decrease= NA 
#> 518   513   2   -10   last decrease= 4.81748e-12 
#> Yuan/Dai cycle reset
#> 518   514   1   -10   last decrease= NA 
#> 520   515   2   -10   last decrease= 4.806822e-12 
#> Yuan/Dai cycle reset
#> 520   516   1   -10   last decrease= NA 
#> 522   517   2   -10   last decrease= 4.787282e-12 
#> Yuan/Dai cycle reset
#> 522   518   1   -10   last decrease= NA 
#> 524   519   2   -10   last decrease= 4.774847e-12 
#> Yuan/Dai cycle reset
#> 524   520   1   -10   last decrease= NA 
#> 526   521   2   -10   last decrease= 4.757084e-12 
#> Yuan/Dai cycle reset
#> 526   522   1   -10   last decrease= NA 
#> 528   523   2   -10   last decrease= 4.741096e-12 
#> Yuan/Dai cycle reset
#> 528   524   1   -10   last decrease= NA 
#> 530   525   2   -10   last decrease= 4.725109e-12 
#> Yuan/Dai cycle reset
#> 530   526   1   -10   last decrease= NA 
#> 532   527   2   -10   last decrease= 4.707346e-12 
#> Yuan/Dai cycle reset
#> 532   528   1   -10   last decrease= NA 
#> 534   529   2   -10   last decrease= 4.696687e-12 
#> Yuan/Dai cycle reset
#> 534   530   1   -10   last decrease= NA 
#> 536   531   2   -10   last decrease= 4.677148e-12 
#> Yuan/Dai cycle reset
#> 536   532   1   -10   last decrease= NA 
#> 538   533   2   -10   last decrease= 4.66116e-12 
#> Yuan/Dai cycle reset
#> 538   534   1   -10   last decrease= NA 
#> 540   535   2   -10   last decrease= 4.648726e-12 
#> Yuan/Dai cycle reset
#> 540   536   1   -10   last decrease= NA 
#> 542   537   2   -10   last decrease= 4.632739e-12 
#> Yuan/Dai cycle reset
#> 542   538   1   -10   last decrease= NA 
#> 544   539   2   -10   last decrease= 4.618528e-12 
#> Yuan/Dai cycle reset
#> 544   540   1   -10   last decrease= NA 
#> 546   541   2   -10   last decrease= 4.600764e-12 
#> Yuan/Dai cycle reset
#> 546   542   1   -10   last decrease= NA 
#> 548   543   2   -10   last decrease= 4.584777e-12 
#> Yuan/Dai cycle reset
#> 548   544   1   -10   last decrease= NA 
#> 550   545   2   -10   last decrease= 4.574119e-12 
#> Yuan/Dai cycle reset
#> 550   546   1   -10   last decrease= NA 
#> 552   547   2   -10   last decrease= 4.556355e-12 
#> Yuan/Dai cycle reset
#> 552   548   1   -10   last decrease= NA 
#> 554   549   2   -10   last decrease= 4.543921e-12 
#> Yuan/Dai cycle reset
#> 554   550   1   -10   last decrease= NA 
#> 556   551   2   -10   last decrease= 4.526157e-12 
#> Yuan/Dai cycle reset
#> 556   552   1   -10   last decrease= NA 
#> 558   553   2   -10   last decrease= 4.51017e-12 
#> Yuan/Dai cycle reset
#> 558   554   1   -10   last decrease= NA 
#> 560   555   2   -10   last decrease= 4.497736e-12 
#> Yuan/Dai cycle reset
#> 560   556   1   -10   last decrease= NA 
#> 562   557   2   -10   last decrease= 4.485301e-12 
#> Yuan/Dai cycle reset
#> 562   558   1   -10   last decrease= NA 
#> 564   559   2   -10   last decrease= 4.469314e-12 
#> Yuan/Dai cycle reset
#> 564   560   1   -10   last decrease= NA 
#> 566   561   2   -10   last decrease= 4.453327e-12 
#> Yuan/Dai cycle reset
#> 566   562   1   -10   last decrease= NA 
#> 568   563   2   -10   last decrease= 4.437339e-12 
#> Yuan/Dai cycle reset
#> 568   564   1   -10   last decrease= NA 
#> 570   565   2   -10   last decrease= 4.424905e-12 
#> Yuan/Dai cycle reset
#> 570   566   1   -10   last decrease= NA 
#> 572   567   2   -10   last decrease= 4.408918e-12 
#> Yuan/Dai cycle reset
#> 572   568   1   -10   last decrease= NA 
#> 574   569   2   -10   last decrease= 4.396483e-12 
#> Yuan/Dai cycle reset
#> 574   570   1   -10   last decrease= NA 
#> 576   571   2   -10   last decrease= 4.382272e-12 
#> Yuan/Dai cycle reset
#> 576   572   1   -10   last decrease= NA 
#> 578   573   2   -10   last decrease= 4.366285e-12 
#> Yuan/Dai cycle reset
#> 578   574   1   -10   last decrease= NA 
#> 580   575   2   -10   last decrease= 4.355627e-12 
#> Yuan/Dai cycle reset
#> 580   576   1   -10   last decrease= NA 
#> 582   577   2   -10   last decrease= 4.33964e-12 
#> Yuan/Dai cycle reset
#> 582   578   1   -10   last decrease= NA 
#> 584   579   2   -10   last decrease= 4.323653e-12 
#> Yuan/Dai cycle reset
#> 584   580   1   -10   last decrease= NA 
#> 586   581   2   -10   last decrease= 4.311218e-12 
#> Yuan/Dai cycle reset
#> 586   582   1   -10   last decrease= NA 
#> 588   583   2   -10   last decrease= 4.298784e-12 
#> Yuan/Dai cycle reset
#> 588   584   1   -10   last decrease= NA 
#> 590   585   2   -10   last decrease= 4.286349e-12 
#> Yuan/Dai cycle reset
#> 590   586   1   -10   last decrease= NA 
#> 592   587   2   -10   last decrease= 4.266809e-12 
#> Yuan/Dai cycle reset
#> 592   588   1   -10   last decrease= NA 
#> 594   589   2   -10   last decrease= 4.257927e-12 
#> Yuan/Dai cycle reset
#> 594   590   1   -10   last decrease= NA 
#> 596   591   2   -10   last decrease= 4.240164e-12 
#> Yuan/Dai cycle reset
#> 596   592   1   -10   last decrease= NA 
#> 598   593   2   -10   last decrease= 4.229506e-12 
#> Yuan/Dai cycle reset
#> 598   594   1   -10   last decrease= NA 
#> 600   595   2   -10   last decrease= 4.215295e-12 
#> Yuan/Dai cycle reset
#> 600   596   1   -10   last decrease= NA 
#> 602   597   2   -10   last decrease= 4.201084e-12 
#> Yuan/Dai cycle reset
#> 602   598   1   -10   last decrease= NA 
#> 604   599   2   -10   last decrease= 4.190426e-12 
#> Yuan/Dai cycle reset
#> 604   600   1   -10   last decrease= NA 
#> 606   601   2   -10   last decrease= 4.172662e-12 
#> Yuan/Dai cycle reset
#> 606   602   1   -10   last decrease= NA 
#> 608   603   2   -10   last decrease= 4.16378e-12 
#> Yuan/Dai cycle reset
#> 608   604   1   -10   last decrease= NA 
#> 610   605   2   -10   last decrease= 4.146017e-12 
#> Yuan/Dai cycle reset
#> 610   606   1   -10   last decrease= NA 
#> 612   607   2   -10   last decrease= 4.138911e-12 
#> Yuan/Dai cycle reset
#> 612   608   1   -10   last decrease= NA 
#> 614   609   2   -10   last decrease= 4.121148e-12 
#> Yuan/Dai cycle reset
#> 614   610   1   -10   last decrease= NA 
#> 616   611   2   -10   last decrease= 4.106937e-12 
#> Yuan/Dai cycle reset
#> 616   612   1   -10   last decrease= NA 
#> 618   613   2   -10   last decrease= 4.098055e-12 
#> Yuan/Dai cycle reset
#> 618   614   1   -10   last decrease= NA 
#> 620   615   2   -10   last decrease= 4.082068e-12 
#> Yuan/Dai cycle reset
#> 620   616   1   -10   last decrease= NA 
#> 622   617   2   -10   last decrease= 4.07141e-12 
#> Yuan/Dai cycle reset
#> 622   618   1   -10   last decrease= NA 
#> 624   619   2   -10   last decrease= 4.057199e-12 
#> Yuan/Dai cycle reset
#> 624   620   1   -10   last decrease= NA 
#> 626   621   2   -10   last decrease= 4.042988e-12 
#> Yuan/Dai cycle reset
#> 626   622   1   -10   last decrease= NA 
#> 628   623   2   -10   last decrease= 4.034106e-12 
#> Yuan/Dai cycle reset
#> 628   624   1   -10   last decrease= NA 
#> 630   625   2   -10   last decrease= 4.016343e-12 
#> Yuan/Dai cycle reset
#> 630   626   1   -10   last decrease= NA 
#> 632   627   2   -10   last decrease= 4.009237e-12 
#> Yuan/Dai cycle reset
#> 632   628   1   -10   last decrease= NA 
#> 634   629   2   -10   last decrease= 3.99325e-12 
#> Yuan/Dai cycle reset
#> 634   630   1   -10   last decrease= NA 
#> 636   631   2   -10   last decrease= 3.980816e-12 
#> Yuan/Dai cycle reset
#> 636   632   1   -10   last decrease= NA 
#> 638   633   2   -10   last decrease= 3.968381e-12 
#> Yuan/Dai cycle reset
#> 638   634   1   -10   last decrease= NA 
#> 640   635   2   -10   last decrease= 3.957723e-12 
#> Yuan/Dai cycle reset
#> 640   636   1   -10   last decrease= NA 
#> 642   637   2   -10   last decrease= 3.947065e-12 
#> Yuan/Dai cycle reset
#> 642   638   1   -10   last decrease= NA 
#> 644   639   2   -10   last decrease= 3.929301e-12 
#> Yuan/Dai cycle reset
#> 644   640   1   -10   last decrease= NA 
#> 646   641   2   -10   last decrease= 3.918643e-12 
#> Yuan/Dai cycle reset
#> 646   642   1   -10   last decrease= NA 
#> 648   643   2   -10   last decrease= 3.907985e-12 
#> Yuan/Dai cycle reset
#> 648   644   1   -10   last decrease= NA 
#> 650   645   2   -10   last decrease= 3.893774e-12 
#> Yuan/Dai cycle reset
#> 650   646   1   -10   last decrease= NA 
#> 652   647   2   -10   last decrease= 3.884892e-12 
#> Yuan/Dai cycle reset
#> 652   648   1   -10   last decrease= NA 
#> 654   649   2   -10   last decrease= 3.872458e-12 
#> Yuan/Dai cycle reset
#> 654   650   1   -10   last decrease= NA 
#> 656   651   2   -10   last decrease= 3.858247e-12 
#> Yuan/Dai cycle reset
#> 656   652   1   -10   last decrease= NA 
#> 658   653   2   -10   last decrease= 3.845813e-12 
#> Yuan/Dai cycle reset
#> 658   654   1   -10   last decrease= NA 
#> 660   655   2   -10   last decrease= 3.833378e-12 
#> Yuan/Dai cycle reset
#> 660   656   1   -10   last decrease= NA 
#> 662   657   2   -10   last decrease= 3.824496e-12 
#> Yuan/Dai cycle reset
#> 662   658   1   -10   last decrease= NA 
#> 664   659   2   -10   last decrease= 3.812062e-12 
#> Yuan/Dai cycle reset
#> 664   660   1   -10   last decrease= NA 
#> 666   661   2   -10   last decrease= 3.801404e-12 
#> Yuan/Dai cycle reset
#> 666   662   1   -10   last decrease= NA 
#> 668   663   2   -10   last decrease= 3.790745e-12 
#> Yuan/Dai cycle reset
#> 668   664   1   -10   last decrease= NA 
#> 670   665   2   -10   last decrease= 3.774758e-12 
#> Yuan/Dai cycle reset
#> 670   666   1   -10   last decrease= NA 
#> 672   667   2   -10   last decrease= 3.762324e-12 
#> Yuan/Dai cycle reset
#> 672   668   1   -10   last decrease= NA 
#> 674   669   2   -10   last decrease= 3.755218e-12 
#> Yuan/Dai cycle reset
#> 674   670   1   -10   last decrease= NA 
#> 676   671   2   -10   last decrease= 3.739231e-12 
#> Yuan/Dai cycle reset
#> 676   672   1   -10   last decrease= NA 
#> 678   673   2   -10   last decrease= 3.732126e-12 
#> Yuan/Dai cycle reset
#> 678   674   1   -10   last decrease= NA 
#> 680   675   2   -10   last decrease= 3.719691e-12 
#> Yuan/Dai cycle reset
#> 680   676   1   -10   last decrease= NA 
#> 682   677   2   -10   last decrease= 3.70548e-12 
#> Yuan/Dai cycle reset
#> 682   678   1   -10   last decrease= NA 
#> 684   679   2   -10   last decrease= 3.694822e-12 
#> Yuan/Dai cycle reset
#> 684   680   1   -10   last decrease= NA 
#> 686   681   2   -10   last decrease= 3.68594e-12 
#> Yuan/Dai cycle reset
#> 686   682   1   -10   last decrease= NA 
#> 688   683   2   -10   last decrease= 3.67173e-12 
#> Yuan/Dai cycle reset
#> 688   684   1   -10   last decrease= NA 
#> 690   685   2   -10   last decrease= 3.661071e-12 
#> Yuan/Dai cycle reset
#> 690   686   1   -10   last decrease= NA 
#> 692   687   2   -10   last decrease= 3.65219e-12 
#> Yuan/Dai cycle reset
#> 692   688   1   -10   last decrease= NA 
#> 694   689   2   -10   last decrease= 3.639755e-12 
#> Yuan/Dai cycle reset
#> 694   690   1   -10   last decrease= NA 
#> 696   691   2   -10   last decrease= 3.630873e-12 
#> Yuan/Dai cycle reset
#> 696   692   1   -10   last decrease= NA 
#> 698   693   2   -10   last decrease= 3.618439e-12 
#> Yuan/Dai cycle reset
#> 698   694   1   -10   last decrease= NA 
#> 700   695   2   -10   last decrease= 3.609557e-12 
#> Yuan/Dai cycle reset
#> 700   696   1   -10   last decrease= NA 
#> 702   697   2   -10   last decrease= 3.595346e-12 
#> Yuan/Dai cycle reset
#> 702   698   1   -10   last decrease= NA 
#> 704   699   2   -10   last decrease= 3.582912e-12 
#> Yuan/Dai cycle reset
#> 704   700   1   -10   last decrease= NA 
#> 706   701   2   -10   last decrease= 3.57403e-12 
#> Yuan/Dai cycle reset
#> 706   702   1   -10   last decrease= NA 
#> 708   703   2   -10   last decrease= 3.565148e-12 
#> Yuan/Dai cycle reset
#> 708   704   1   -10   last decrease= NA 
#> 710   705   2   -10   last decrease= 3.550937e-12 
#> Yuan/Dai cycle reset
#> 710   706   1   -10   last decrease= NA 
#> 712   707   2   -10   last decrease= 3.542056e-12 
#> Yuan/Dai cycle reset
#> 712   708   1   -10   last decrease= NA 
#> 714   709   2   -10   last decrease= 3.529621e-12 
#> Yuan/Dai cycle reset
#> 714   710   1   -10   last decrease= NA 
#> 716   711   2   -10   last decrease= 3.518963e-12 
#> Yuan/Dai cycle reset
#> 716   712   1   -10   last decrease= NA 
#> 718   713   2   -10   last decrease= 3.511857e-12 
#> Yuan/Dai cycle reset
#> 718   714   1   -10   last decrease= NA 
#> 720   715   2   -10   last decrease= 3.499423e-12 
#> Yuan/Dai cycle reset
#> 720   716   1   -10   last decrease= NA 
#> 722   717   2   -10   last decrease= 3.490541e-12 
#> Yuan/Dai cycle reset
#> 722   718   1   -10   last decrease= NA 
#> 724   719   2   -10   last decrease= 3.478107e-12 
#> Yuan/Dai cycle reset
#> 724   720   1   -10   last decrease= NA 
#> 726   721   2   -10   last decrease= 3.469225e-12 
#> Yuan/Dai cycle reset
#> 726   722   1   -10   last decrease= NA 
#> 728   723   2   -10   last decrease= 3.455014e-12 
#> Yuan/Dai cycle reset
#> 728   724   1   -10   last decrease= NA 
#> 730   725   2   -10   last decrease= 3.447909e-12 
#> Yuan/Dai cycle reset
#> 730   726   1   -10   last decrease= NA 
#> 732   727   2   -10   last decrease= 3.439027e-12 
#> Yuan/Dai cycle reset
#> 732   728   1   -10   last decrease= NA 
#> 734   729   2   -10   last decrease= 3.426592e-12 
#> Yuan/Dai cycle reset
#> 734   730   1   -10   last decrease= NA 
#> 736   731   2   -10   last decrease= 3.417711e-12 
#> Yuan/Dai cycle reset
#> 736   732   1   -10   last decrease= NA 
#> 738   733   2   -10   last decrease= 3.408829e-12 
#> Yuan/Dai cycle reset
#> 738   734   1   -10   last decrease= NA 
#> 740   735   2   -10   last decrease= 3.394618e-12 
#> Yuan/Dai cycle reset
#> 740   736   1   -10   last decrease= NA 
#> 742   737   2   -10   last decrease= 3.385736e-12 
#> Yuan/Dai cycle reset
#> 742   738   1   -10   last decrease= NA 
#> 744   739   2   -10   last decrease= 3.375078e-12 
#> Yuan/Dai cycle reset
#> 744   740   1   -10   last decrease= NA 
#> 746   741   2   -10   last decrease= 3.36442e-12 
#> Yuan/Dai cycle reset
#> 746   742   1   -10   last decrease= NA 
#> 748   743   2   -10   last decrease= 3.359091e-12 
#> Yuan/Dai cycle reset
#> 748   744   1   -10   last decrease= NA 
#> 750   745   2   -10   last decrease= 3.343104e-12 
#> Yuan/Dai cycle reset
#> 750   746   1   -10   last decrease= NA 
#> 752   747   2   -10   last decrease= 3.337775e-12 
#> Yuan/Dai cycle reset
#> 752   748   1   -10   last decrease= NA 
#> 754   749   2   -10   last decrease= 3.327116e-12 
#> Yuan/Dai cycle reset
#> 754   750   1   -10   last decrease= NA 
#> 756   751   2   -10   last decrease= 3.316458e-12 
#> Yuan/Dai cycle reset
#> 756   752   1   -10   last decrease= NA 
#> 758   753   2   -10   last decrease= 3.304024e-12 
#> Yuan/Dai cycle reset
#> 758   754   1   -10   last decrease= NA 
#> 760   755   2   -10   last decrease= 3.298695e-12 
#> Yuan/Dai cycle reset
#> 760   756   1   -10   last decrease= NA 
#> 762   757   2   -10   last decrease= 3.288037e-12 
#> Yuan/Dai cycle reset
#> 762   758   1   -10   last decrease= NA 
#> 764   759   2   -10   last decrease= 3.277378e-12 
#> Yuan/Dai cycle reset
#> 764   760   1   -10   last decrease= NA 
#> 766   761   2   -10   last decrease= 3.268497e-12 
#> Yuan/Dai cycle reset
#> 766   762   1   -10   last decrease= NA 
#> 768   763   2   -10   last decrease= 3.257838e-12 
#> Yuan/Dai cycle reset
#> 768   764   1   -10   last decrease= NA 
#> 770   765   2   -10   last decrease= 3.250733e-12 
#> Yuan/Dai cycle reset
#> 770   766   1   -10   last decrease= NA 
#> 772   767   2   -10   last decrease= 3.238299e-12 
#> Yuan/Dai cycle reset
#> 772   768   1   -10   last decrease= NA 
#> 774   769   2   -10   last decrease= 3.229417e-12 
#> Yuan/Dai cycle reset
#> 774   770   1   -10   last decrease= NA 
#> 776   771   2   -10   last decrease= 3.220535e-12 
#> Yuan/Dai cycle reset
#> 776   772   1   -10   last decrease= NA 
#> 778   773   2   -10   last decrease= 3.21343e-12 
#> Yuan/Dai cycle reset
#> 778   774   1   -10   last decrease= NA 
#> 780   775   2   -10   last decrease= 3.200995e-12 
#> Yuan/Dai cycle reset
#> 780   776   1   -10   last decrease= NA 
#> 782   777   2   -10   last decrease= 3.190337e-12 
#> Yuan/Dai cycle reset
#> 782   778   1   -10   last decrease= NA 
#> 784   779   2   -10   last decrease= 3.185008e-12 
#> Yuan/Dai cycle reset
#> 784   780   1   -10   last decrease= NA 
#> 786   781   2   -10   last decrease= 3.172573e-12 
#> Yuan/Dai cycle reset
#> 786   782   1   -10   last decrease= NA 
#> 788   783   2   -10   last decrease= 3.165468e-12 
#> Yuan/Dai cycle reset
#> 788   784   1   -10   last decrease= NA 
#> 790   785   2   -10   last decrease= 3.156586e-12 
#> Yuan/Dai cycle reset
#> 790   786   1   -10   last decrease= NA 
#> 792   787   2   -10   last decrease= 3.147704e-12 
#> Yuan/Dai cycle reset
#> 792   788   1   -10   last decrease= NA 
#> 794   789   2   -10   last decrease= 3.137046e-12 
#> Yuan/Dai cycle reset
#> 794   790   1   -10   last decrease= NA 
#> 796   791   2   -10   last decrease= 3.129941e-12 
#> Yuan/Dai cycle reset
#> 796   792   1   -10   last decrease= NA 
#> 798   793   2   -10   last decrease= 3.11573e-12 
#> Yuan/Dai cycle reset
#> 798   794   1   -10   last decrease= NA 
#> 800   795   2   -10   last decrease= 3.112177e-12 
#> Yuan/Dai cycle reset
#> 800   796   1   -10   last decrease= NA 
#> 802   797   2   -10   last decrease= 3.101519e-12 
#> Yuan/Dai cycle reset
#> 802   798   1   -10   last decrease= NA 
#> 804   799   2   -10   last decrease= 3.092637e-12 
#> Yuan/Dai cycle reset
#> 804   800   1   -10   last decrease= NA 
#> 806   801   2   -10   last decrease= 3.081979e-12 
#> Yuan/Dai cycle reset
#> 806   802   1   -10   last decrease= NA 
#> 808   803   2   -10   last decrease= 3.073097e-12 
#> Yuan/Dai cycle reset
#> 808   804   1   -10   last decrease= NA 
#> 810   805   2   -10   last decrease= 3.064216e-12 
#> Yuan/Dai cycle reset
#> 810   806   1   -10   last decrease= NA 
#> 812   807   2   -10   last decrease= 3.05711e-12 
#> Yuan/Dai cycle reset
#> 812   808   1   -10   last decrease= NA 
#> 814   809   2   -10   last decrease= 3.046452e-12 
#> Yuan/Dai cycle reset
#> 814   810   1   -10   last decrease= NA 
#> 816   811   2   -10   last decrease= 3.03757e-12 
#> Yuan/Dai cycle reset
#> 816   812   1   -10   last decrease= NA 
#> 818   813   2   -10   last decrease= 3.032241e-12 
#> Yuan/Dai cycle reset
#> 818   814   1   -10   last decrease= NA 
#> 820   815   2   -10   last decrease= 3.021583e-12 
#> Yuan/Dai cycle reset
#> 820   816   1   -10   last decrease= NA 
#> 822   817   2   -10   last decrease= 3.012701e-12 
#> Yuan/Dai cycle reset
#> 822   818   1   -10   last decrease= NA 
#> 824   819   2   -10   last decrease= 3.003819e-12 
#> Yuan/Dai cycle reset
#> 824   820   1   -10   last decrease= NA 
#> 826   821   2   -10   last decrease= 2.99849e-12 
#> Yuan/Dai cycle reset
#> 826   822   1   -10   last decrease= NA 
#> 828   823   2   -10   last decrease= 2.986056e-12 
#> Yuan/Dai cycle reset
#> 828   824   1   -10   last decrease= NA 
#> 830   825   2   -10   last decrease= 2.97895e-12 
#> Yuan/Dai cycle reset
#> 830   826   1   -10   last decrease= NA 
#> 832   827   2   -10   last decrease= 2.968292e-12 
#> Yuan/Dai cycle reset
#> 832   828   1   -10   last decrease= NA 
#> 834   829   2   -10   last decrease= 2.962963e-12 
#> Yuan/Dai cycle reset
#> 834   830   1   -10   last decrease= NA 
#> 836   831   2   -10   last decrease= 2.952305e-12 
#> Yuan/Dai cycle reset
#> 836   832   1   -10   last decrease= NA 
#> 838   833   2   -10   last decrease= 2.9452e-12 
#> Yuan/Dai cycle reset
#> 838   834   1   -10   last decrease= NA 
#> 840   835   2   -10   last decrease= 2.936318e-12 
#> Yuan/Dai cycle reset
#> 840   836   1   -10   last decrease= NA 
#> 842   837   2   -10   last decrease= 2.929212e-12 
#> Yuan/Dai cycle reset
#> 842   838   1   -10   last decrease= NA 
#> 844   839   2   -10   last decrease= 2.920331e-12 
#> Yuan/Dai cycle reset
#> 844   840   1   -10   last decrease= NA 
#> 846   841   2   -10   last decrease= 2.915002e-12 
#> Yuan/Dai cycle reset
#> 846   842   1   -10   last decrease= NA 
#> 848   843   2   -10   last decrease= 2.902567e-12 
#> Yuan/Dai cycle reset
#> 848   844   1   -10   last decrease= NA 
#> 850   845   2   -10   last decrease= 2.895462e-12 
#> Yuan/Dai cycle reset
#> 850   846   1   -10   last decrease= NA 
#> 852   847   2   -10   last decrease= 2.88658e-12 
#> Yuan/Dai cycle reset
#> 852   848   1   -10   last decrease= NA 
#> 854   849   2   -10   last decrease= 2.877698e-12 
#> Yuan/Dai cycle reset
#> 854   850   1   -10   last decrease= NA 
#> 856   851   2   -10   last decrease= 2.870593e-12 
#> Yuan/Dai cycle reset
#> 856   852   1   -10   last decrease= NA 
#> 858   853   2   -10   last decrease= 2.861711e-12 
#> Yuan/Dai cycle reset
#> 858   854   1   -10   last decrease= NA 
#> 860   855   2   -10   last decrease= 2.854605e-12 
#> Yuan/Dai cycle reset
#> 860   856   1   -10   last decrease= NA 
#> 862   857   2   -10   last decrease= 2.849276e-12 
#> Yuan/Dai cycle reset
#> 862   858   1   -10   last decrease= NA 
#> 864   859   2   -10   last decrease= 2.836842e-12 
#> Yuan/Dai cycle reset
#> 864   860   1   -10   last decrease= NA 
#> 866   861   2   -10   last decrease= 2.833289e-12 
#> Yuan/Dai cycle reset
#> 866   862   1   -10   last decrease= NA 
#> 868   863   2   -10   last decrease= 2.822631e-12 
#> Yuan/Dai cycle reset
#> 868   864   1   -10   last decrease= NA 
#> 870   865   2   -10   last decrease= 2.815526e-12 
#> Yuan/Dai cycle reset
#> 870   866   1   -10   last decrease= NA 
#> 872   867   2   -10   last decrease= 2.804867e-12 
#> Yuan/Dai cycle reset
#> 872   868   1   -10   last decrease= NA 
#> 874   869   2   -10   last decrease= 2.801315e-12 
#> Yuan/Dai cycle reset
#> 874   870   1   -10   last decrease= NA 
#> 876   871   2   -10   last decrease= 2.792433e-12 
#> Yuan/Dai cycle reset
#> 876   872   1   -10   last decrease= NA 
#> 878   873   2   -10   last decrease= 2.781775e-12 
#> Yuan/Dai cycle reset
#> 878   874   1   -10   last decrease= NA 
#> 880   875   2   -10   last decrease= 2.776446e-12 
#> Yuan/Dai cycle reset
#> 880   876   1   -10   last decrease= NA 
#> 882   877   2   -10   last decrease= 2.771117e-12 
#> Yuan/Dai cycle reset
#> 882   878   1   -10   last decrease= NA 
#> 884   879   2   -10   last decrease= 2.762235e-12 
#> Yuan/Dai cycle reset
#> 884   880   1   -10   last decrease= NA 
#> 886   881   2   -10   last decrease= 2.751577e-12 
#> Yuan/Dai cycle reset
#> 886   882   1   -10   last decrease= NA 
#> 888   883   2   -10   last decrease= 2.746248e-12 
#> Yuan/Dai cycle reset
#> 888   884   1   -10   last decrease= NA 
#> 890   885   2   -10   last decrease= 2.737366e-12 
#> Yuan/Dai cycle reset
#> 890   886   1   -10   last decrease= NA 
#> 892   887   2   -10   last decrease= 2.73026e-12 
#> Yuan/Dai cycle reset
#> 892   888   1   -10   last decrease= NA 
#> 894   889   2   -10   last decrease= 2.724931e-12 
#> Yuan/Dai cycle reset
#> 894   890   1   -10   last decrease= NA 
#> 896   891   2   -10   last decrease= 2.714273e-12 
#> Yuan/Dai cycle reset
#> 896   892   1   -10   last decrease= NA 
#> 898   893   2   -10   last decrease= 2.707168e-12 
#> Yuan/Dai cycle reset
#> 898   894   1   -10   last decrease= NA 
#> 900   895   2   -10   last decrease= 2.700062e-12 
#> Yuan/Dai cycle reset
#> 900   896   1   -10   last decrease= NA 
#> 902   897   2   -10   last decrease= 2.692957e-12 
#> Yuan/Dai cycle reset
#> 902   898   1   -10   last decrease= NA 
#> 904   899   2   -10   last decrease= 2.684075e-12 
#> Yuan/Dai cycle reset
#> 904   900   1   -10   last decrease= NA 
#> 906   901   2   -10   last decrease= 2.678746e-12 
#> Yuan/Dai cycle reset
#> 906   902   1   -10   last decrease= NA 
#> 908   903   2   -10   last decrease= 2.669864e-12 
#> Yuan/Dai cycle reset
#> 908   904   1   -10   last decrease= NA 
#> 910   905   2   -10   last decrease= 2.662759e-12 
#> Yuan/Dai cycle reset
#> 910   906   1   -10   last decrease= NA 
#> 912   907   2   -10   last decrease= 2.65743e-12 
#> Yuan/Dai cycle reset
#> 912   908   1   -10   last decrease= NA 
#> 914   909   2   -10   last decrease= 2.648548e-12 
#> Yuan/Dai cycle reset
#> 914   910   1   -10   last decrease= NA 
#> 916   911   2   -10   last decrease= 1.319833e-12 
#> Yuan/Dai cycle reset
#> 916   912   1   -10   last decrease= NA 
#> 918   913   2   -10   last decrease= 2.639666e-12 
#> Very small gradient -- gradsqr = 8.77384207433427e-13 
#> Rcgmin seems to have converged 
print(ansnegmaxn)
#> $par
#> [1] 0.9999995 1.9991687 2.9983378 3.9975066 4.9966748 5.9958428
#> attr(,"status")
#> [1] " " " " " " " " " " " "
#> 
#> $value
#> [1] -10
#> attr(,"fname")
#> [1] "(no_name)"
#> attr(,"method")
#> [1] "Rcgmin"
#> attr(,"ptype")
#> [1] "U"
#> 
#> $counts
#> [1] 918 914
#> 
#> $convergence
#> [1] 0
#> 
#> $message
#> [1] NA
#> 
#> $scounts
#> [1] 918 914   0
#> 
#> attr(,"maximize")
#> [1] FALSE


#####################  From Rvmmin.Rd
cat("test bounds and masks\n")
#> test bounds and masks
nn<-4
startx<-rep(pi,nn)
lo<-rep(2,nn)
up<-rep(10,nn)
grbds1<-Rcgmin(startx,genrose.f, gr=genrose.g,lower=lo,upper=up) 
#> Rcgminb: maxfeval set to  10000 
print(grbds1)
#> $par
#> [1]  2.000000  2.000000  3.181997 10.000000
#> 
#> $value
#> [1] 556.2391
#> 
#> $counts
#> [1] 34 24
#> 
#> $convergence
#> [1] 0
#> 
#> $message
#> [1] "Rcgmin seems to have converged"
#> 
#> $bdmsk
#> [1] -3 -3  1 -1
#> 

cat("test lower bound only\n")
#> test lower bound only
nn<-4
startx<-rep(pi,nn)
lo<-rep(2,nn)
grbds2<-Rcgmin(startx,genrose.f, gr=genrose.g,lower=lo) 
#> Rcgminb: maxfeval set to  10000 
print(grbds2)
#> $par
#> [1]  2.000000  2.000000  3.318724 10.914782
#> 
#> $value
#> [1] 553.0761
#> 
#> $counts
#> [1] 98 40
#> 
#> $convergence
#> [1] 0
#> 
#> $message
#> [1] "Rcgmin seems to have converged"
#> 
#> $bdmsk
#> [1] -3 -3  1  1
#> 

cat("test lower bound single value only\n")
#> test lower bound single value only
nn<-4
startx<-rep(pi,nn)
lo<-2
up<-rep(10,nn)
grbds3<-Rcgmin(startx,genrose.f, gr=genrose.g,lower=lo) 
#> Rcgminb: maxfeval set to  10000 
print(grbds3)
#> $par
#> [1]  2.000000  2.000000  3.318724 10.914782
#> 
#> $value
#> [1] 553.0761
#> 
#> $counts
#> [1] 98 40
#> 
#> $convergence
#> [1] 0
#> 
#> $message
#> [1] "Rcgmin seems to have converged"
#> 
#> $bdmsk
#> [1] -3 -3  1  1
#> 

cat("test upper bound only\n")
#> test upper bound only
nn<-4
startx<-rep(pi,nn)
lo<-rep(2,nn)
up<-rep(10,nn)
grbds4<-Rcgmin(startx,genrose.f, gr=genrose.g,upper=up) 
#> Rcgminb: maxfeval set to  10000 
print(grbds4)
#> $par
#> [1] 1 1 1 1
#> 
#> $value
#> [1] 1
#> 
#> $counts
#> [1] 92 43
#> 
#> $convergence
#> [1] 0
#> 
#> $message
#> [1] "Rcgmin seems to have converged"
#> 
#> $bdmsk
#> [1] 1 1 1 1
#> 

cat("test upper bound single value only\n")
#> test upper bound single value only
nn<-4
startx<-rep(pi,nn)
grbds5<-Rcgmin(startx,genrose.f, gr=genrose.g,upper=10) 
#> Rcgminb: maxfeval set to  10000 
print(grbds5)
#> $par
#> [1] 1 1 1 1
#> 
#> $value
#> [1] 1
#> 
#> $counts
#> [1] 92 43
#> 
#> $convergence
#> [1] 0
#> 
#> $message
#> [1] "Rcgmin seems to have converged"
#> 
#> $bdmsk
#> [1] 1 1 1 1
#> 



cat("test masks only\n")
#> test masks only
nn<-6
bd<-c(1,1,0,0,1,1)
startx<-rep(pi,nn)
grbds6<-Rcgmin(startx,genrose.f, gr=genrose.g,bdmsk=bd) 
#> Rcgminb: maxfeval set to  10000 
print(grbds6)
#> $par
#> [1]  1.331105  1.771839  3.141593  3.141593  5.890350 34.362593
#> 
#> $value
#> [1] 7268.939
#> 
#> $counts
#> [1] 157  64
#> 
#> $convergence
#> [1] 0
#> 
#> $message
#> [1] "Rcgmin seems to have converged"
#> 
#> $bdmsk
#> [1] 1 1 0 0 1 1
#> 

cat("test upper bound on first two elements only\n")
#> test upper bound on first two elements only
nn<-4
startx<-rep(pi,nn)
upper<-c(10,8, Inf, Inf)
grbds7<-Rcgmin(startx,genrose.f, gr=genrose.g,upper=upper) 
#> Rcgminb: maxfeval set to  10000 
print(grbds7)
#> $par
#> [1] 1 1 1 1
#> 
#> $value
#> [1] 1
#> 
#> $counts
#> [1] 91 43
#> 
#> $convergence
#> [1] 0
#> 
#> $message
#> [1] "Rcgmin seems to have converged"
#> 
#> $bdmsk
#> [1] 1 1 1 1
#> 


cat("test lower bound on first two elements only\n")
#> test lower bound on first two elements only
nn<-4
startx<-rep(0,nn)
lower<-c(0,1.1, -Inf, -Inf)
grbds8<-Rcgmin(startx,genrose.f,genrose.g,lower=lower, control=list(maxit=2000)) 
#> Warning: Parameter out of bounds has been moved to nearest bound
#> Rcgminb: maxfeval set to  10000 
print(grbds8)
#> $par
#> [1] 0.000000 1.100000 1.197717 1.430224
#> attr(,"status")
#> [1] "L" "L" " " " "
#> 
#> $value
#> [1] 122.2511
#> 
#> $counts
#> [1] 57 23
#> 
#> $convergence
#> [1] 0
#> 
#> $message
#> [1] "Rcgmin seems to have converged"
#> 
#> $bdmsk
#> [1]  1 -3  1  1
#> 

cat("test n=1 problem using simple squares of parameter\n")
#> test n=1 problem using simple squares of parameter

sqtst<-function(xx) {
   res<-sum((xx-2)*(xx-2))
}

gsqtst<-function(xx) {
    gg<-2*(xx-2)
}

######### One dimension test
nn<-1
startx<-rep(0,nn)
onepar<-Rcgmin(startx,sqtst,  gr=gsqtst,control=list(trace=1)) 
#> Rcgminu -- J C Nash 2009 - unconstrained version CG min
#> an R implementation of Alg 22 with Yuan/Dai modification
#> Initial function value= 4 
#> Initial fn= 4 
#> 1   0   1   4   last decrease= NA 
#> *4   1   2   1.774937e-30   last decrease= 4 
#> Very small gradient -- gradsqr = 7.09974814698911e-30 
#> Rcgmin seems to have converged 
print(onepar)
#> $par
#> [1] 2
#> 
#> $value
#> [1] 1.774937e-30
#> 
#> $counts
#> [1] 4 2
#> 
#> $convergence
#> [1] 0
#> 
#> $message
#> [1] "Rcgmin seems to have converged"
#> 

cat("Suppress warnings\n")
#> Suppress warnings
oneparnw<-Rcgmin(startx,sqtst,  gr=gsqtst,control=list(dowarn=FALSE,trace=1)) 
#> Rcgminu -- J C Nash 2009 - unconstrained version CG min
#> an R implementation of Alg 22 with Yuan/Dai modification
#> Initial function value= 4 
#> Initial fn= 4 
#> 1   0   1   4   last decrease= NA 
#> *4   1   2   1.774937e-30   last decrease= 4 
#> Very small gradient -- gradsqr = 7.09974814698911e-30 
#> Rcgmin seems to have converged 
print(oneparnw)
#> $par
#> [1] 2
#> 
#> $value
#> [1] 1.774937e-30
#> 
#> $counts
#> [1] 4 2
#> 
#> $convergence
#> [1] 0
#> 
#> $message
#> [1] "Rcgmin seems to have converged"
#>