A = {{a,,0,,, a,,1,,}, {a,,1,,, a,,2,,}}, b = {b,,0,,, b,,1,,}, x,,0,, = {0, 0} Step 1: r,,0,, = b - Ax,,0,,; p,,0,, = r,,0,, ('''No expansion''') r[0] = b,,0,, r[1] = b,,1,, Step 2: alpha,,0,, = / ('''No expansion''') = b,,0,,(a,,0,,b,,0,, + a,,1,,b,,1,,) + b,,1,,(a,,1,,b,,0,, + a,,2,,b,,1,,) alpha,,0,, = (b,,0,,^2^+b,,1,,^2^) / (b,,0,,(a,,0,,b,,0,, + a,,1,,b,,1,,) + b,,1,,(a,,1,,b,,0,, + a,,2,,b,,1,,)) Step 3: r,,1,, = r,,0,, - alpha,,0,,*Ap,,0,, ('''No expansion''') r[0] = (b,,0,,(b,,0,,(a,,0,,b,,0,, + a,,1,,b,,1,,) + b,,1,,(a,,1,,b,,0,, + a,,2,,b,,1,,)) - (b,,0,,^2^+b,,1,,^2^)(a,,0,,b,,0,,+a,,1,,b,,1,,)) / (b,,0,,(a,,0,,b,,0,, + a,,1,,b,,1,,) + b,,1,,(a,,1,,b,,0,, + a,,2,,b,,1,,)) r[1] = (b,,1,,(b,,0,,(a,,0,,b,,0,, + a,,1,,b,,1,,) + b,,1,,(a,,1,,b,,0,, + a,,2,,b,,1,,)) - (b,,0,,^2^+b,,1,,^2^)(a,,1,,b,,0,,+a,,2,,b,,1,,)) / (b,,0,,(a,,0,,b,,0,, + a,,1,,b,,1,,) + b,,1,,(a,,1,,b,,0,, + a,,2,,b,,1,,)) Step 4: x,,1,, = x,,0,, + alpha,,0,,*p,,0,, ('''No expansion''') x[0] = (b,,0,,(b,,0,,^2^ + b,,1,,^2^)) / (b,,0,,(a,,0,,b,,0,, + a,,1,,b,,1,,) + b,,1,,(a,,1,,b,,0,, + a,,2,,b,,1,,)) x[1] = (b,,1,,(b,,0,,^2^ + b,,1,,^2^)) / (b,,0,,(a,,0,,b,,0,, + a,,1,,b,,1,,) + b,,1,,(a,,1,,b,,0,, + a,,2,,b,,1,,)) Step 5: beta = rsnew / rsold = / ('''No expansion''') rsnew = ((b,,0,,(b,,0,,(a,,0,,b,,0,, + a,,1,,b,,1,,) + b,,1,,(a,,1,,b,,0,, + a,,2,,b,,1,,)) - (b,,0,,^2^+b,,1,,^2^)(a,,0,,b,,0,,+a,,1,,b,,1,,))^2^ + (b,,1,,(b,,0,,(a,,0,,b,,0,, + a,,1,,b,,1,,) + b,,1,,(a,,1,,b,,0,, + a,,2,,b,,1,,)) - (b,,0,,^2^+b,,1,,^2^)(a,,1,,b,,0,,+a,,2,,b,,1,,))^2^) / (b,,0,,(a,,0,,b,,0,, + a,,1,,b,,1,,) + b,,1,,(a,,1,,b,,0,, + a,,2,,b,,1,,))^2^ beta = ((b,,0,,(b,,0,,(a,,0,,b,,0,, + a,,1,,b,,1,,) + b,,1,,(a,,1,,b,,0,, + a,,2,,b,,1,,)) - (b,,0,,^2^+b,,1,,^2^)(a,,0,,b,,0,,+a,,1,,b,,1,,))^2^ + (b,,1,,(b,,0,,(a,,0,,b,,0,, + a,,1,,b,,1,,) + b,,1,,(a,,1,,b,,0,, + a,,2,,b,,1,,)) - (b,,0,,^2^+b,,1,,^2^)(a,,1,,b,,0,,+a,,2,,b,,1,,))^2^) / (b,,0,,^2^+b,,1,,^2^)(b,,0,,(a,,0,,b,,0,, + a,,1,,b,,1,,) + b,,1,,(a,,1,,b,,0,, + a,,2,,b,,1,,))^2^ Step 6: p,,1,, = r,,1,, +beta*p,,0,, ('''No expansion''') p[0] = ((b,,0,,^2^+b,,1,,^2^)(b,,0,,(a,,0,,b,,0,, + a,,1,,b,,1,,) + b,,1,,(a,,1,,b,,0,, + a,,2,,b,,1,,))(b,,0,,(b,,0,,(a,,0,,b,,0,, + a,,1,,b,,1,,) + b,,1,,(a,,1,,b,,0,, + a,,2,,b,,1,,)) - (b,,0,,^2^+b,,1,,^2^)(a,,0,,b,,0,,+a,,1,,b,,1,,)) + b,,0,,((b,,0,,(b,,0,,(a,,0,,b,,0,, + a,,1,,b,,1,,) + b,,1,,(a,,1,,b,,0,, + a,,2,,b,,1,,)) - (b,,0,,^2^+b,,1,,^2^)(a,,0,,b,,0,,+a,,1,,b,,1,,))^2^ + (b,,1,,(b,,0,,(a,,0,,b,,0,, + a,,1,,b,,1,,) + b,,1,,(a,,1,,b,,0,, + a,,2,,b,,1,,) - (b,,0,,^2^+b,,1,,^2^)(a,,1,,b,,0,,+a,,2,,b,,1,,))^2^)) / (b,,0,,^2^+b,,1,,^2^)(b,,0,,(a,,0,,b,,0,, + a,,1,,b,,1,,) + b,,1,,(a,,1,,b,,0,, + a,,2,,b,,1,,))^2^ p[1] = ((b,,0,,^2^+b,,1,,^2^)(b,,0,,(a,,0,,b,,0,, + a,,1,,b,,1,,) + b,,1,,(a,,1,,b,,0,, + a,,2,,b,,1,,))(b,,1,,(b,,0,,(a,,0,,b,,0,, + a,,1,,b,,1,,) + b,,1,,(a,,1,,b,,0,, + a,,2,,b,,1,,)) - (b,,0,,^2^+b,,1,,^2^)(a,,1,,b,,0,,+a,,2,,b,,1,,)) + b,,1,,((b,,0,,(b,,0,,(a,,0,,b,,0,, + a,,1,,b,,1,,) + b,,1,,(a,,1,,b,,0,, + a,,2,,b,,1,,)) - (b,,0,,^2^+b,,1,,^2^)(a,,0,,b,,0,,+a,,1,,b,,1,,))^2^ + (b,,1,,(b,,0,,(a,,0,,b,,0,, + a,,1,,b,,1,,) + b,,1,,(a,,1,,b,,0,, + a,,2,,b,,1,,) - (b,,0,,^2^+b,,1,,^2^)(a,,1,,b,,0,,+a,,2,,b,,1,,))^2^)) / (b,,0,,^2^+b,,1,,^2^)(b,,0,,(a,,0,,b,,0,, + a,,1,,b,,1,,) + b,,1,,(a,,1,,b,,0,, + a,,2,,b,,1,,))^2^ Step 7: alpha,,1,, = / ('''No expansion''') = p[0](a,,0,,p[0]+a,,1,,p[1]) + p[1](a,,1,,p[0]+a,,2,,p[1]) alpha,,1,, = ((b,,0,,(b,,0,,(a,,0,,b,,0,, + a,,1,,b,,1,,) + b,,1,,(a,,1,,b,,0,, + a,,2,,b,,1,,)) - (b,,0,,^2^+b,,1,,^2^)(a,,0,,b,,0,,+a,,1,,b,,1,,))^2^ + (b,,1,,(b,,0,,(a,,0,,b,,0,, + a,,1,,b,,1,,) + b,,1,,(a,,1,,b,,0,, + a,,2,,b,,1,,)) - (b,,0,,^2^+b,,1,,^2^)(a,,1,,b,,0,,+a,,2,,b,,1,,))^2^) / (p[0](a,,0,,p[0]+a,,1,,p[1]) + p[1](a,,1,,p[0]+a,,2,,p[1]))(b,,0,,(a,,0,,b,,0,, + a,,1,,b,,1,,) + b,,1,,(a,,1,,b,,0,, + a,,2,,b,,1,,))^2^ Step 8: r,,2,, = r,,1,, - alpha,,1,,*Ap,,1,, r[0] = 0 r[1] = 0 Step 9: x,,2,, = x,,1,, + alpha,,1,,*p,,1,, x[0] = (a,,2,,b,,0,, - a,,1,,b,,1,,) / (a,,0,,a,,2,, - a,,1,,^2^) x[1] = (-a,,1,,b,,0,, + a,,0,,b,,1,,) / (a,,0,,a,,2,, - a,,1,,^2^) assertion: bncg[0] = A[0][0]*x[0] + A[0][1]*x[1] = a,,0,,(a,,2,,b,,0,, - a,,1,,b,,1,,) / (a,,0,,a,,2,, - a,,1,,^2^) + a,,1,,(-a,,1,,b,,0,, + a,,0,,b,,1,,) / (a,,0,,a,,2,, - a,,1,,^2^) = b,,0,,(a,,0,,a,,2,, - a,,1,,^2^) / (a,,0,,a,,2,, - a,,1,,^2^) = b,,0,, bncg[1] = A[1][0]*x[0] + A[1][1]*x[1] = a,,1,,(a,,2,,b,,0,, - a,,1,,b,,1,,) / (a,,0,,a,,2,, - a,,1,,^2^) + a,,2,,(-a,,1,,b,,0,, + a,,0,,b,,1,,) / (a,,0,,a,,2,, - a,,1,,^2^) = b,,1,,(a,,0,,a,,2,, - a,,1,,^2^) / (a,,0,,a,,2,, - a,,1,,^2^) = b,,1,, b[0] = b,,0,, b[1] = b,,1,, assert(bncg[i] == b[i]) END