math-test-functions 0.5.2

A collection of non linear functions for testing optimisation algorithms
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
//! Styblinski Tang2 test function

use ndarray::Array1;

/// Styblinski-Tang function variant (2D specific)
/// Global minimum: f(x) = -78.332 for 2D at x = (-2.903534, -2.903534)
pub fn styblinski_tang2(x: &Array1<f64>) -> f64 {
    let sum: f64 = x
        .iter()
        .map(|&xi| xi.powi(4) - 16.0 * xi.powi(2) + 5.0 * xi)
        .sum();
    sum / 2.0
}