Benchmark Functions Reference

This document provides a detailed reference for all benchmark functions available in the package.

Generated by docs/generate_benchmark_functions.py from BENCHMARK_SUITE — do not hand-edit the tables/sections below; re-run the script instead.

Summary

Total functions: 59

Function

Dimensions

Domain

Global Minimum

ackley

10D

[-30, 30]^n

0

beale

2D

[-4.5, 4.5]^n

0

bohachevsky1

2D

[-50, 50]^n

0

bohachevsky2

2D

[-50, 50]^n

0

booth

2D

[-10, 10]^n

0

box_betts

3D

Varies

0

branin

2D

Varies

0.397887

branin2

2D

[-10, 10]^n

0

camel3

2D

[-5, 5]^n

0

camel6

2D

[-5, 5]^n

-1.03163

chichinadze

2D

Varies

-43.8686

colville

4D

[-10, 10]^n

0

corana

4D

[-100, 100]^n

0

easom

2D

[-100, 100]^n

-1

eggholder

2D

[-512, 512]^n

-959.641

exp2

2D

[0, 20]^n

0

gear

4D

[12, 60]^n

2.7e-12

goldstein_price

2D

[-2, 2]^n

3

griewank

10D

[-600, 600]^n

0

himmelblau

2D

[-6, 6]^n

0

holzman1

3D

Varies

0

holzman2

3D

[-10, 10]^n

0

hosaki

2D

Varies

-2.3458

hyperellipsoid

10D

[-10, 10]^n

0

katsuura

10D

[-1000, 1000]^n

1

kowalik

4D

[-5, 5]^n

0.000307486

langerman

10D

[0, 10]^n

-1.4

lennard_jones

6D

[-2, 2]^n

-1

leon

2D

[-10, 10]^n

0

levy

10D

[-10, 10]^n

0

matyas

2D

[-10, 10]^n

0

maxmod

10D

[-10, 10]^n

0

mccormick

2D

Varies

-1.9133

michalewicz

10D

[0, 3.14159]^n

-9.66

multimod

10D

[-10, 10]^n

0

rastrigin

10D

[-5.12, 5.12]^n

0

rastrigin2

2D

[-5.12, 5.12]^n

-2

rosenbrock

10D

[-10, 10]^n

0

rosenbrock_ext1

10D

[-10, 10]^n

0

rosenbrock_ext2

10D

[-10, 10]^n

0

schaffer1

2D

[-100, 100]^n

0

schaffer2

2D

[-100, 100]^n

0

schwefel1_2

10D

[-100, 100]^n

0

schwefel2_21

10D

[-100, 100]^n

0

schwefel2_22

10D

[-10, 10]^n

0

schwefel2_26

10D

[-500, 500]^n

-4189.83

schwefel3_2

10D

[-10, 10]^n

0

sphere

10D

[-100, 100]^n

0

sphere2

10D

[-100, 100]^n

0

step

10D

[-100, 100]^n

2.5

step2

5D

[-5.12, 5.12]^n

30

stretched_v

3D

[-10, 10]^n

0

sum_squares

10D

[-10, 10]^n

0

trecanni

2D

[-5, 5]^n

0

trefethen4

2D

Varies

-3.30687

watson

6D

[-10, 10]^n

0.002288

xor

9D

[-1, 1]^n

0

zettl

2D

[-10, 10]^n

-0.003791

zimmerman

2D

[0, 100]^n

0

Detailed Descriptions

ackley

Default Dimension: 10 Known Minimum: 0 Optimal Point: x = [0]

Description

Ackley function. Domain: |x_i| ≤ 30. Dimension: n (arbitrary). Global minimum: f(0) = 0 at x = 0.

Code Example

from bananabench import ackley
import numpy as np

# Run ackley
x = np.zeros(10)
result = ackley(x)
print(f'result: {result}')

beale

Default Dimension: 2 Known Minimum: 0 Optimal Point: x = [3, 0.5]

Description

Beale function. Domain: -4.5 ≤ x_i ≤ 4.5. Dimension: 2. Global minimum: f(3,0.5) = 0 at x = (3, 0.5).

Code Example

from bananabench import beale
import numpy as np

# Run beale
x = np.zeros(2)
result = beale(x)
print(f'result: {result}')

bohachevsky1

