나는 맞춤형 행렬 라이브러리에 의존하는 코드를 최적화하고 있습니다. (이것은 어디에서나 존재하기 때문에 프로젝트에서 제외되지 않습니다.) 좋지는 않지만 사실입니다. ..) 많은 계산이 10 ~ 20 행과 열의 행렬로 완료, 많은 계산이 나는 종종 A가 드문 드문 것을 깨달았다 나는이 사실을 활용하고자하는희소 행렬로 이차 형태 행렬 곱셈을위한 알고리즘
C = A*B*A'
같은 차 형태를 포함한다. 그래서이 사건을 처리 할 알고리즘을 찾고 있습니다. 수치 안정성이 중요합니다. 내가 사용할 수 있는게있어? (우리 라이브러리를 작성하지 않았으므로 고려해야 할 함정이 있는지 모르겠습니다.)
"우리"의 단순 O (n^3) 곱셈 방법은 Eigen 3보다 빠르게 실행됩니다. 대상 플랫폼은 수치 안정성이 필요하고 행렬이 그리 크지 않기 때문에 Strassen의 알고리즘은 물론 Coppersmith-Winograd 알고리즘이 내가 원하는 알고리즘이 아닌 것 같습니다. 대신 A에서 0을 쉽게 확인할 수있는 방식으로 2 차 형식 곱하기입니다.
어떤 의견을 보내 주셔서 감사합니다!
"닫기"로 누가 투표했는지 궁금합니다. 이 문제는 완벽하게 유효하고 프로그래밍과 관련이 있습니다. – nacho4d
작은 행렬로 희소성을 악용하면 많은 이점을 얻게 될지 확신하지 못합니다. –