Mercurial > hg > ddm
diff lin_solve_dgr_3.m @ 0:a4a7e3405062
Import DDM code by Sašo Muševič
author | Dan Stowell <dan.stowell@elec.qmul.ac.uk> |
---|---|
date | Thu, 09 May 2013 20:04:15 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lin_solve_dgr_3.m Thu May 09 20:04:15 2013 +0100 @@ -0,0 +1,26 @@ +% solve multiple 3rd degree linear systems at once - no pivoting! +function dg3 = lin_solve_dgr_3(A,b,R) + nrm = ... + + A(1,3,:) .* A(2,2,:) .* A(3,1,:) ... + - A(1,3,:) .* A(2,1,:) .* A(3,2,:) ... + + A(1,2,:) .* A(2,1,:) .* A(3,3,:) ... + - A(1,2,:) .* A(2,3,:) .* A(3,1,:) ... + + A(1,1,:) .* A(2,3,:) .* A(3,2,:) ... + - A(1,1,:) .* A(2,2,:) .* A(3,3,:); + dg3 = zeros(3,R); + dg3(1,:) = -(... + +b(3,1,:) .* ( A(1,2,:) .* A(2,3,:) - A(1,3,:) .* A(2,2,:) ) ... + -b(2,1,:) .* ( A(1,2,:) .* A(3,3,:) - A(1,3,:) .* A(3,2,:) ) ... + +b(1,1,:) .* ( A(2,2,:) .* A(3,3,:) - A(2,3,:) .* A(3,2,:) ) ... + ) ./ nrm; + dg3(2,:) = (... + +b(3,1,:) .* ( A(1,1,:) .* A(2,3,:) - A(1,3,:) .* A(2,1,:) ) ... + -b(2,1,:) .* ( A(1,1,:) .* A(3,3,:) - A(1,3,:) .* A(3,1,:) ) ... + +b(1,1,:) .* ( A(2,1,:) .* A(3,3,:) - A(2,3,:) .* A(3,1,:) ) ... + ) ./ nrm; + dg3(3,:) = -(... + +b(3,1,:) .* ( A(1,1,:) .* A(2,2,:) - A(1,2,:) .* A(2,1,:) ) ... + -b(2,1,:) .* ( A(1,1,:) .* A(3,2,:) - A(1,2,:) .* A(3,1,:) ) ... + +b(1,1,:) .* ( A(2,1,:) .* A(3,2,:) - A(2,2,:) .* A(3,1,:) ) ... + ) ./ nrm; +end \ No newline at end of file