Default Dimension: 2 Known Minimum: 0 Optimal Point: x = [0, 0]

Description

Bohachevsky function #1. Domain: |x_i| ≤ 50. Dimension: 2. Global minimum: f(0,0) = 0 at x = (0, 0).

Code Example

from bananabench import bohachevsky1
import numpy as np

# Run bohachevsky1
x = np.zeros(2)
result = bohachevsky1(x)
print(f'result: {result}')

bohachevsky2

Default Dimension: 2 Known Minimum: 0 Optimal Point: x = [0, 0]

Description

Bohachevsky function #2. Domain: |x_i| ≤ 50. Dimension: 2. Global minimum: f(0,0) = 0 at x = (0, 0).

Code Example

from bananabench import bohachevsky2
import numpy as np

# Run bohachevsky2
x = np.zeros(2)
result = bohachevsky2(x)
print(f'result: {result}')

booth

Default Dimension: 2 Known Minimum: 0 Optimal Point: x = [1, 3]

Description

Booth function. Domain: -10 ≤ x_i ≤ 10. Dimension: 2. Global minimum: f(1,3) = 0 at x = (1, 3).

Code Example

from bananabench import booth
import numpy as np

# Run booth
x = np.zeros(2)
result = booth(x)
print(f'result: {result}')

box_betts

Default Dimension: 3 Known Minimum: 0 Optimal Point: x = [1, 10, 1]

Description

Box-Betts exponential quadratic sum function. Domain: x0 ∈ [0.9,1.2], x1 ∈ [9,11.2], x2 ∈ [0.9,1.2]. Dimension: 3. Global minimum: f(1,10,1) = 0 at x = (1, 10, 1).

Code Example

from bananabench import box_betts
import numpy as np

# Run box_betts
x = np.zeros(3)
result = box_betts(x)
print(f'result: {result}')

branin

Default Dimension: 2 Known Minimum: 0.397887 Optimal Point: x = [(-3.14159, 12.275), (3.14159, 2.275), (9.42478, 2.475)]

Description

Branin function. Domain: x0 ∈ [-5, 10], x1 ∈ [0, 15]. Dimension: 2. Global minima: f ≈ 0.3979 at x ≈ (-3.142,12.275), (3.142,2.275), (9.425,2.425).

Code Example

from bananabench import branin
import numpy as np

# Run branin
x = np.zeros(2)
result = branin(x)
print(f'result: {result}')

branin2

Default Dimension: 2 Known Minimum: 0 Optimal Point: x = [0.402357, 0.287408]

Description

Modified Branin (Test function 2). Domain: |x_i| ≤ 10. Dimension: 2. Global minimum: f(0.402357,0.287408) = 0 at x ≈ (0.402357, 0.287408).

Code Example

from bananabench import branin2
import numpy as np

# Run branin2
x = np.zeros(2)
result = branin2(x)
print(f'result: {result}')

camel3

Default Dimension: 2 Known Minimum: 0 Optimal Point: x = [0, 0]

Description

Three-hump camel function. Domain: |x_i| ≤ 5. Dimension: 2. Global minimum: f(0,0) = 0 at x = (0, 0).

Code Example

from bananabench import camel3
import numpy as np

# Run camel3
x = np.zeros(2)
result = camel3(x)
print(f'result: {result}')

camel6

Default Dimension: 2 Known Minimum: -1.03163 Optimal Point: x = [(0.08983, -0.7126), (-0.08983, 0.7126)]

Description

Six-hump camel function. Domain: |x_i| < 5. Dimension: 2. Global minimum: f ≈ -1.0316 at x ≈ (0.08983,-0.7126) and (-0.08983,0.7126).

Code Example

from bananabench import camel6
import numpy as np

# Run camel6
x = np.zeros(2)
result = camel6(x)
print(f'result: {result}')

chichinadze

Default Dimension: 2 Known Minimum: -43.8686 Optimal Point: x = [5.90133, 0.5]

Description

Chichinadze function. Domain: x0 ∈ [-30, 30], x1 ∈ [-10, 10]. Dimension: 2. Global minimum: f ≈ -43.3159 at x ≈ (5.90133, 0.5).

Code Example

from bananabench import chichinadze
import numpy as np

# Run chichinadze
x = np.zeros(2)
result = chichinadze(x)
print(f'result: {result}')

