dan@0: % solve multiple 3rd degree linear systems at once - no pivoting! dan@0: function dg3 = lin_solve_dgr_3(A,b,R) dan@0: nrm = ... dan@0: + A(1,3,:) .* A(2,2,:) .* A(3,1,:) ... dan@0: - A(1,3,:) .* A(2,1,:) .* A(3,2,:) ... dan@0: + A(1,2,:) .* A(2,1,:) .* A(3,3,:) ... dan@0: - A(1,2,:) .* A(2,3,:) .* A(3,1,:) ... dan@0: + A(1,1,:) .* A(2,3,:) .* A(3,2,:) ... dan@0: - A(1,1,:) .* A(2,2,:) .* A(3,3,:); dan@0: dg3 = zeros(3,R); dan@0: dg3(1,:) = -(... dan@0: +b(3,1,:) .* ( A(1,2,:) .* A(2,3,:) - A(1,3,:) .* A(2,2,:) ) ... dan@0: -b(2,1,:) .* ( A(1,2,:) .* A(3,3,:) - A(1,3,:) .* A(3,2,:) ) ... dan@0: +b(1,1,:) .* ( A(2,2,:) .* A(3,3,:) - A(2,3,:) .* A(3,2,:) ) ... dan@0: ) ./ nrm; dan@0: dg3(2,:) = (... dan@0: +b(3,1,:) .* ( A(1,1,:) .* A(2,3,:) - A(1,3,:) .* A(2,1,:) ) ... dan@0: -b(2,1,:) .* ( A(1,1,:) .* A(3,3,:) - A(1,3,:) .* A(3,1,:) ) ... dan@0: +b(1,1,:) .* ( A(2,1,:) .* A(3,3,:) - A(2,3,:) .* A(3,1,:) ) ... dan@0: ) ./ nrm; dan@0: dg3(3,:) = -(... dan@0: +b(3,1,:) .* ( A(1,1,:) .* A(2,2,:) - A(1,2,:) .* A(2,1,:) ) ... dan@0: -b(2,1,:) .* ( A(1,1,:) .* A(3,2,:) - A(1,2,:) .* A(3,1,:) ) ... dan@0: +b(1,1,:) .* ( A(2,1,:) .* A(3,2,:) - A(2,2,:) .* A(3,1,:) ) ... dan@0: ) ./ nrm; dan@0: end