/// <summary>
        ///
        /// </summary>
        /// <param name="problem"></param>
        /// <returns></returns>
        public static SVMProblem RemoveDuplicates(SVMProblem problem)
        {
            SVMProblem temp = new SVMProblem();

            for (int i = 0; i < problem.Length; i++)
            {
                bool same = false;
                for (int j = i + 1; j < problem.Length; j++)
                {
                    same |= SVMProblemHelper.IsEqual(problem.X[i], problem.Y[i], problem.X[j], problem.Y[j]);

                    if (same)
                    {
                        break;
                    }
                }

                if (!same)
                {
                    temp.Add(problem.X[i], problem.Y[i]);
                }
            }

            return(temp);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="problem"></param>
        /// <param name="type"></param>
        /// <returns></returns>
        public static SVMProblem Normalize(SVMProblem problem, SVMNormType type)
        {
            SVMProblem temp = new SVMProblem();

            for (int i = 0; i < problem.Length; i++)
            {
                SVMNode[] x = SVMProblemHelper.Normalize(problem.X[i], type);
                temp.Add(x, problem.Y[i]);
            }
            return(temp);
        }