colville

Default Dimension: 4 Known Minimum: 0 Optimal Point: x = [1]

Description

Colville function. Domain: -10 ≤ x_i ≤ 10. Dimension: 4. Global minimum: f(1,1,1,1) = 0 at x = (1, 1, 1, 1).

Code Example

from bananabench import colville
import numpy as np

# Run colville
x = np.zeros(4)
result = colville(x)
print(f'result: {result}')

corana

Default Dimension: 4 Known Minimum: 0 Optimal Point: x = [0]

Description

Corana function. Domain: |x_i| ≤ 100. Dimension: 4. Global minimum: f = 0 at x = (0,0,0,0).

Code Example

from bananabench import corana
import numpy as np

# Run corana
x = np.zeros(4)
result = corana(x)
print(f'result: {result}')

easom

Default Dimension: 2 Known Minimum: -1 Optimal Point: x = [3.14159, 3.14159]

Description

Easom function. Domain: |x_i| ≤ 100. Dimension: 2. Global minimum: f(π,π) = -1 at x = (π, π).

Code Example

from bananabench import easom
import numpy as np

# Run easom
x = np.zeros(2)
result = easom(x)
print(f'result: {result}')

eggholder

Default Dimension: 2 Known Minimum: -959.641 Optimal Point: x = [512, 404.232]

Description

Egg holder function. Domain: |x_i| < 512. Dimension: n (usually 2).

Code Example

from bananabench import eggholder
import numpy as np

# Run eggholder
x = np.zeros(2)
result = eggholder(x)
print(f'result: {result}')

exp2

Default Dimension: 2 Known Minimum: 0 Optimal Point: x = [1, 10]

Description

Exp2 function. Domain: 0 ≤ x_i ≤ 20. Dimension: 2. Global minimum: f(1,10) = 0 at x = (1, 10).

Code Example

from bananabench import exp2
import numpy as np

# Run exp2
x = np.zeros(2)
result = exp2(x)
print(f'result: {result}')

gear

Default Dimension: 4 Known Minimum: 2.7e-12 Optimal Point: x = [16, 19, 43, 49]

Description

Gear train function. Domain: 12 ≤ x0,x1,x2,x3 ≤ 60. Dimension: 4. Global minimum: ≈2.7e-12 at permutations of (16, 19, 43, 49).

Code Example

from bananabench import gear
import numpy as np

# Run gear
x = np.zeros(4)
result = gear(x)
print(f'result: {result}')

goldstein_price

Default Dimension: 2 Known Minimum: 3 Optimal Point: x = [0, -1]

Description

Goldstein-Price function. Domain: |x_i| ≤ 2. Dimension: 2. Global minimum: f(0,-1) = 3 at x = (0, -1).

Code Example

from bananabench import goldstein_price
import numpy as np

# Run goldstein_price
x = np.zeros(2)
result = goldstein_price(x)
print(f'result: {result}')

griewank

Default Dimension: 10 Known Minimum: 0 Optimal Point: x = [0]

Description

Griewank function. Domain: |x_i| ≤ 600. Dimension: n. Global minimum: f(0) = 0 at x = 0.

Code Example

from bananabench import griewank
import numpy as np

# Run griewank
x = np.zeros(10)
result = griewank(x)
print(f'result: {result}')

himmelblau

Default Dimension: 2 Known Minimum: 0 Optimal Point: x = [3, 2]

Description

Himmelblau function. Domain: -6 ≤ x_i ≤ 6. Dimension: 2. Global minimum: f(3,2) = 0 at x = (3, 2).

Code Example

from bananabench import himmelblau
import numpy as np

# Run himmelblau
x = np.zeros(2)
result = himmelblau(x)
print(f'result: {result}')

holzman1

Default Dimension: 3 Known Minimum: 0 Optimal Point: x = [50, 25, 1.5]

Description

Holzman function #1. Domain: 0.1 ≤ x0 ≤ 100, 0 ≤ x1 ≤ 25.6, 0 ≤ x2 ≤ 5. Dimension: 3. Global minimum: f(50,25,1.5) = 0 at x = (50, 25, 1.5).

Code Example

from bananabench import holzman1
import numpy as np

# Run holzman1
x = np.zeros(3)
result = holzman1(x)
print(f'result: {result}')

