next up previous contents
: ベクトルの内積 : ベクトルの基本演算 : ベクトルの基本演算   目次

実装

ベクトルの各種演算を関数として以下のように実装する。

/* ベクトルのベクトルへの代入 */
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;
}



Hiroshi KAWAI 平成15年4月19日