Switch to side-by-side view

--- a
+++ b/combinedDeepLearningActiveContour/minFunc/mchol.m
@@ -0,0 +1,60 @@
+function [l,d,perm] = mchol(A,mu)
+% Compute a modified LDL factorization of A
+% (MEX ME!)
+
+if nargin < 2
+    mu = 1e-12;
+end
+
+n = size(A,1);
+l = eye(n);
+d = zeros(n,1);
+perm = 1:n;
+
+for i = 1:n
+    c(i,i) = A(i,i);
+end
+
+% Compute modification parameters
+gamma = max(abs(diag(A)));
+xi = max(max(abs(setdiag(A,0))));
+delta = mu*max(gamma+xi,1);
+if n > 1
+    beta = sqrt(max([gamma xi/sqrt(n^2-1) mu]));
+else
+    beta = sqrt(max([gamma mu]));
+end
+
+for j = 1:n
+    
+    % Find q that results in Best Permutation with j
+    [maxVal maxPos] = max(abs(diag(c(j:end,j:end))));
+    q = maxPos+j-1;
+    
+    % Permute d,c,l,a
+    d([j q]) = d([q j]);
+    perm([j q]) = perm([q j]);
+    c([j q],:) = c([q j],:);
+    c(:,[j q]) = c(:,[q j]);
+    l([j q],:) = l([q j],:);
+    l(:,[j q]) = l(:,[q j]);
+    A([j q],:) = A([q j],:);
+    A(:,[j q]) = A(:,[q j]);
+    
+    for s = 1:j-1
+        l(j,s) = c(j,s)/d(s);
+    end
+    for i = j+1:n
+        c(i,j) = A(i,j) - sum(l(j,1:j-1).*c(i,1:j-1));
+    end
+    theta = 0;
+    if j < n && j > 1
+        theta = max(abs(c(j+1:n,j)));
+    end
+    d(j) = max([abs(c(j,j)) (theta/beta)^2 delta]);
+    if j < n
+        for i = j+1:n
+            c(i,i) = c(i,i) - (c(i,j)^2)/d(j);
+        end
+    end
+end
\ No newline at end of file