holzman2

Default Dimension: 3 Known Minimum: 0 Optimal Point: x = [0]

Description

Holzman function #2. Domain: |x_i| ≤ 10. Dimension: n. Global minimum: f(0) = 0 at x = 0.

Code Example

from bananabench import holzman2
import numpy as np

# Run holzman2
x = np.zeros(3)
result = holzman2(x)
print(f'result: {result}')

hosaki

Default Dimension: 2 Known Minimum: -2.3458 Optimal Point: x = [4, 2]

Description

Hosaki function. Domain: x0 ≥ 0, x1 ≥ 0 (often in [0,5]×[0,6]). Dimension: 2. Global minimum: ≈ -2.3458 at x = (4, 2).

Code Example

from bananabench import hosaki
import numpy as np

# Run hosaki
x = np.zeros(2)
result = hosaki(x)
print(f'result: {result}')

hyperellipsoid

Default Dimension: 10 Known Minimum: 0 Optimal Point: x = [0]

Description

Hyperellipsoid (Weighted sphere) function. Domain: |x_i| ≤ 10 (often). Dimension: n. Global minimum: f(0) = 0 at x = 0.

Code Example

from bananabench import hyperellipsoid
import numpy as np

# Run hyperellipsoid
x = np.zeros(10)
result = hyperellipsoid(x)
print(f'result: {result}')

katsuura

Default Dimension: 10 Known Minimum: 1 Optimal Point: x = [0]

Description

Katsuura function. Domain: |x_i| ≤ 1000. Dimension: n. Global minimum: f(0) = 1 at x = 0.

Code Example

from bananabench import katsuura
import numpy as np

# Run katsuura
x = np.zeros(10)
result = katsuura(x)
print(f'result: {result}')

kowalik

Default Dimension: 4 Known Minimum: 0.000307486 Optimal Point: x = [0.192833, 0.190836, 0.123117, 0.135766]

Description

Kowalik function. Domain: |x_i| < 5. Dimension: 4. Global minimum: ≈0.000307 at x ≈ (0.1928,0.1908,0.1231,0.1358).

Code Example

from bananabench import kowalik
import numpy as np

# Run kowalik
x = np.zeros(4)
result = kowalik(x)
print(f'result: {result}')

langerman

Default Dimension: 10 Known Minimum: -1.4

Description

Langerman function. Domain: 0 ≤ x_i ≤ 10. Dimension: 10 (fixed by the coefficient table below). Global minimum: f ≈ -1.4.

Code Example

from bananabench import langerman
import numpy as np

# Run langerman
x = np.zeros(10)
result = langerman(x)
print(f'result: {result}')

lennard_jones

Default Dimension: 6 Known Minimum: -1

Description

Lennard-Jones potential function. Domain: (coordinates of n/3 atoms). Dimension: n = 3N.

Code Example

from bananabench import lennard_jones
import numpy as np

# Run lennard_jones
x = np.zeros(6)
result = lennard_jones(x)
print(f'result: {result}')

leon

Default Dimension: 2 Known Minimum: 0 Optimal Point: x = [1, 1]

Description

Leon function. Domain: |x_i| ≤ 10. Dimension: 2. Global minimum: f(1,1) = 0 at x = (1, 1).

Code Example

from bananabench import leon
import numpy as np

# Run leon
x = np.zeros(2)
result = leon(x)
print(f'result: {result}')

levy

Default Dimension: 10 Known Minimum: 0 Optimal Point: x = [1]

Description

Levy function (n-dimensional). Domain: |x_i| ≤ 10. Dimension: n.

Code Example

from bananabench import levy
import numpy as np

# Run levy
x = np.zeros(10)
result = levy(x)
print(f'result: {result}')

matyas

Default Dimension: 2 Known Minimum: 0 Optimal Point: x = [0, 0]

Description

Matyas function. Domain: |x_i| ≤ 10. Dimension: 2. Global minimum: f(0,0) = 0 at x = (0, 0).

Code Example

from bananabench import matyas
import numpy as np

# Run matyas
x = np.zeros(2)
result = matyas(x)
print(f'result: {result}')

maxmod

Default Dimension: 10 Known Minimum: 0 Optimal Point: x = [0]

Description

