public static ContinuousSolution operator -(ContinuousSolution a, ContinuousSolution b)
        {
            int length = a.Length;

            if (length == 0)
            {
                throw new IndexOutOfRangeException();
            }
            if (b.Length != length)
            {
                throw new IndexOutOfRangeException();
            }

            double[] x = new double[length];
            for (int i = 0; i < length; ++i)
            {
                x[i] = a[i] - b[i];
            }
            ContinuousSolution result = new ContinuousSolution(x, double.MaxValue);

            return(result);
        }
        public override BaseSolution <double> Clone()
        {
            ContinuousSolution clone = new ContinuousSolution(mValues, mCost);

            return(clone);
        }