列ベクトルと行ベクトルの積演算を関数として以下のように実装する。
/* 列ベクトルと行ベクトルの積 */ void WH_Matrix__whRv_mul_whCv_OUT_whM (int nRows_a, double whCv_a[], int nColumns_b, double whRv_b[], int nRows_C, int nColumns_C, void *OUT__whM_C) /* 入力引数: nRows_a は列ベクトル whCv_a の行数 whCv_a は列ベクトル nColumns_b は行ベクトル whRv_b の列数 whRv_b は行ベクトル nRows_C は行列 whM_C の行数 nColumns_C は行列 whM_C の列数 出力引数: OUT__whM_Cは行列で、whCv_a と whRv_b の積 */ { int i, j; assert(nRows_C == nRows_a); assert(nColumns_C == nColumns_b); for (i = 0; i < nRows_C; i++) { for (j = 0; j < nColumns_C; j++) { WH_MATRIX__AT(OUT__whM_C, nRows_C, nColumns_C, i, j) = whCv_a[i] * whRv_b[j]; } } }