Я хотів би мати можливість швидко визначити, чи є поділене ядро 2D цілочисельних коефіцієнтів на два 1D ядра з цілими коефіцієнтами. Напр
2 3 2
4 6 4
2 3 2
є роздільним на
2 3 2
і
1
2
1
Фактичний тест на відокремлюваність здається досить простим, використовуючи цілу арифметику, але розкладання на 1D-фільтри з цілими коефіцієнтами виявляється більш важкою проблемою. Складність, здається, полягає в тому, що співвідношення між рядками або стовпцями можуть бути не цілими (раціональні дроби), наприклад, у наведеному вище прикладі маємо відношення 2, 1/2, 3/2 та 2/3.
Я дуже не хочу використовувати такий важкий підхід, як SVD, оскільки (а) він порівняно обчислювально дорогий для моїх потреб і (б) він все ще не обов'язково допомагає визначити цілочисельні коефіцієнти.
Будь-які ідеї?
ДОПОМОГА ІНФОРМАЦІЯ
Коефіцієнти можуть бути позитивними, негативними або нульовими, і можуть бути патологічні випадки, коли сума одного або обох 1D векторів дорівнює нулю, наприклад
-1 2 -1
0 0 0
1 -2 1
є роздільним на
1 -2 1
і
-1
0
1