// Copyright 2023 wanderer // SPDX-License-Identifier: GPL-3.0-or-later package cec2020 import "math" // void sphere_func (double *, double *, int , double *,double *, int, int); // Sphere // void ellips_func(double *, double *, int , double *,double *, int, int); // Ellipsoidal // void bent_cigar_func(double *, double *, int , double *,double *, int, int); // Discus // void discus_func(double *, double *, int , double *,double *, int, int); // Bent_Cigar // void dif_powers_func(double *, double *, int , double *,double *, int, int); // Different Powers // void rosenbrock_func (double *, double *, int , double *,double *, int, int); // Rosenbrock's // void schaffer_F7_func (double *, double *, int , double *,double *, int, int); // Schwefel's F7 // void ackley_func (double *, double *, int , double *,double *, int, int); // Ackley's // void rastrigin_func (double *, double *, int , double *,double *, int, int); // Rastrigin's // void weierstrass_func (double *, double *, int , double *,double *, int, int); // Weierstrass's // void griewank_func (double *, double *, int , double *,double *, int, int); // Griewank's // void schwefel_func (double *, double *, int , double *,double *, int, int); // Schwefel's // void katsuura_func (double *, double *, int , double *,double *, int, int); // Katsuura // void bi_rastrigin_func (double *, double *, int , double *,double *, int, int); // Lunacek Bi_rastrigin // void grie_rosen_func (double *, double *, int , double *,double *, int, int); // Griewank-Rosenbrock // void escaffer6_func (double *, double *, int , double *,double *, int, int); // Expanded Schaffer's F6 // void step_rastrigin_func (double *, double *, int , double *,double *, int, int); // Noncontinuous Rastrigin's // void happycat_func (double *, double *, int , double *,double *, int, int); // HappyCat // void hgbat_func (double *, double *, int , double *,double *, int, int); // HGBat // // // New functions Noor Changes // void sum_diff_pow_func(double *, double *, int , double *,double *, int, int); // Sum of different power // void zakharov_func(double *, double *, int , double *,double *, int, int); // ZAKHAROV // void levy_func(double *, double *, int , double *,double *, int, int); // Levy // void dixon_price_func(double *, double *, int , double *,double *, int, int); // Dixon and Price // BentCigar is the "Bent Cigar Function" of CEC2020. func BentCigar(x []float64) float64 { var sum float64 for i := 1; i < len(x); i++ { sum += math.Pow(x[i], 2) } return (1000000 * sum) + math.Pow(x[0], 2) } // Schwefel is the "Shifted and Rotated Schwefel's Function" of CEC2020. func Schwefel(x []float64) float64 { return 0 } // LunacekBiRastrigin is the "Shifted and Rotated Lunacek bi-Rastrigin Function" of CEC2020. func LunacekBiRastrigin(x []float64) float64 { return 0 } // RosenbrockGriewank is the "Expanded Rosenbrock's plus Griewank's Function" // of CEC2020. func RosenbrockGriewank(x []float64) float64 { var sum float64 nx := len(x) for i := range x { f := []float64{x[i], x[(i+1)%nx]} sum += Griewank([]float64{Rosenbrock(f)}) } return 0 } // Hybrid1 is the "Hybrid Function 1" of CEC2020. func Hybrid1(x []float64) float64 { return 0 } // Hybrid2 is the "Hybrid Function 2" of CEC2020. func Hybrid2(x []float64) float64 { return 0 } // Hybrid3 is the "Hybrid Function 3" of CEC2020. func Hybrid3(x []float64) float64 { return 0 } // Composition1 is the "Composition Function 1" of CEC2020. func Composition1(x []float64) float64 { return 0 } // Composition2 is the "Composition Function 2" of CEC2020. func Composition2(x []float64) float64 { return 0 } // Composition3 is the "Composition Function 3" of CEC2020. func Composition3(x []float64) float64 { return 0 }