Maxmod function. Domain: |x_i| ≤ 10. Dimension: n. Global minimum: f = 0 at x = 0.

Code Example

from bananabench import maxmod
import numpy as np

# Run maxmod
x = np.zeros(10)
result = maxmod(x)
print(f'result: {result}')

mccormick

Default Dimension: 2 Known Minimum: -1.9133 Optimal Point: x = [-0.54719, -1.54719]

Description

McCormick function. Domain: -1.5 ≤ x0 ≤ 4, -3 ≤ x1 ≤ 4. Dimension: 2. Global minimum: f(-0.54719,-1.54719) ≈ -1.9133.

Code Example

from bananabench import mccormick
import numpy as np

# Run mccormick
x = np.zeros(2)
result = mccormick(x)
print(f'result: {result}')

michalewicz

Default Dimension: 10 Known Minimum: -9.66

Description

Michalewicz function. Domain: 0 ≤ x_i ≤ π. Dimension: n.

Code Example

from bananabench import michalewicz
import numpy as np

# Run michalewicz
x = np.zeros(10)
result = michalewicz(x)
print(f'result: {result}')

multimod

Default Dimension: 10 Known Minimum: 0 Optimal Point: x = [0]

Description

Multimodal function. Domain: |x_i| ≤ 10. Dimension: n. Global minimum: f = 0 at x = 0.

Code Example

from bananabench import multimod
import numpy as np

# Run multimod
x = np.zeros(10)
result = multimod(x)
print(f'result: {result}')

rastrigin

Default Dimension: 10 Known Minimum: 0 Optimal Point: x = [0]

Description

Rastrigin function. Domain: |x_i| ≤ 5.12. Dimension: n. Global minimum: f = 0 at x = 0.

Code Example

from bananabench import rastrigin
import numpy as np

# Run rastrigin
x = np.zeros(10)
result = rastrigin(x)
print(f'result: {result}')

rastrigin2

Default Dimension: 2 Known Minimum: -2 Optimal Point: x = [0, 0]

Description

A variant of the Rastrigin function (2D). Domain: |x_i| ≤ 5.12. Dimension: 2. Global minimum: f = 0 at x = 0.

Code Example

from bananabench import rastrigin2
import numpy as np

# Run rastrigin2
x = np.zeros(2)
result = rastrigin2(x)
print(f'result: {result}')

rosenbrock

Default Dimension: 10 Known Minimum: 0 Optimal Point: x = [1]

Description

Rosenbrock function (classic). Domain: |x_i| ≤ 10. Dimension: n. Global minimum: f = 0 at x = 1 (all xi = 1).

Code Example

from bananabench import rosenbrock
import numpy as np

# Run rosenbrock
x = np.zeros(10)
result = rosenbrock(x)
print(f'result: {result}')

rosenbrock_ext1

Default Dimension: 10 Known Minimum: 0 Optimal Point: x = [1]

Description

Extended Rosenbrock function #1. Domain: |x_i| ≤ 10. Dimension: n (n even). Global minimum: f = 0 at x = 1 (all xi = 1).

Code Example

from bananabench import rosenbrock_ext1
import numpy as np

# Run rosenbrock_ext1
x = np.zeros(10)
result = rosenbrock_ext1(x)
print(f'result: {result}')

rosenbrock_ext2

Default Dimension: 10 Known Minimum: 0 Optimal Point: x = [1]

Description

Extended Rosenbrock function #2 (circular / wrap-around variant). Domain: |x_i| ≤ 10. Dimension: n. Global minimum: f = 0 at x = 1 (all xi = 1).

Differs from rosenbrock by adding a wrap-around term that connects the last variable back to the first, forming a cyclic chain.

Code Example

from bananabench import rosenbrock_ext2
import numpy as np

# Run rosenbrock_ext2
x = np.zeros(10)
result = rosenbrock_ext2(x)
print(f'result: {result}')

schaffer1

Default Dimension: 2 Known Minimum: 0 Optimal Point: x = [0, 0]

Description

Schaffer function #1. Domain: |x_i| ≤ 100. Dimension: 2. Global minimum: f(0,0) = 0 at x = (0, 0).

Code Example

from bananabench import schaffer1
import numpy as np

# Run schaffer1
x = np.zeros(2)
result = schaffer1(x)
print(f'result: {result}')

