ベクトルの各種演算を関数として以下のように実装する。
/* ベクトルのベクトルへの代入 */ void WH_Tensor3D__assign_whV_OUT_whV (double whV_a[3], double OUT__whV_b[3]) /* 入力引数: whV_a はベクトル 出力引数: OUT__whV_b はベクトルで、whV_a と同じもの */ { OUT__whV_b[0] = whV_a[0]; OUT__whV_b[1] = whV_a[1]; OUT__whV_b[2] = whV_a[2]; } /* ベクトルとベクトルとの和 */ void WH_Tensor3D__whV_add_whV_OUT_whV (double whV_a[3], double whV_b[3], double OUT__whV_c[3]) /* 入力引数: whV_a,whV_b はベクトル 出力引数: OUT__whV_c はベクトルで、whV_a + whV_b */ { OUT__whV_c[0] = whV_a[0] + whV_b[0]; OUT__whV_c[1] = whV_a[1] + whV_b[1]; OUT__whV_c[2] = whV_a[2] + whV_b[2]; } /* ベクトルとベクトルとの差 */ void WH_Tensor3D__whV_sub_whV_OUT_whV (double whV_a[3], double whV_b[3], double OUT__whV_c[3]) /* 入力引数: whV_a,whV_b はベクトル 出力引数: OUT__whV_c はベクトルで、whV_a - whV_b */ { OUT__whV_c[0] = whV_a[0] - whV_b[0]; OUT__whV_c[1] = whV_a[1] - whV_b[1]; OUT__whV_c[2] = whV_a[2] - whV_b[2]; } /* ベクトルとスカラーとの積 */ void WH_Tensor3D__whV_mul_s_OUT_whV (double whV_a[3], double b, double OUT__whV_c[3]) /* 入力引数: whV_a はベクトル b はスカラー 出力引数: OUT__whV_c はベクトルで、whV_a * b */ { OUT__whV_c[0] = whV_a[0] * b; OUT__whV_c[1] = whV_a[1] * b; OUT__whV_c[2] = whV_a[2] * b; } /* スカラーとベクトルとの積 */ void WH_Tensor3D__s_mul_whV_OUT_whV (double a, double whV_b[3], double OUT__whV_c[3]) /* 入力引数: a はスカラー whV_b はベクトル 出力引数: OUT__whV_c はベクトルで、a * whV_b */ { OUT__whV_c[0] = a * whV_b[0]; OUT__whV_c[1] = a * whV_b[1]; OUT__whV_c[2] = a * whV_b[2]; } /* ベクトルをスカラーで割る */ void WH_Tensor3D__whV_div_s_OUT_whV (double whV_a[3], double b, double OUT__whV_c[3]) /* 入力引数: whV_a はベクトル b はスカラーで、0であってはならない 出力引数: OUT__whV_c はベクトルで、whV_a / b */ { OUT__whV_c[0] = whV_a[0] / b; OUT__whV_c[1] = whV_a[1] / b; OUT__whV_c[2] = whV_a[2] / b; }