Как извлечь верхнюю треугольную матрицу с диагональю или без нее в Chapel

Лучшие истории начинаются с моей матрицы A.

var A: [{1..4,1..4}] real = (
  (4, -30, 60, -35),
  (-30, 300, -675, 420),
  (60, -675, 1620, -1050),
  (-35, 420, -1050, 700)
  );

Я помню, где-то вы можете получить верхний треугольник, но я не могу найти его в Документы Chapel Можете ли вы включить/исключить диагональ?


person Brian Dolan    schedule 12.09.2017    source источник
comment
Вам нужен левый верхний треугольник или правый верхний треугольник?   -  person saruftw    schedule 12.09.2017
comment
По соглашению я обычно думаю о правом верхнем треугольнике. Я тоже думаю, что это может быть переключатель.   -  person Brian Dolan    schedule 12.09.2017


Ответы (1)


Использование библиотеки LinearAlgebra:

use LinearAlgebra;

var A: [{1..4,1..4}] real = (
  (4, -30, 60, -35),
  (-30, 300, -675, 420),
  (60, -675, 1620, -1050),
  (-35, 420, -1050, 700)
  );

var upperTriangle = triu(A);

// Confirm it worked
writeln(isTriu(upperTriangle)); 
person ben-albrecht    schedule 12.09.2017
comment
Это то, что мне было нужно, оказалось, это здесь но я не мог вспомнить название. - person Brian Dolan; 12.09.2017