//! compute vector of derivatives of the least square function public void gradient(ref Vector grad_f, Vector x) { // size of target and function to fit vectors Vector target = new Vector(lsp_.size()); Vector fct2fit = new Vector(lsp_.size()); // size of gradient matrix Matrix grad_fct2fit = new Matrix(lsp_.size(), x.size()); // compute its values lsp_.targetValueAndGradient(x, ref grad_fct2fit, ref target, ref fct2fit); // do the difference Vector diff = target - fct2fit; // compute derivative grad_f = -2.0 * (Matrix.transpose(grad_fct2fit) * diff); }