function envelope = envelope(A)
- ## Compute the envelope of the matrix ``A``. The envelope of a matrix
- ## is defined as the set of indices,
- ##
- ## E = { (i,j) : i < j, A(k,j) != 0 for some k <= i }
- ##
+ % Compute the envelope of the matrix ``A``. The envelope of a matrix
+ % is defined as the set of indices,
+ %
+ % E = { (i,j) : i < j, A(k,j) != 0 for some k <= i }
+ %
if (!issymmetric(A) && !is_upper_triangular(A))
- ## The envelope of a matrix is only defined for U-T or symmetric
- ## matrices.
+ % The envelope of a matrix is only defined for U-T or symmetric
+ % matrices.
envelope = {NA};
return;
end
- ## Start with an empty result, and append to it as we find
- ## satisfactory indices.
+ % Start with an empty result, and append to it as we find
+ % satisfactory indices.
envelope = {};
for j = [ 1 : columns(A) ]
- ## Everything below the first non-zero element in a column will be
- ## part of the envelope. Since we're moving from top to bottom, we
- ## can simply set a flag indicating that we've found the first
- ## non-zero element. Thereafter, everything we encounter should be
- ## added to the envelope.
+ % Everything below the first non-zero element in a column will be
+ % part of the envelope. Since we're moving from top to bottom, we
+ % can simply set a flag indicating that we've found the first
+ % non-zero element. Thereafter, everything we encounter should be
+ % added to the envelope.
found_nonzero = false;
for i = [ 1 : j-1 ]