Function to undertake steps 2 to 9 of the GGMR algorithm (Clause 10)

function [tt, dt, f, J, ft, Jt, g, H, M, q] = ...
  algm_ggmr_cholesky_steps_2_to_9(x, y, U, tt, dt, f, J, ft, Jt, g, H, M, q, ind)

Step 2.

m = length(x);
f{ind} = [x - tt{ind}(1:m);
          y - (tt{ind}(m+1) + tt{ind}(m+2)*tt{ind}(1:m))];
J{ind} = [-eye(m), zeros(m, 2);
          -tt{ind}(m+2)*eye(m), -ones(m, 1), -tt{ind}(1:m)];

Step 3.

L = chol(U, 'lower');

Step 4.

ft{ind} = L\f{ind};
Jt{ind} = L\J{ind};

Step 5.

g{ind} = Jt{ind}'*ft{ind};
H{ind} = Jt{ind}'*Jt{ind};

Step 6.

M{ind} = chol(H{ind}, 'lower');

Step 7.

q{ind} = -M{ind}\g{ind};

Step 8.

dt{ind} = M{ind}'\q{ind};

Step 9.

tt{ind+1} = tt{ind} + dt{ind};

End of algm_ggmr_cholesky_steps_2_to_9.m