Accord.Math.Optimization.AugmentedLagrangian.objectiveFunction C# (CSharp) Method

objectiveFunction() private method

private objectiveFunction ( double x ) : double
x double
return double
        double objectiveFunction(double[] x)
        {
            // Compute
            //
            //   Phi(x) = f(x) + rho/2 sum(c_i(x)²) - sum(lambda_i * c_i(x))
            //

            double sumOfSquares = 0;
            double weightedSum = 0;
            double rho2 = rho / 2;

            // For each equality constraint
            for (int i = 0; i < equalityConstraints.Length; i++)
            {
                double c = equalityConstraints[i].Function(x) - equalityConstraints[i].Value;

                sumOfSquares += rho2 * c * c;
                weightedSum += lambda[i] * c;
            }

            // For each "lesser than" inequality constraint
            for (int i = 0; i < lesserThanConstraints.Length; i++)
            {
                double c = lesserThanConstraints[i].Function(x) - lesserThanConstraints[i].Value;

                if (c > 0)
                {
                    sumOfSquares += rho2 * c * c;
                    weightedSum += mu[i] * c;
                }
            }

            // For each "greater than" inequality constraint
            for (int i = 0; i < greaterThanConstraints.Length; i++)
            {
                double c = -greaterThanConstraints[i].Function(x) + greaterThanConstraints[i].Value;

                if (c > 0)
                {
                    sumOfSquares += rho2 * c * c;
                    weightedSum += nu[i] * c;
                }
            }


            double phi = Function(x);

            return phi + sumOfSquares - weightedSum;
        }