R/modified_schwefel.R

Defines functions modified_schwefel

Documented in modified_schwefel

modified_schwefel <- function(x) {
  D <- length(x)
  z <- x + 420.9687462275036
  m <- abs(z) %% 500

  term1 <- 418.9829 * D
  term2 <- sum(ifelse(abs(z) <= 500,
                      z * sin(sqrt(abs(z))),
                      ifelse(z > 500,
                             (500 - m) * sin(sqrt(500 - m)) - (z - 500)^2 / (10000 * D),
                             (m - 500) * sin(sqrt(m - 500)) - (z + 500)^2 / (10000 * D))))

  return(term1 - term2)
}

Try the EEEA package in your browser

Any scripts or data that you put into this service are public.

EEEA documentation built on June 10, 2025, 9:13 a.m.