schaffer2

Default Dimension: 2 Known Minimum: 0 Optimal Point: x = [0, 0]

Description

Schaffer function #2. Domain: |x_i| ≤ 100. Dimension: 2. Global minimum: f(0,0) = 0 at x = (0, 0).

Code Example

from bananabench import schaffer2
import numpy as np

# Run schaffer2
x = np.zeros(2)
result = schaffer2(x)
print(f'result: {result}')

schwefel1_2

Default Dimension: 10 Known Minimum: 0 Optimal Point: x = [0]

Description

Schwefel function 1.2. Domain: |x_i| < 10. Dimension: n. Global minimum: f = 0 at x = 0.

Code Example

from bananabench import schwefel1_2
import numpy as np

# Run schwefel1_2
x = np.zeros(10)
result = schwefel1_2(x)
print(f'result: {result}')

schwefel2_21

Default Dimension: 10 Known Minimum: 0 Optimal Point: x = [0]

Description

Schwefel function 2.21. Domain: |x_i| < 10. Dimension: n. Global minimum: f = 0 at x = 0.

Code Example

from bananabench import schwefel2_21
import numpy as np

# Run schwefel2_21
x = np.zeros(10)
result = schwefel2_21(x)
print(f'result: {result}')

schwefel2_22

Default Dimension: 10 Known Minimum: 0 Optimal Point: x = [0]

Description

Schwefel function 2.22. Domain: |x_i| < 10. Dimension: n. Global minimum: f = 0 at x = 0.

Code Example

from bananabench import schwefel2_22
import numpy as np

# Run schwefel2_22
x = np.zeros(10)
result = schwefel2_22(x)
print(f'result: {result}')

schwefel2_26

Default Dimension: 10 Known Minimum: -4189.83 Optimal Point: x = [420.969]

Description

Schwefel function 2.26. Domain: |x_i| < 500. Dimension: n. Global minimum: ≈ -12569.5 at x ≈ 420.9687 (for n=3).

Code Example

from bananabench import schwefel2_26
import numpy as np

# Run schwefel2_26
x = np.zeros(10)
result = schwefel2_26(x)
print(f'result: {result}')

schwefel3_2

Default Dimension: 10 Known Minimum: 0 Optimal Point: x = [1]

Description

Schwefel (variant) function 3.2. Domain: |x_i| < 10. Dimension: n. Global minimum: f = 0 at x = (1,1,…,1).

Code Example

from bananabench import schwefel3_2
import numpy as np

# Run schwefel3_2
x = np.zeros(10)
result = schwefel3_2(x)
print(f'result: {result}')

sphere

Default Dimension: 10 Known Minimum: 0 Optimal Point: x = [0]

Description

Sphere (Harmonic) function. Domain: |x_i| ≤ 100. Dimension: n. Global minimum: f(0) = 0 at x = 0.

Code Example

from bananabench import sphere
import numpy as np

# Run sphere
x = np.zeros(10)
result = sphere(x)
print(f'result: {result}')

sphere2

Default Dimension: 10 Known Minimum: 0 Optimal Point: x = [0]

Description

Sphere function (cumulative sum variant). Domain: |x_i| ≤ 100. Dimension: n. Global minimum: f(0) = 0 at x = 0.

Code Example

from bananabench import sphere2
import numpy as np

# Run sphere2
x = np.zeros(10)
result = sphere2(x)
print(f'result: {result}')

step

Default Dimension: 10 Known Minimum: 2.5 Optimal Point: x = [0]

Description

Step function. Domain: |x_i| ≤ 100. Dimension: n. Global minimum: f = 0.25*n at any x_i in [-1, 1) (e.g. x_i = 0), since (floor(x_i) + 0.5)**2 can never reach 0 for integer floor(x_i).

Code Example

from bananabench import step
import numpy as np

# Run step
x = np.zeros(10)
result = step(x)
print(f'result: {result}')

step2

Default Dimension: 5 Known Minimum: 30 Optimal Point: x = [0]

Description

Step function #2. Domain: |x_i| ≤ 5.12. Dimension: n. Global minimum: f = 6·n at x = 0 (e.g. f = 30 for n = 5).

Code Example

from bananabench import step2
import numpy as np

# Run step2
x = np.zeros(5)
result = step2(x)
print(f'result: {result}')

