ベクトルの各種演算を関数として以下のように実装する。
/* ベクトルのベクトルへの代入 */
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;
}