API Reference¤
Function Registry¤
Centralized access to the benchmark functions and their metadata.
bbob_jax.registry: Randomized variants of each function. Call withxandkeyto get a reproducible stochastic instance (random shifts/rotations and fopt).bbob_jax.registry_original: Deterministic baseline variants (no random shift/rotation, no output offset). Useful for debugging and reference.bbob_jax.function_characteristics: Loss-landscape properties per function (e.g., separability, conditioning, modality) to filter or group benchmarks.
bbob_jax.registry = {'attractive_sector': Partial(<function _make_with_mat at 0x7c040cb43a60>, fn=<function attractive_sector at 0x7c040cb407c0>, alpha=10.0, order='QLR'), 'bent_cigar': Partial(<function make_randomized at 0x7c040cb439c0>, fn=<function bent_cigar at 0x7c040cb40c20>), 'discuss': Partial(<function make_randomized at 0x7c040cb439c0>, fn=<function discuss at 0x7c040cb40b80>), 'ellipsoid': Partial(<function make_randomized at 0x7c040cb439c0>, fn=<function ellipsoid at 0x7c040cb40ae0>), 'ellipsoid_seperable': Partial(<function make_randomized at 0x7c040cb439c0>, fn=<function ellipsoid_seperable at 0x7c040cafba60>), 'gallagher_21_peaks': Partial(<function _make_gallagher_randomized at 0x7c040cb43f60>, fn=<function gallagher_21_peaks at 0x7c040cb41620>, num_peaks=21, w_divisor=19, alpha_first=1000000.0, y_minval=-4.9, y_maxval=4.9), 'gallagher_101_peaks': Partial(<function _make_gallagher_randomized at 0x7c040cb43f60>, fn=<function gallagher_101_peaks at 0x7c040cb41580>, num_peaks=101, w_divisor=99, alpha_first=1000.0, y_minval=-5.0, y_maxval=5.0), 'griewank_rosenbrock_f8f2': Partial(<function make_randomized at 0x7c040cb439c0>, fn=<function griewank_rosenbrock_f8f2 at 0x7c040cb413a0>), 'katsuura': Partial(<function _make_with_mat at 0x7c040cb43a60>, fn=<function katsuura at 0x7c040cb41760>, alpha=100.0, order='QLR'), 'linear_slope': Partial(<function _make_linear_slope at 0x7c040cb43ba0>, fn=<function linear_slope at 0x7c040cb40720>), 'lunacek_bi_rastrigin': Partial(<function _make_lunacek_randomized at 0x7c040cb43e20>, fn=<function lunacek_bi_rastrigin at 0x7c040cb41800>), 'rastrigin': Partial(<function _make_with_mat at 0x7c040cb43a60>, fn=<function rastrigin at 0x7c040cb40f40>, alpha=10.0, order='RLQ'), 'rastrigin_seperable': Partial(<function make_randomized at 0x7c040cb439c0>, fn=<function rastrigin_seperable at 0x7c040cb405e0>), 'rosenbrock': Partial(<function make_randomized at 0x7c040cb439c0>, fn=<function rosenbrock at 0x7c040cb409a0>), 'rosenbrock_rotated': Partial(<function make_randomized at 0x7c040cb439c0>, fn=<function rosenbrock_rotated at 0x7c040cb40a40>), 'schaffer_f7_condition_10': Partial(<function _make_with_mat at 0x7c040cb43a60>, fn=<function schaffer_f7_condition_10 at 0x7c040cb411c0>, alpha=10.0, order='LQ'), 'schaffer_f7_condition_1000': Partial(<function _make_with_mat at 0x7c040cb43a60>, fn=<function schaffer_f7_condition_1000 at 0x7c040cb41300>, alpha=1000.0, order='LQ'), 'schwefel_xsinx': Partial(<function _make_schwefel at 0x7c040cb43ce0>, fn=<function schwefel_xsinx at 0x7c040cb41440>), 'sharp_ridge': Partial(<function _make_with_mat at 0x7c040cb43a60>, fn=<function sharp_ridge at 0x7c040cb40d60>, alpha=10.0, order='QLR'), 'skew_rastrigin_bueche': Partial(<function make_randomized at 0x7c040cb439c0>, fn=<function skew_rastrigin_bueche at 0x7c040cb40680>), 'sphere': Partial(<function make_randomized at 0x7c040cb439c0>, fn=<function sphere at 0x7c041988b600>), 'step_ellipsoid': Partial(<function _make_with_mat at 0x7c040cb43a60>, fn=<function step_ellipsoid at 0x7c040cb40900>, alpha=10.0, order='LR'), 'sum_of_different_powers': Partial(<function make_randomized at 0x7c040cb439c0>, fn=<function sum_of_different_powers at 0x7c040cb40e00>), 'weierstrass': Partial(<function _make_with_mat at 0x7c040cb43a60>, fn=<function weierstrass at 0x7c040cb41080>, alpha=0.01, order='RLQ')}
module-attribute
¤
dict() -> new empty dictionary dict(mapping) -> new dictionary initialized from a mapping object's (key, value) pairs dict(iterable) -> new dictionary initialized as if via: d = {} for k, v in iterable: d[k] = v dict(**kwargs) -> new dictionary initialized with the name=value pairs in the keyword argument list. For example: dict(one=1, two=2)
bbob_jax.registry_original = {'attractive_sector': Partial(<function _make_with_mat_deterministic at 0x7c040cb43b00>, fn=<function attractive_sector at 0x7c040cb407c0>, alpha=10.0, order='QLR'), 'bent_cigar': Partial(<function make_determinstic at 0x7c040cb43920>, fn=<function bent_cigar at 0x7c040cb40c20>), 'discuss': Partial(<function make_determinstic at 0x7c040cb43920>, fn=<function discuss at 0x7c040cb40b80>), 'ellipsoid': Partial(<function make_determinstic at 0x7c040cb43920>, fn=<function ellipsoid at 0x7c040cb40ae0>), 'ellipsoid_seperable': Partial(<function make_determinstic at 0x7c040cb43920>, fn=<function ellipsoid_seperable at 0x7c040cafba60>), 'gallagher_21_peaks': Partial(<function _make_gallagher_deterministic at 0x7c040cb60040>, fn=<function gallagher_21_peaks at 0x7c040cb41620>, num_peaks=21, w_divisor=19, alpha_first=1000000.0, y_minval=-4.9, y_maxval=4.9), 'gallagher_101_peaks': Partial(<function _make_gallagher_deterministic at 0x7c040cb60040>, fn=<function gallagher_101_peaks at 0x7c040cb41580>, num_peaks=101, w_divisor=99, alpha_first=1000.0, y_minval=-5.0, y_maxval=5.0), 'griewank_rosenbrock_f8f2': Partial(<function make_determinstic at 0x7c040cb43920>, fn=<function griewank_rosenbrock_f8f2 at 0x7c040cb413a0>), 'katsuura': Partial(<function _make_with_mat_deterministic at 0x7c040cb43b00>, fn=<function katsuura at 0x7c040cb41760>, alpha=100.0, order='QLR'), 'linear_slope': Partial(<function _make_linear_slope_deterministic at 0x7c040cb43c40>, fn=<function linear_slope at 0x7c040cb40720>), 'lunacek_bi_rastrigin': Partial(<function _make_lunacek_deterministic at 0x7c040cb43ec0>, fn=<function lunacek_bi_rastrigin at 0x7c040cb41800>), 'rastrigin': Partial(<function _make_with_mat_deterministic at 0x7c040cb43b00>, fn=<function rastrigin at 0x7c040cb40f40>, alpha=10.0, order='RLQ'), 'rastrigin_seperable': Partial(<function make_determinstic at 0x7c040cb43920>, fn=<function rastrigin_seperable at 0x7c040cb405e0>), 'rosenbrock': Partial(<function make_determinstic at 0x7c040cb43920>, fn=<function rosenbrock at 0x7c040cb409a0>), 'rosenbrock_rotated': Partial(<function make_determinstic at 0x7c040cb43920>, fn=<function rosenbrock_rotated at 0x7c040cb40a40>), 'schaffer_f7_condition_10': Partial(<function _make_with_mat_deterministic at 0x7c040cb43b00>, fn=<function schaffer_f7_condition_10 at 0x7c040cb411c0>, alpha=10.0, order='LQ'), 'schaffer_f7_condition_1000': Partial(<function _make_with_mat_deterministic at 0x7c040cb43b00>, fn=<function schaffer_f7_condition_1000 at 0x7c040cb41300>, alpha=1000.0, order='LQ'), 'schwefel_xsinx': Partial(<function _make_schwefel_deterministic at 0x7c040cb43d80>, fn=<function schwefel_xsinx at 0x7c040cb41440>), 'sharp_ridge': Partial(<function _make_with_mat_deterministic at 0x7c040cb43b00>, fn=<function sharp_ridge at 0x7c040cb40d60>, alpha=10.0, order='QLR'), 'skew_rastrigin_bueche': Partial(<function make_determinstic at 0x7c040cb43920>, fn=<function skew_rastrigin_bueche at 0x7c040cb40680>), 'sphere': Partial(<function make_determinstic at 0x7c040cb43920>, fn=<function sphere at 0x7c041988b600>), 'step_ellipsoid': Partial(<function _make_with_mat_deterministic at 0x7c040cb43b00>, fn=<function step_ellipsoid at 0x7c040cb40900>, alpha=10.0, order='LR'), 'sum_of_different_powers': Partial(<function make_determinstic at 0x7c040cb43920>, fn=<function sum_of_different_powers at 0x7c040cb40e00>), 'weierstrass': Partial(<function _make_with_mat_deterministic at 0x7c040cb43b00>, fn=<function weierstrass at 0x7c040cb41080>, alpha=0.01, order='RLQ')}
module-attribute
¤
dict() -> new empty dictionary dict(mapping) -> new dictionary initialized from a mapping object's (key, value) pairs dict(iterable) -> new dictionary initialized as if via: d = {} for k, v in iterable: d[k] = v dict(**kwargs) -> new dictionary initialized with the name=value pairs in the keyword argument list. For example: dict(one=1, two=2)
bbob_jax.function_characteristics = defaultdict(<class 'dict'>, {'sphere': {'separable': True, 'unimodal': True}, 'ellipsoid_seperable': {'separable': True, 'unimodal': True}, 'rastrigin_seperable': {'separable': True, 'unimodal': True}, 'skew_rastrigin_bueche': {'separable': True, 'unimodal': True}, 'linear_slope': {'separable': True, 'unimodal': True}, 'attractive_sector': {'separable': False, 'unimodal': True}, 'step_ellipsoid': {'separable': False, 'unimodal': True}, 'rosenbrock': {'separable': False, 'unimodal': True}, 'rosenbrock_rotated': {'separable': False, 'unimodal': True}, 'ellipsoid': {'separable': False, 'unimodal': True}, 'discuss': {'separable': False, 'unimodal': True}, 'bent_cigar': {'separable': False, 'unimodal': True}, 'sharp_ridge': {'separable': False, 'unimodal': True}, 'sum_of_different_powers': {'separable': False, 'unimodal': True}, 'rastrigin': {'separable': False, 'unimodal': False}, 'weierstrass': {'separable': False, 'unimodal': False}, 'schaffer_f7_condition_10': {'separable': False, 'unimodal': False}, 'schaffer_f7_condition_1000': {'separable': False, 'unimodal': False}, 'griewank_rosenbrock_f8f2': {'separable': False, 'unimodal': False}, 'schwefel_xsinx': {'separable': False, 'unimodal': False}, 'gallagher_101_peaks': {'separable': False, 'unimodal': False}, 'gallagher_21_peaks': {'separable': False, 'unimodal': False}, 'katsuura': {'separable': False, 'unimodal': False}, 'lunacek_bi_rastrigin': {'separable': False, 'unimodal': False}})
module-attribute
¤
defaultdict(default_factory=None, /, [...]) --> dict with default factory
The default factory is called without arguments to produce a new value when a key is not present, in getitem only. A defaultdict compares equal to a dict with the same items. All remaining arguments are treated the same as if they were passed to the dict constructor, including keyword arguments.
Plotting Utilities¤
Helpers to quickly visualize functions in 2D and 3D. These utilities evaluate a provided benchmark function over a grid and render either a heatmap or a surface plot.
plot_2d: Renders a log-normalized heatmap of the function landscape.plot_3d: Renders a 3D surface; z-values are sym-log normalized for readability.
bbob_jax.plotting.plot_2d(fn: Callable, key: typing.Union[jaxtyping.Key[Array, ''], jaxtyping.UInt32[Array, 2]], bounds: tuple[float, float] = (-5.0, 5.0), px: int = 300, ax: typing.Optional[matplotlib.axes._axes.Axes] = None, log_norm: bool = True) -> tuple[matplotlib.figure.Figure, matplotlib.axes._axes.Axes]
¤
Plot a 2D heatmap of a BBOB function.
Creates a 2D visualization of the function landscape using imshow.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
fn
|
Callable
|
BBOB function to plot. Should accept (x, key) parameters. |
required |
key
|
Union
|
JAX random key for function evaluation. |
required |
bounds
|
tuple[float, float]
|
Min and max values for both x and y axes, by default (-5.0, 5.0). |
(-5.0, 5.0)
|
px
|
int
|
Number of pixels per axis (resolution), by default 300. |
300
|
ax
|
Optional[Axes]
|
Matplotlib axes to plot on. If None, creates new figure, by default None. |
None
|
log_norm
|
bool
|
Whether to use logarithmic normalization for colors, by default True. |
True
|
Returns:
| Type | Description |
|---|---|
tuple[Figure, Axes]
|
Figure and axes objects containing the plot. |
bbob_jax.plotting.plot_3d(fn: Callable, key: typing.Union[jaxtyping.Key[Array, ''], jaxtyping.UInt32[Array, 2]], bounds: tuple[float, float] = (-5.0, 5.0), px: int = 300, ax: typing.Optional[matplotlib.axes._axes.Axes] = None) -> tuple[matplotlib.figure.Figure, matplotlib.axes._axes.Axes]
¤
Plot a 3D surface of a BBOB function.
Creates a 3D visualization of the function landscape with shifted z-values for better visualization.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
fn
|
Callable
|
BBOB function to plot. Should accept (x, key) parameters. |
required |
key
|
Union
|
JAX random key for function evaluation. |
required |
bounds
|
tuple[float, float]
|
Min and max values for both x and y axes, by default (-5.0, 5.0). |
(-5.0, 5.0)
|
px
|
int
|
Number of pixels per axis (resolution), by default 300. |
300
|
ax
|
Optional[Axes]
|
Matplotlib 3D axes to plot on. If None, creates new figure, by default None. |
None
|
Returns:
| Type | Description |
|---|---|
tuple[Figure, Axes]
|
Figure and 3D axes objects containing the plot. |
CEC 2005 Registry¤
Centralized access to the CEC 2005 benchmark functions and their metadata.
bbob_jax.cec2005_registry: Randomized variants of each CEC 2005 function. Parameters (shift vectors, rotation matrices) are generated from seeds rather than loaded from the official CEC 2005 data files — results will not match published CEC 2005 benchmarking results.bbob_jax.cec2005_registry_original: Deterministic baseline variants (no random shift/rotation, no output offset). Useful for debugging and reference.bbob_jax.cec2005_function_characteristics: Properties per function (unimodal/multimodal/composition/rotated flags, plusnoise_omittedandstructure_modifiedflags where the JAX implementation deviates from the official spec).
bbob_jax.cec2005_registry = {'f1': Partial(<function make_randomized_cec2005 at 0x7c040cb60180>, fn=<function f1 at 0x7c040cb419e0>, num_components=1, minval=-100.0, maxval=100.0), 'f2': Partial(<function make_randomized_cec2005 at 0x7c040cb60180>, fn=<function f2 at 0x7c040cb41a80>, num_components=1, minval=-100.0, maxval=100.0), 'f3': Partial(<function make_randomized_cec2005 at 0x7c040cb60180>, fn=<function f3 at 0x7c040cb41b20>, num_components=1, minval=-100.0, maxval=100.0), 'f4': Partial(<function make_randomized_cec2005 at 0x7c040cb60180>, fn=<function f4 at 0x7c040cb41c60>, num_components=1, minval=-100.0, maxval=100.0), 'f5': Partial(<function _make_randomized_cec2005_f5 at 0x7c040cb60360>, fn=<function f5 at 0x7c040cb41d00>, num_components=1), 'f6': Partial(<function make_randomized_cec2005 at 0x7c040cb60180>, fn=<function f6 at 0x7c040cb41da0>, num_components=1, minval=-100.0, maxval=100.0), 'f7': Partial(<function _make_randomized_cec2005_f7 at 0x7c040cb60540>, fn=<function f7 at 0x7c040cb41e40>, num_components=1), 'f8': Partial(<function _make_randomized_cec2005_f8 at 0x7c040cb60400>, fn=<function f8 at 0x7c040cb41ee0>, num_components=1), 'f9': Partial(<function make_randomized_cec2005 at 0x7c040cb60180>, fn=<function f9 at 0x7c040cb41f80>, num_components=1, minval=-5.0, maxval=5.0), 'f10': Partial(<function _make_randomized_cec2005_conditioned_single at 0x7c040cb60680>, fn=<function f10 at 0x7c040cb42020>, minval=-5.0, maxval=5.0, condition_number=2.0), 'f11': Partial(<function _make_randomized_cec2005_conditioned_single at 0x7c040cb60680>, fn=<function f11 at 0x7c040cb420c0>, minval=-0.5, maxval=0.5, condition_number=5.0), 'f12': Partial(<function _make_randomized_cec2005_f12 at 0x7c040cb604a0>, fn=<function f12 at 0x7c040cb42160>, num_components=1), 'f13': Partial(<function make_randomized_cec2005 at 0x7c040cb60180>, fn=<function f13 at 0x7c040cb42200>, num_components=1, minval=-3.0, maxval=1.0), 'f14': Partial(<function _make_randomized_cec2005_conditioned_single at 0x7c040cb60680>, fn=<function f14 at 0x7c040cb422a0>, minval=-100.0, maxval=100.0, condition_number=3.0), 'f15': Partial(<function _add_f_max at 0x7c040cb60860>, base_factory=<function make_randomized_cec2005 at 0x7c040cb60180>, comp_fns_builder=<function _composition1_fns at 0x7c040cb42980>, comp_lambda=(1, 1, 10, 10, 0.08333333333333333, 0.08333333333333333, 0.15625, 0.15625, 0.05, 0.05), fn=<function f15 at 0x7c040cb42ac0>, num_components=10, minval=-5.0, maxval=5.0), 'f16': Partial(<function _add_f_max at 0x7c040cb60860>, base_factory=<function make_randomized_cec2005_conditioned at 0x7c040cb60220>, comp_fns_builder=<function _composition1_fns at 0x7c040cb42980>, comp_lambda=(1, 1, 10, 10, 0.08333333333333333, 0.08333333333333333, 0.15625, 0.15625, 0.05, 0.05), fn=<function f16 at 0x7c040cb42c00>, num_components=10, minval=-5.0, maxval=5.0, condition_numbers=(2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0)), 'f17': Partial(<function _add_f_max at 0x7c040cb60860>, base_factory=<function make_randomized_cec2005 at 0x7c040cb60180>, comp_fns_builder=<function _composition1_fns at 0x7c040cb42980>, comp_lambda=(1, 1, 10, 10, 0.08333333333333333, 0.08333333333333333, 0.15625, 0.15625, 0.05, 0.05), fn=<function f17 at 0x7c040cb42ca0>, num_components=10, minval=-5.0, maxval=5.0), 'f18': Partial(<function _add_f_max at 0x7c040cb60860>, base_factory=<function _make_randomized_cec2005_f18_family at 0x7c040cb60720>, comp_fns_builder=<function _composition2_fns at 0x7c040cb42d40>, comp_lambda=(0.3125, 0.15625, 2, 1, 0.1, 0.05, 20, 10, 0.16666666666666666, 0.08333333333333333), fn=<function f18 at 0x7c040cb42e80>, num_components=10), 'f19': Partial(<function _add_f_max at 0x7c040cb60860>, base_factory=<function _make_randomized_cec2005_f18_family at 0x7c040cb60720>, comp_fns_builder=<function _composition2_fns at 0x7c040cb42d40>, comp_lambda=(0.015625, 0.15625, 2, 1, 0.1, 0.05, 20, 10, 0.16666666666666666, 0.08333333333333333), fn=<function f19 at 0x7c040cb42fc0>, num_components=10), 'f20': Partial(<function _add_f_max at 0x7c040cb60860>, base_factory=<function _make_randomized_cec2005_f20 at 0x7c040cb607c0>, comp_fns_builder=<function _composition2_fns at 0x7c040cb42d40>, comp_lambda=(0.3125, 0.15625, 2, 1, 0.1, 0.05, 20, 10, 0.16666666666666666, 0.08333333333333333), fn=<function f20 at 0x7c040cb43100>, num_components=10), 'f21': Partial(<function _add_f_max at 0x7c040cb60860>, base_factory=<function make_randomized_cec2005_conditioned at 0x7c040cb60220>, comp_fns_builder=<function _composition3_fns at 0x7c040cb431a0>, comp_lambda=(0.25, 0.05, 5, 1, 5, 1, 50, 10, 0.125, 0.025), fn=<function f21 at 0x7c040cb43380>, num_components=10, minval=-5.0, maxval=5.0, condition_numbers=(1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0)), 'f22': Partial(<function _add_f_max at 0x7c040cb60860>, base_factory=<function make_randomized_cec2005_conditioned at 0x7c040cb60220>, comp_fns_builder=<function _composition3_fns at 0x7c040cb431a0>, comp_lambda=(0.25, 0.05, 5, 1, 5, 1, 50, 10, 0.125, 0.025), fn=<function f22 at 0x7c040cb434c0>, num_components=10, minval=-5.0, maxval=5.0, condition_numbers=(10.0, 20.0, 50.0, 100.0, 200.0, 1000.0, 2000.0, 3000.0, 4000.0, 5000.0)), 'f23': Partial(<function _add_f_max at 0x7c040cb60860>, base_factory=<function make_randomized_cec2005_conditioned at 0x7c040cb60220>, comp_fns_builder=<function _composition3_fns at 0x7c040cb431a0>, comp_lambda=(0.25, 0.05, 5, 1, 5, 1, 50, 10, 0.125, 0.025), fn=<function f23 at 0x7c040cb43600>, num_components=10, minval=-5.0, maxval=5.0, condition_numbers=(1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0)), 'f24': Partial(<function make_randomized_cec2005_conditioned at 0x7c040cb60220>, fn=<function f24 at 0x7c040cb436a0>, num_components=10, minval=-5.0, maxval=5.0, condition_numbers=(100.0, 50.0, 30.0, 10.0, 5.0, 5.0, 4.0, 3.0, 2.0, 2.0)), 'f25': Partial(<function make_randomized_cec2005_conditioned at 0x7c040cb60220>, fn=<function f25 at 0x7c040cb43740>, num_components=10, minval=-5.0, maxval=5.0, condition_numbers=(100.0, 50.0, 30.0, 10.0, 5.0, 5.0, 4.0, 3.0, 2.0, 2.0))}
module-attribute
¤
dict() -> new empty dictionary dict(mapping) -> new dictionary initialized from a mapping object's (key, value) pairs dict(iterable) -> new dictionary initialized as if via: d = {} for k, v in iterable: d[k] = v dict(**kwargs) -> new dictionary initialized with the name=value pairs in the keyword argument list. For example: dict(one=1, two=2)
bbob_jax.cec2005_registry_original = {'f1': Partial(<function make_deterministic_cec2005 at 0x7c040cb602c0>, fn=<function f1 at 0x7c040cb419e0>, num_components=1), 'f2': Partial(<function make_deterministic_cec2005 at 0x7c040cb602c0>, fn=<function f2 at 0x7c040cb41a80>, num_components=1), 'f3': Partial(<function make_deterministic_cec2005 at 0x7c040cb602c0>, fn=<function f3 at 0x7c040cb41b20>, num_components=1), 'f4': Partial(<function make_deterministic_cec2005 at 0x7c040cb602c0>, fn=<function f4 at 0x7c040cb41c60>, num_components=1), 'f5': Partial(<function make_deterministic_cec2005 at 0x7c040cb602c0>, fn=<function f5 at 0x7c040cb41d00>, num_components=1), 'f6': Partial(<function make_deterministic_cec2005 at 0x7c040cb602c0>, fn=<function f6 at 0x7c040cb41da0>, num_components=1), 'f7': Partial(<function make_deterministic_cec2005 at 0x7c040cb602c0>, fn=<function f7 at 0x7c040cb41e40>, num_components=1), 'f8': Partial(<function make_deterministic_cec2005 at 0x7c040cb602c0>, fn=<function f8 at 0x7c040cb41ee0>, num_components=1), 'f9': Partial(<function make_deterministic_cec2005 at 0x7c040cb602c0>, fn=<function f9 at 0x7c040cb41f80>, num_components=1), 'f10': Partial(<function make_deterministic_cec2005 at 0x7c040cb602c0>, fn=<function f10 at 0x7c040cb42020>, num_components=1), 'f11': Partial(<function make_deterministic_cec2005 at 0x7c040cb602c0>, fn=<function f11 at 0x7c040cb420c0>, num_components=1), 'f12': Partial(<function make_deterministic_cec2005 at 0x7c040cb602c0>, fn=<function f12 at 0x7c040cb42160>, num_components=1), 'f13': Partial(<function make_deterministic_cec2005 at 0x7c040cb602c0>, fn=<function f13 at 0x7c040cb42200>, num_components=1), 'f14': Partial(<function make_deterministic_cec2005 at 0x7c040cb602c0>, fn=<function f14 at 0x7c040cb422a0>, num_components=1), 'f15': Partial(<function _add_f_max_deterministic at 0x7c040cb609a0>, comp_fns_builder=<function _composition1_fns at 0x7c040cb42980>, comp_lambda=(1, 1, 10, 10, 0.08333333333333333, 0.08333333333333333, 0.15625, 0.15625, 0.05, 0.05), fn=<function f15 at 0x7c040cb42ac0>, num_components=10), 'f16': Partial(<function _add_f_max_deterministic at 0x7c040cb609a0>, comp_fns_builder=<function _composition1_fns at 0x7c040cb42980>, comp_lambda=(1, 1, 10, 10, 0.08333333333333333, 0.08333333333333333, 0.15625, 0.15625, 0.05, 0.05), fn=<function f16 at 0x7c040cb42c00>, num_components=10), 'f17': Partial(<function _add_f_max_deterministic at 0x7c040cb609a0>, comp_fns_builder=<function _composition1_fns at 0x7c040cb42980>, comp_lambda=(1, 1, 10, 10, 0.08333333333333333, 0.08333333333333333, 0.15625, 0.15625, 0.05, 0.05), fn=<function f17 at 0x7c040cb42ca0>, num_components=10), 'f18': Partial(<function _add_f_max_deterministic at 0x7c040cb609a0>, comp_fns_builder=<function _composition2_fns at 0x7c040cb42d40>, comp_lambda=(0.3125, 0.15625, 2, 1, 0.1, 0.05, 20, 10, 0.16666666666666666, 0.08333333333333333), fn=<function f18 at 0x7c040cb42e80>, num_components=10), 'f19': Partial(<function _add_f_max_deterministic at 0x7c040cb609a0>, comp_fns_builder=<function _composition2_fns at 0x7c040cb42d40>, comp_lambda=(0.015625, 0.15625, 2, 1, 0.1, 0.05, 20, 10, 0.16666666666666666, 0.08333333333333333), fn=<function f19 at 0x7c040cb42fc0>, num_components=10), 'f20': Partial(<function _add_f_max_deterministic at 0x7c040cb609a0>, comp_fns_builder=<function _composition2_fns at 0x7c040cb42d40>, comp_lambda=(0.3125, 0.15625, 2, 1, 0.1, 0.05, 20, 10, 0.16666666666666666, 0.08333333333333333), fn=<function f20 at 0x7c040cb43100>, num_components=10), 'f21': Partial(<function _add_f_max_deterministic at 0x7c040cb609a0>, comp_fns_builder=<function _composition3_fns at 0x7c040cb431a0>, comp_lambda=(0.25, 0.05, 5, 1, 5, 1, 50, 10, 0.125, 0.025), fn=<function f21 at 0x7c040cb43380>, num_components=10), 'f22': Partial(<function _add_f_max_deterministic at 0x7c040cb609a0>, comp_fns_builder=<function _composition3_fns at 0x7c040cb431a0>, comp_lambda=(0.25, 0.05, 5, 1, 5, 1, 50, 10, 0.125, 0.025), fn=<function f22 at 0x7c040cb434c0>, num_components=10), 'f23': Partial(<function _add_f_max_deterministic at 0x7c040cb609a0>, comp_fns_builder=<function _composition3_fns at 0x7c040cb431a0>, comp_lambda=(0.25, 0.05, 5, 1, 5, 1, 50, 10, 0.125, 0.025), fn=<function f23 at 0x7c040cb43600>, num_components=10), 'f24': Partial(<function make_deterministic_cec2005 at 0x7c040cb602c0>, fn=<function f24 at 0x7c040cb436a0>, num_components=10), 'f25': Partial(<function make_deterministic_cec2005 at 0x7c040cb602c0>, fn=<function f25 at 0x7c040cb43740>, num_components=10)}
module-attribute
¤
dict() -> new empty dictionary dict(mapping) -> new dictionary initialized from a mapping object's (key, value) pairs dict(iterable) -> new dictionary initialized as if via: d = {} for k, v in iterable: d[k] = v dict(**kwargs) -> new dictionary initialized with the name=value pairs in the keyword argument list. For example: dict(one=1, two=2)
bbob_jax.cec2005_function_characteristics = defaultdict(<class 'dict'>, {'f1': {'unimodal': True, 'multimodal': False, 'composition': False, 'rotated': False, 'noise': False, 'structure_modified': False}, 'f2': {'unimodal': True, 'multimodal': False, 'composition': False, 'rotated': False, 'noise': False, 'structure_modified': False}, 'f3': {'unimodal': True, 'multimodal': False, 'composition': False, 'rotated': True, 'noise': False, 'structure_modified': False}, 'f4': {'unimodal': True, 'multimodal': False, 'composition': False, 'rotated': False, 'noise': True, 'structure_modified': False}, 'f5': {'unimodal': True, 'multimodal': False, 'composition': False, 'rotated': False, 'noise': False, 'structure_modified': False}, 'f6': {'unimodal': False, 'multimodal': True, 'composition': False, 'rotated': False, 'noise': False, 'structure_modified': False}, 'f7': {'unimodal': False, 'multimodal': True, 'composition': False, 'rotated': True, 'noise': False, 'structure_modified': False}, 'f8': {'unimodal': False, 'multimodal': True, 'composition': False, 'rotated': True, 'noise': False, 'structure_modified': False}, 'f9': {'unimodal': False, 'multimodal': True, 'composition': False, 'rotated': False, 'noise': False, 'structure_modified': False}, 'f10': {'unimodal': False, 'multimodal': True, 'composition': False, 'rotated': True, 'noise': False, 'structure_modified': False}, 'f11': {'unimodal': False, 'multimodal': True, 'composition': False, 'rotated': True, 'noise': False, 'structure_modified': False}, 'f12': {'unimodal': False, 'multimodal': True, 'composition': False, 'rotated': False, 'noise': False, 'structure_modified': False}, 'f13': {'unimodal': False, 'multimodal': True, 'composition': False, 'rotated': False, 'noise': False, 'structure_modified': False}, 'f14': {'unimodal': False, 'multimodal': True, 'composition': False, 'rotated': True, 'noise': False, 'structure_modified': False}, 'f15': {'unimodal': False, 'multimodal': True, 'composition': True, 'rotated': False, 'noise': False, 'structure_modified': False}, 'f16': {'unimodal': False, 'multimodal': True, 'composition': True, 'rotated': True, 'noise': False, 'structure_modified': False}, 'f17': {'unimodal': False, 'multimodal': True, 'composition': True, 'rotated': True, 'noise': True, 'structure_modified': False}, 'f18': {'unimodal': False, 'multimodal': True, 'composition': True, 'rotated': True, 'noise': False, 'structure_modified': False}, 'f19': {'unimodal': False, 'multimodal': True, 'composition': True, 'rotated': True, 'noise': False, 'structure_modified': False}, 'f20': {'unimodal': False, 'multimodal': True, 'composition': True, 'rotated': True, 'noise': False, 'structure_modified': False}, 'f21': {'unimodal': False, 'multimodal': True, 'composition': True, 'rotated': True, 'noise': False, 'structure_modified': False}, 'f22': {'unimodal': False, 'multimodal': True, 'composition': True, 'rotated': True, 'noise': False, 'structure_modified': False}, 'f23': {'unimodal': False, 'multimodal': True, 'composition': True, 'rotated': True, 'noise': False, 'structure_modified': True}, 'f24': {'unimodal': False, 'multimodal': True, 'composition': True, 'rotated': True, 'noise': True, 'structure_modified': True}, 'f25': {'unimodal': False, 'multimodal': True, 'composition': True, 'rotated': True, 'noise': True, 'structure_modified': True}})
module-attribute
¤
defaultdict(default_factory=None, /, [...]) --> dict with default factory
The default factory is called without arguments to produce a new value when a key is not present, in getitem only. A defaultdict compares equal to a dict with the same items. All remaining arguments are treated the same as if they were passed to the dict constructor, including keyword arguments.
CEC 2005 Functions¤
Individual CEC 2005 benchmark function APIs (F1–F25). Access via the registries is recommended; the registry supplies internal parameters so the user-facing call is just fn(x).
Note: Parameters are generated from seeds rather than loaded from the official CEC 2005 data files. Functions F4 and F17 have Gaussian noise omitted for
jax.gradcompatibility. Function F23 has its rounding step removed. Seecec2005_function_characteristicsfor per-function flags.
bbob_jax._src.cec2005.f1(x: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array) -> Array
¤
Shifted Sphere function (F1).
Simple unimodal function with global optimum at x_opt.

Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
x_opt
|
Array
|
Optimal point. |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Rotation matrix (unused). |
required |
Q
|
Array
|
Second rotation matrix (unused). |
required |
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax._src.cec2005.f2(x: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array) -> Array
¤
Shifted Schwefel's Problem 1.2 (F2).
Unimodal function with non-separable variables via cumulative sum.

Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
x_opt
|
Array
|
Optimal point. |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Rotation matrix (unused). |
required |
Q
|
Array
|
Second rotation matrix (unused). |
required |
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax._src.cec2005.f3(x: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array) -> Array
¤
Shifted Rotated High Conditioned Elliptic function (F3).
Unimodal function with high conditioning and rotation applied.

Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
x_opt
|
Array
|
Optimal point. |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Rotation matrix. |
required |
Q
|
Array
|
Second rotation matrix (unused). |
required |
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax._src.cec2005.f4(x: Array, key: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array) -> Array
¤
Shifted Schwefel 1.2 with Noise (F4).
Applies multiplicative Gaussian noise: f(x) * (1 + 0.4 * N(0,1)).

Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
key
|
Array
|
JAX PRNGKey for stochastic noise. |
required |
x_opt
|
Array
|
Optimal point. |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Rotation matrix (unused). |
required |
Q
|
Array
|
Second rotation matrix (unused). |
required |
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax._src.cec2005.f5(x: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array) -> Array
¤
Schwefel's Problem 2.6 with Global Optimum on Bounds (F5).
Non-differentiable function based on the Chebyshev norm. R is repurposed as the A matrix (n x n). In the official CEC 2005 spec, x_opt has components clamped to ±5; here x_opt is sampled from [-100, 100] as parameters are seed-generated rather than loaded from official data files.

Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
x_opt
|
Array
|
Optimal point. |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Repurposed as the A matrix (n x n); b = A @ x_opt is computed internally. |
required |
Q
|
Array
|
Second rotation matrix (unused). |
required |
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax._src.cec2005.f6(x: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array) -> Array
¤
Shifted Rosenbrock's function (F6).
Multimodal function with a narrow curved valley. Input is shifted by
x - x_opt + 1 to place the valley at x_opt.

Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
x_opt
|
Array
|
Optimal point. |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Rotation matrix (unused). |
required |
Q
|
Array
|
Second rotation matrix (unused). |
required |
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax._src.cec2005.f7(x: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array) -> Array
¤
Shifted Rotated Griewank's without Bounds (F7).
Multimodal function with many regularly distributed local optima.

Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
x_opt
|
Array
|
Optimal point. |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Rotation matrix. |
required |
Q
|
Array
|
Second rotation matrix (unused). |
required |
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax._src.cec2005.f8(x: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array) -> Array
¤
Shifted Rotated Ackley's with Global Optimum on Bounds (F8).
Multimodal function with many local optima and a nearly flat outer region.

Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
x_opt
|
Array
|
Optimal point. |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Rotation matrix. |
required |
Q
|
Array
|
Second rotation matrix (unused). |
required |
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax._src.cec2005.f9(x: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array) -> Array
¤
Shifted Rastrigin's function (F9).
Highly multimodal function with many local optima arranged in a grid. Variables are not rotated.

Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
x_opt
|
Array
|
Optimal point. |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Rotation matrix (unused). |
required |
Q
|
Array
|
Second rotation matrix (unused). |
required |
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax._src.cec2005.f10(x: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array) -> Array
¤
Shifted Rotated Rastrigin's function (F10).
Highly multimodal function with many local optima and rotation applied.

Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
x_opt
|
Array
|
Optimal point. |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Rotation matrix. |
required |
Q
|
Array
|
Second rotation matrix (unused). |
required |
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax._src.cec2005.f11(x: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array) -> Array
¤
Shifted Rotated Weierstrass function (F11).
Continuous but differentiable only finitely many times. Highly multimodal.

Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
x_opt
|
Array
|
Optimal point. |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Rotation matrix. |
required |
Q
|
Array
|
Second rotation matrix (unused). |
required |
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax._src.cec2005.f12(x: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array) -> Array
¤
Schwefel's Problem 2.13 (F12).
Unimodal function defined via inner-product matrices. R is repurposed as the 'a' matrix (n x n), Q as the 'b' matrix (n x n), and x_opt stores the alpha vector (optimal solution).

Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
x_opt
|
Array
|
Alpha vector (optimal solution angles). |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Repurposed as the 'a' matrix (n x n). |
required |
Q
|
Array
|
Repurposed as the 'b' matrix (n x n). |
required |
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax._src.cec2005.f13(x: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array) -> Array
¤
Expanded Extended Griewank's plus Rosenbrock's F8F2 (F13).
Applies a 1D Griewank function to consecutive Rosenbrock values cyclically. R and Q are unused.

Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
x_opt
|
Array
|
Optimal point. |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Rotation matrix (unused). |
required |
Q
|
Array
|
Second rotation matrix (unused). |
required |
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax._src.cec2005.f14(x: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array) -> Array
¤
Shifted Rotated Expanded Scaffer's F6 (F14).
Applies Scaffer's F6 to consecutive pairs cyclically after rotation.

Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
x_opt
|
Array
|
Optimal point. |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Rotation matrix. |
required |
Q
|
Array
|
Second rotation matrix (unused). |
required |
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax._src.cec2005.f15(x: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array, _f_max: jax.Array | None = None) -> Array
¤
Hybrid Composition Function 1 (F15).
Ten mixed components (Rastrigin, Weierstrass, Griewank, Ackley,
Sphere) without rotation (identity matrices). sigma=[1]*10.

Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
x_opt
|
Array
|
Matrix of component optima of shape (10, ndim). |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Rotation matrix stack (overridden with identity). |
required |
Q
|
Array
|
Unused. |
required |
_f_max
|
Array
|
Precomputed reference normalization values for composition components, of shape (num_components,). |
None
|
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax._src.cec2005.f16(x: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array, _f_max: jax.Array | None = None) -> Array
¤
Rotated Hybrid Composition Function 1 (F16).
Same as F15 but with rotation matrices (condition number 2).

Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
x_opt
|
Array
|
Matrix of component optima of shape (10, ndim). |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Stack of rotation matrices of shape (10, ndim, ndim). |
required |
Q
|
Array
|
Unused. |
required |
_f_max
|
Array
|
Precomputed reference normalization values for composition components, of shape (num_components,). |
None
|
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax._src.cec2005.f17(x: Array, key: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array, _f_max: jax.Array | None = None) -> Array
¤
Rotated Hybrid Composition Function 1 with Noise (F17).
Applies multiplicative absolute Gaussian noise to the base F16 result:
f(x) * (1 + 0.4 * |N(0,1)|).

Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
key
|
Array
|
JAX PRNGKey for stochastic noise. |
required |
x_opt
|
Array
|
Matrix of component optima of shape (10, ndim). |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Stack of rotation matrices of shape (10, ndim, ndim). |
required |
Q
|
Array
|
Unused. |
required |
_f_max
|
Array
|
Precomputed reference normalization values for composition components, of shape (num_components,). |
None
|
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax._src.cec2005.f18(x: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array, _f_max: jax.Array | None = None) -> Array
¤
Rotated Hybrid Composition Function 2 (F18).
Ten mixed components (Ackley, Rastrigin, Sphere, Weierstrass,
Griewank). o10 = [0,...,0] sets a local optimum at origin.

Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
x_opt
|
Array
|
Matrix of component optima of shape (10, ndim). |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Stack of rotation matrices of shape (10, ndim, ndim). |
required |
Q
|
Array
|
Unused. |
required |
_f_max
|
Array
|
Precomputed reference normalization values for composition components, of shape (num_components,). |
None
|
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax._src.cec2005.f19(x: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array, _f_max: jax.Array | None = None) -> Array
¤
Rotated Hybrid Composition Function 2, Narrow Basin (F19).
Same as F18 but with sigma[0]=0.1 and lambda[0]
scaled by 0.1.

Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
x_opt
|
Array
|
Matrix of component optima of shape (10, ndim). |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Stack of rotation matrices of shape (10, ndim, ndim). |
required |
Q
|
Array
|
Unused. |
required |
_f_max
|
Array
|
Precomputed reference normalization values for composition components, of shape (num_components,). |
None
|
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax._src.cec2005.f20(x: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array, _f_max: jax.Array | None = None) -> Array
¤
Hybrid Composition 2 with Global Optimum on Bounds (F20).
Same as F18. x_opt[0] has even-indexed dims (1-based) set to 5 by the registry factory.

Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
x_opt
|
Array
|
Matrix of component optima of shape (10, ndim). |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Stack of rotation matrices of shape (10, ndim, ndim). |
required |
Q
|
Array
|
Unused. |
required |
_f_max
|
Array
|
Precomputed reference normalization values for composition components, of shape (num_components,). |
None
|
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax._src.cec2005.f21(x: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array, _f_max: jax.Array | None = None) -> Array
¤
Rotated Hybrid Composition Function 3 (F21).
Ten mixed components (Scaffer's F6, Rastrigin, F8F2, Weierstrass, Griewank).

Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
x_opt
|
Array
|
Matrix of component optima of shape (10, ndim). |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Stack of rotation matrices of shape (10, ndim, ndim). |
required |
Q
|
Array
|
Unused. |
required |
_f_max
|
Array
|
Precomputed reference normalization values for composition components, of shape (num_components,). |
None
|
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax._src.cec2005.f22(x: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array, _f_max: jax.Array | None = None) -> Array
¤
Rotated Hybrid Composition 3, High Condition Number (F22).
Same as F21 but the factory supplies high-condition-number matrices [10, 20, 50, 100, 200, 1000, 2000, 3000, 4000, 5000].

Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
x_opt
|
Array
|
Matrix of component optima of shape (10, ndim). |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Stack of rotation matrices of shape (10, ndim, ndim). |
required |
Q
|
Array
|
Unused. |
required |
_f_max
|
Array
|
Precomputed reference normalization values for composition components, of shape (num_components,). |
None
|
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax._src.cec2005.f23(x: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array, _f_max: jax.Array | None = None) -> Array
¤
Non-Continuous Rotated Hybrid Composition Function 3 (F23).
Same as F21 but with soft rounding applied to x before
evaluation. Uses softjax for jax.grad compatibility.
Notes
The soft rounding approximation shifts the effective
minimum away from the theoretical optimum. At x_opt,
the function value differs from f_opt by ~1e-2
across all tested dimensions.

Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
x_opt
|
Array
|
Matrix of component optima of shape (10, ndim). |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Stack of rotation matrices of shape (10, ndim, ndim). |
required |
Q
|
Array
|
Unused. |
required |
_f_max
|
Array
|
Precomputed reference normalization values for composition components, of shape (num_components,). |
None
|
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax._src.cec2005.f24(x: Array, key: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array, _f_max: jax.Array | None = None) -> Array
¤
Rotated Hybrid Composition Function 4 (F24).
Ten different components including non-continuous variants.
Rotation matrices with condition numbers
[100, 50, 30, 10, 5, 5, 4, 3, 2, 2] are supplied by the factory.
The 10th component (noisy sphere) applies multiplicative absolute
Gaussian noise: sphere(z) * (1 + 0.01 * |N(0,1)|).

Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
key
|
Array
|
JAX PRNGKey for stochastic noise in the noisy sphere component. |
required |
x_opt
|
Array
|
Matrix of component optima of shape (10, ndim). |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Stack of rotation matrices of shape (10, ndim, ndim). |
required |
Q
|
Array
|
Unused. |
required |
_f_max
|
Array
|
Precomputed reference normalization values for composition components, of shape (num_components,). |
None
|
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax._src.cec2005.f25(x: Array, key: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array, _f_max: jax.Array | None = None) -> Array
¤
Rotated Hybrid Composition Function 4 without Bounds (F25).
Identical to F24. In the paper, this function differs only by the initialization range. The implementation keeps the same function formula while not constraining component optima to the initialization interval.

Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
key
|
Array
|
JAX PRNGKey for stochastic noise (forwarded to F24). |
required |
x_opt
|
Array
|
Matrix of component optima of shape (10, ndim). |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Stack of rotation matrices of shape (10, ndim, ndim). |
required |
Q
|
Array
|
Unused. |
required |
_f_max
|
Array
|
Precomputed reference normalization values for composition components, of shape (num_components,). |
None
|
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
BBOB Functions¤
Individual benchmark function APIs. Public call pattern is via the root package (e.g., bbob_jax.sphere). When used through the registries, call as fn(x, key=...); the registry supplies internal shift/rotation parameters so you only provide the decision vector x (shape (..., dim)) and an optional PRNG key.
bbob_jax.sphere(x: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array) -> Array
¤
Sphere function (F1).
Simple unimodal function with global optimum at origin.

Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
x_opt
|
Array
|
Optimal point. |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Rotation matrix. |
required |
Q
|
Array
|
Second rotation matrix. |
required |
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax.ellipsoid_seperable(x: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array) -> Array
¤
Separable ellipsoid function (F2).
Unimodal function with high conditioning. Variables are independent.

Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
x_opt
|
Array
|
Optimal point. |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Rotation matrix. |
required |
Q
|
Array
|
Second rotation matrix. |
required |
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax.rastrigin_seperable(x: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array) -> Array
¤
Separable Rastrigin function (F3).
Highly multimodal function with many local optima. Variables are independent.

Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
x_opt
|
Array
|
Optimal point. |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Rotation matrix. |
required |
Q
|
Array
|
Second rotation matrix. |
required |
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax.skew_rastrigin_bueche(x: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array) -> Array
¤
Skewed Rastrigin-Bueche function (F4).
Multimodal function with asymmetric conditioning and skewed search space.

Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
x_opt
|
Array
|
Optimal point. |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Rotation matrix. |
required |
Q
|
Array
|
Second rotation matrix. |
required |
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax.linear_slope(x: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array, _ls_x_opt: jax.Array | None = None, _ls_s: jax.Array | None = None) -> Array
¤
Linear slope function (F5).
Simple linear function with a single optimum at the boundary.

Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
x_opt
|
Array
|
Optimal point. |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Rotation matrix. |
required |
Q
|
Array
|
Second rotation matrix. |
required |
_ls_x_opt
|
Array
|
Precomputed optimal point override (derived from Q). |
None
|
_ls_s
|
Array
|
Precomputed slope vector. |
None
|
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax.attractive_sector(x: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array, _mat: jax.Array | None = None) -> Array
¤
Attractive sector function (F6).
Unimodal function with smooth but highly asymmetric landscape.

Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
x_opt
|
Array
|
Optimal point. |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Rotation matrix. |
required |
Q
|
Array
|
Second rotation matrix. |
required |
_mat
|
Array
|
Precomputed transformation matrix (Q @ lambda @ R). |
None
|
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax.step_ellipsoid(x: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array, _mat: jax.Array | None = None) -> Array
¤
Step ellipsoid function (F7).
Unimodal function with plateau-like regions and discontinuities.

Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
x_opt
|
Array
|
Optimal point. |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Rotation matrix. |
required |
Q
|
Array
|
Second rotation matrix. |
required |
_mat
|
Array
|
Precomputed transformation matrix (lambda @ R). |
None
|
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax.rosenbrock(x: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array) -> Array
¤
Rosenbrock function (F8).
Classic benchmark with narrow valley leading to the optimum.

Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
x_opt
|
Array
|
Optimal point. |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Rotation matrix. |
required |
Q
|
Array
|
Second rotation matrix. |
required |
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax.rosenbrock_rotated(x: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array) -> Array
¤
Rosenbrock function, rotated (F9).
Rotated version of the Rosenbrock function with increased difficulty.

Note
The true minimizer is not at x_opt but at
x_opt + (0.5 / zmax) * ones @ R.T where
zmax = max(1, sqrt(ndim) / 8). For some rotation matrices this
point can fall outside the standard [-5, 5] bounds.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
x_opt
|
Array
|
Optimal point. |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Rotation matrix. |
required |
Q
|
Array
|
Second rotation matrix. |
required |
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax.ellipsoid(x: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array) -> Array
¤
Ellipsoid function (F10).
Unimodal function with high conditioning, rotated.

Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
x_opt
|
Array
|
Optimal point. |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Rotation matrix. |
required |
Q
|
Array
|
Second rotation matrix. |
required |
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax.discuss(x: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array) -> Array
¤
Discus function (F11).
Unimodal function with one direction having much higher sensitivity.

Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
x_opt
|
Array
|
Optimal point. |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Rotation matrix. |
required |
Q
|
Array
|
Second rotation matrix. |
required |
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax.bent_cigar(x: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array) -> Array
¤
Bent cigar function (F12).
Unimodal function with a ridge, creating a cigar-like shape.

Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
x_opt
|
Array
|
Optimal point. |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Rotation matrix. |
required |
Q
|
Array
|
Second rotation matrix. |
required |
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax.sharp_ridge(x: Array, x_opt: Array, R: Array, Q: Array, f_opt: Array, _mat: jax.Array | None = None) -> Array
¤
Sharp ridge function (F13).
Unimodal function with a sharp ridge, difficult to follow.

Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
x_opt
|
Array
|
Optimal point. |
required |
R
|
Array
|
Rotation matrix. |
required |
Q
|
Array
|
Second rotation matrix. |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
_mat
|
Array
|
Precomputed transformation matrix (Q @ lambda @ R). |
None
|
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax.sum_of_different_powers(x: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array) -> Array
¤
Sum of different powers function (F14).
Unimodal function with different sensitivities across dimensions.

Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
x_opt
|
Array
|
Optimal point. |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Rotation matrix. |
required |
Q
|
Array
|
Second rotation matrix. |
required |
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax.rastrigin(x: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array, _mat: jax.Array | None = None) -> Array
¤
Rastrigin function (F15).
Highly multimodal function with many regularly distributed local optima.

Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
x_opt
|
Array
|
Optimal point. |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Rotation matrix. |
required |
Q
|
Array
|
Second rotation matrix. |
required |
_mat
|
Array
|
Precomputed transformation matrix (R @ lambda @ Q). |
None
|
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax.weierstrass(x: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array, _mat: jax.Array | None = None) -> Array
¤
Weierstrass function (F16).
Highly multimodal function with small peaks everywhere, continuous but non-differentiable.

Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
x_opt
|
Array
|
Optimal point. |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Rotation matrix. |
required |
Q
|
Array
|
Second rotation matrix. |
required |
_mat
|
Array
|
Precomputed transformation matrix (R @ lambda @ Q). |
None
|
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax.schaffer_f7_condition_10(x: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array, _mat: jax.Array | None = None) -> Array
¤
Schaffer F7 function with conditioning 10 (F17).
Multimodal function with asymmetric, moderately conditioned landscape.

Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
x_opt
|
Array
|
Optimal point. |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Rotation matrix. |
required |
Q
|
Array
|
Second rotation matrix. |
required |
_mat
|
Array
|
Precomputed transformation matrix (lambda @ Q). |
None
|
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax.schaffer_f7_condition_1000(x: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array, _mat: jax.Array | None = None) -> Array
¤
Schaffer F7 function with conditioning 1000 (F18).
Multimodal function with asymmetric, highly conditioned landscape.

Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
x_opt
|
Array
|
Optimal point. |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Rotation matrix. |
required |
Q
|
Array
|
Second rotation matrix. |
required |
_mat
|
Array
|
Precomputed transformation matrix (lambda @ Q). |
None
|
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax.griewank_rosenbrock_f8f2(x: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array) -> Array
¤
Griewank-Rosenbrock F8F2 function (F19).
Multimodal function combining Rosenbrock's narrow valley with Griewank's modulation.

Note
The true minimizer is not at x_opt but at
x_opt + (0.5 / zmax) * R.T @ ones where
zmax = max(1, sqrt(ndim) / 8). For some rotation matrices this
point can fall outside the standard [-5, 5] bounds.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
x_opt
|
Array
|
Optimal point. |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Rotation matrix. |
required |
Q
|
Array
|
Second rotation matrix. |
required |
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax.schwefel_xsinx(x: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array, _sw_ones: jax.Array | None = None, _sw_x_opt_shape: jax.Array | None = None, _sw_lamb: jax.Array | None = None, _sw_f_ref: jax.Array | None = None) -> Array
¤
Schwefel x*sin(x) function (F20).
Multimodal function with many local optima and a global optimum far from origin.

Note
The zero-offset constant (≈4.1898) is computed dynamically from the
internal x_opt_shape rather than hardcoded as a precision-specific
literal. This ensures exact cancellation at the optimum at whichever
precision JAX is configured for (float32 or float64), avoiding the
~5e-7 residual a hardcoded float64 literal would leave behind under
x32, and the equivalent precision mismatch under x64.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
x_opt
|
Array
|
Optimal point. |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Rotation matrix. |
required |
Q
|
Array
|
Second rotation matrix. |
required |
_sw_ones
|
Array
|
Precomputed Bernoulli sign vector (derived from Q). |
None
|
_sw_x_opt_shape
|
Array
|
Precomputed optimal shape vector. |
None
|
_sw_lamb
|
Array
|
Precomputed conditioning matrix (lambda). |
None
|
_sw_f_ref
|
Array
|
Precomputed reference function value for zero-offset. |
None
|
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax.gallagher_101_peaks(x: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array, _gal_w: jax.Array | None = None, _gal_y: jax.Array | None = None, _gal_c_diags: jax.Array | None = None) -> Array
¤
Gallagher 101 peaks function (F21).
Multimodal function with 101 optima of different heights.

Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
x_opt
|
Array
|
Optimal point. |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Rotation matrix. |
required |
Q
|
Array
|
Second rotation matrix. |
required |
_gal_w
|
Array
|
Precomputed peak weight vector of shape (101,). |
None
|
_gal_y
|
Array
|
Precomputed peak location matrix of shape (101, ndim). |
None
|
_gal_c_diags
|
Array
|
Precomputed conditioning diagonal vectors of shape (101, ndim). |
None
|
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax.gallagher_21_peaks(x: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array, _gal_w: jax.Array | None = None, _gal_y: jax.Array | None = None, _gal_c_diags: jax.Array | None = None) -> Array
¤
Gallagher 21 peaks function (F22).
Multimodal function with 21 optima of different heights.

Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
x_opt
|
Array
|
Optimal point. |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Rotation matrix. |
required |
Q
|
Array
|
Second rotation matrix. |
required |
_gal_w
|
Array
|
Precomputed peak weight vector of shape (21,). |
None
|
_gal_y
|
Array
|
Precomputed peak location matrix of shape (21, ndim). |
None
|
_gal_c_diags
|
Array
|
Precomputed conditioning diagonal vectors of shape (21, ndim). |
None
|
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax.katsuura(x: Array, x_opt: Array, f_opt: Array, R: Array, Q: Array, _mat: jax.Array | None = None) -> Array
¤
Katsuura function (F23).
Highly multimodal function with many small local optima, rugged landscape.

Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
x_opt
|
Array
|
Optimal point. |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
R
|
Array
|
Rotation matrix. |
required |
Q
|
Array
|
Second rotation matrix. |
required |
_mat
|
Array
|
Precomputed transformation matrix (Q @ lambda @ R). |
None
|
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |
bbob_jax.lunacek_bi_rastrigin(x: Array, x_opt: Array, R: Array, Q: Array, f_opt: Array, _mat: jax.Array | None = None, _x_opt_shape: jax.Array | None = None, _s: jax.Array | None = None, _mu1: jax.Array | None = None) -> Array
¤
Lunacek bi-Rastrigin function (F24).
Highly multimodal function with two funnels and many local optima.

Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Array
|
Input array of shape (..., ndim). |
required |
x_opt
|
Array
|
Optimal point. |
required |
R
|
Array
|
Rotation matrix. |
required |
Q
|
Array
|
Second rotation matrix. |
required |
f_opt
|
Array
|
Optimal function value offset. |
required |
_mat
|
Array
|
Precomputed transformation matrix (Q @ lambda @ R). |
None
|
_x_opt_shape
|
Array
|
Precomputed optimal shape vector (derived from Q). |
None
|
_s
|
Array
|
Precomputed conditioning parameter. |
None
|
_mu1
|
Array
|
Precomputed second funnel center. |
None
|
Returns:
| Type | Description |
|---|---|
Array
|
Function value(s). |