stretched_v

Default Dimension: 3 Known Minimum: 0

Description

Stretched V function. Domain: |x_i| ≤ 10. Dimension: n.

Code Example

from bananabench import stretched_v
import numpy as np

# Run stretched_v
x = np.zeros(3)
result = stretched_v(x)
print(f'result: {result}')

sum_squares

Default Dimension: 10 Known Minimum: 0 Optimal Point: x = [0]

Description

Sum of Squares function. Domain: -10 ≤ x_i ≤ 10. Dimension: n. Global minimum: f = 0 at x = 0.

Code Example

from bananabench import sum_squares
import numpy as np

# Run sum_squares
x = np.zeros(10)
result = sum_squares(x)
print(f'result: {result}')

trecanni

Default Dimension: 2 Known Minimum: 0 Optimal Point: x = [(0, 0), (-2, 0)]

Description

Trecanni function. Domain: -5 ≤ x_i ≤ 5. Dimension: 2. Global minima: f(0,0) = 0 and f(-2,0) = 0.

Code Example

from bananabench import trecanni
import numpy as np

# Run trecanni
x = np.zeros(2)
result = trecanni(x)
print(f'result: {result}')

trefethen4

Default Dimension: 2 Known Minimum: -3.30687 Optimal Point: x = [-0.0244031, 0.210612]

Description

Trefethen function #4. Domain: x0 ∈ (-6.5,6.5), x1 ∈ (-4.5,4.5). Dimension: 2. Global minimum: ≈ -3.30686865 at x ≈ (-0.0244031, 0.2106124).

Code Example

from bananabench import trefethen4
import numpy as np

# Run trefethen4
x = np.zeros(2)
result = trefethen4(x)
print(f'result: {result}')

watson

Default Dimension: 6 Known Minimum: 0.002288

Description

Watson function. Domain: |x_i| ≤ 10. Dimension: 6. Global minimum: ≈ 0.002288 at x ≈ (-0.0158, 1.012, -0.2329, 1.260, -1.514, 0.993).

Reference: Moré, Garbow & Hillstrom (1981), ACM TOMS 7(1), function 20.

Code Example

from bananabench import watson
import numpy as np

# Run watson
x = np.zeros(6)
result = watson(x)
print(f'result: {result}')

xor

Default Dimension: 9 Known Minimum: 0

Description

XOR neural-network benchmark function. Domain: x_i ∈ [-1, 1] (weights and biases of a 2-2-1 MLP). Dimension: 9. Global minimum: f = 0 at weights that correctly solve XOR.

Parameters encode a 2-input, 2-hidden-unit, 1-output network: x[0],x[1]: input→hidden1 weights; x[2],x[3]: input→hidden2 weights; x[4]: hidden1 bias; x[5]: hidden2 bias; x[6],x[7]: hidden→output weights; x[8]: output bias.

Reference: Adorio, E. P. (2005). MVF, function XOR.

Code Example

from bananabench import xor
import numpy as np

# Run xor
x = np.zeros(9)
result = xor(x)
print(f'result: {result}')

zettl

Default Dimension: 2 Known Minimum: -0.003791 Optimal Point: x = [-0.0299, 0]

Description

Zettl function. Domain: |x_i| ≤ 10. Dimension: 2. Global minimum: f ≈ -0.00379 at x ≈ (-0.02990, 0).

Code Example

from bananabench import zettl
import numpy as np

# Run zettl
x = np.zeros(2)
result = zettl(x)
print(f'result: {result}')

zimmerman

Default Dimension: 2 Known Minimum: 0 Optimal Point: x = [7, 2]

Description

Zimmerman function. Domain: 0 ≤ x_i ≤ 100. Dimension: 2.

Code Example

from bananabench import zimmerman
import numpy as np

# Run zimmerman
x = np.zeros(2)
result = zimmerman(x)
print(f'result: {result}')

Spelling Aliases

Not part of BENCHMARK_SUITE (no default dimension/bounds/known-minimum metadata registered), but importable directly:

  • freudenstein_roth — corrected spelling of fraudenstein_roth (both importable for backward compatibility; freudenstein_roth is fraudenstein_roth). Freudenstein-Roth function. Domain: (typically -10 ≤ x_i ≤ 10). Dimension: 2.