Sie können es mit DGEMM tun, aber es wäre stilistisch korrekter, DGER zu verwenden, was eine dedizierte Implementierung im Außenprodukt ist. Als solches ist es etwas einfacher, richtig zu verwenden:
cblas_dger(CblasRowMajor, /* you’re using row-major storage */
dx1, /* the matrix X has dx1 rows ... */
dx2, /* ... and dx2 columns. */
1.0, /* scale factor to apply to x1x2' */
x1,
1, /* stride between elements of x1. */
x2,
1, /* stride between elements of x2. */
X,
dx2); /* leading dimension of matrix X. */
DGEMM tut Habe das schöne Feature, dass das Passieren \beta = 0
Initialisiert die Ergebnismatrix für Sie, die Sie vor dem Anruf vor dem Anruf explizit auf Null ausziehen muss. @Artem Shinkarovs Antwort enthält eine schöne Beschreibung, wie man DGEMM verwendet.