Eu gostaria de poder determinar rapidamente se um determinado kernel 2D de coeficientes inteiros é separável em dois núcleos 1D com coeficientes inteiros. Por exemplo
2 3 2
4 6 4
2 3 2
é separável em
2 3 2
e
1
2
1
O teste real para separabilidade parece ser bastante simples usando aritmética inteira, mas a decomposição em filtros 1D com coeficientes inteiros está provando ser um problema mais difícil. A dificuldade parece estar no fato de que as proporções entre linhas ou colunas podem ser não inteiras (frações racionais); por exemplo, no exemplo acima, temos proporções de 2, 1/2, 3/2 e 2/3.
Eu realmente não quero usar uma abordagem pesada como SVD porque (a) é relativamente computacionalmente caro para minhas necessidades e (b) ainda não ajuda necessariamente a determinar coeficientes inteiros .
Alguma ideia ?
OUTRAS INFORMAÇÕES
Os coeficientes podem ser positivos, negativos ou zero, e pode haver casos patológicos em que a soma de um ou de ambos os vetores 1D é zero, por exemplo
-1 2 -1
0 0 0
1 -2 1
é separável em
1 -2 1
e
-1
0
1