public static void Main(string[] args)
        {
            // optimizes test function using doubles and floats
            // test function is (0.5 sum(x_i^2 * var_i)) ^ PI
            // where var is a vector of random nonnegative numbers
            // dimensionality is variable.
            int    dim    = 500000;
            double maxVar = 5;

            double[] var  = new double[dim];
            double[] init = new double[dim];
            for (int i = 0; i < dim; i++)
            {
                init[i] = ((i + 1) / (double)dim - 0.5);
                //init[i] = (Math.random() - 0.5);
                var[i] = maxVar * (i + 1) / dim;
            }
            IDiffFunction f = new _IDiffFunction_193(dim, var);
            SMDMinimizer <IDiffFunction> min = new SMDMinimizer <IDiffFunction>();

            min.Minimize(f, 1.0E-4, init);
        }
 public SetLam(SMDMinimizer <T> _enclosing, SMDMinimizer <T> smd)
 {
     this._enclosing = _enclosing;
     // = null;
     this.parent = smd;
 }