public SparseFunction(Function innerFunction, SparseFunctionGradient gradient, SparseFunctionHessian hessian)
 {
     this.innerFunction = innerFunction;
     if (gradient != null)
     {
         this.gradient = gradient.Clone();
     }
     if (hessian != null)
     {
         this.hessian = hessian.Clone();
     }
 }
 public SparseFunctionDerivative(Function innerFunction, Variable firstVariable, SparseFunctionGradient gradient, SparseFunctionHessian hessian)
 {
     this.innerFunction = innerFunction;
     this.firstVariable = firstVariable;
     this.gradient = gradient;
     this.hessian = hessian;
 }