getDiag method

List<double> getDiag (List<List<double>> matr)

Returns the diagonal of a matrix matr Its length is the minimum of the row or column size of matr.

Implementation

List<double> getDiag(List<List<double>> matr) {
  int n = math.min(matr.length, matr[0].length), i;
  List<double> ret = List(n);
  for (i = n - 1; i >= 1; --i) {
    ret[i] = matr[i][i];
    --i;
    ret[i] = matr[i][i];
  }
  if (i == 0) {
    ret[0] = matr[0][0];
  }
  return ret;
}