# FK/Matrix.h

Matrix.hのインクルード依存関係図
このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

## 構成
class | fk_OrthoMatrix
| 4元正方直交行列を管理するクラス [詳細]
class | fk_Matrix
| 一般4元正方行列を管理するクラス [詳細]
## 関数
fk_HVector | operator* (const fk_OrthoMatrix &, const fk_HVector &)
| ベクトル変換二項演算子
fk_OrthoMatrix | operator* (const fk_OrthoMatrix &, const fk_OrthoMatrix &)
| 行列積二項演算子1
fk_Matrix | operator* (const fk_Matrix &, const fk_OrthoMatrix &)
| 行列積二項演算子2
fk_Matrix | operator* (const fk_OrthoMatrix &, const fk_Matrix &)
| 行列積二項演算子3
fk_Matrix | operator+ (const fk_Matrix &, const fk_OrthoMatrix &)
| 行列和二項演算子1
fk_Matrix | operator+ (const fk_OrthoMatrix &, const fk_Matrix &)
| 行列和二項演算子2
fk_Matrix | operator- (const fk_Matrix &, const fk_OrthoMatrix &)
| 行列差二項演算子1
fk_Matrix | operator- (const fk_OrthoMatrix &, const fk_Matrix &)
| 行列差二項演算子2
fk_HVector | operator* (const fk_Matrix &, const fk_HVector &)
| ベクトル変換二項演算子
fk_Matrix | operator* (const fk_Matrix &, const fk_Matrix &)
| 行列積二項演算子
fk_Matrix | operator+ (const fk_Matrix &, const fk_Matrix &)
| 行列和二項演算子
fk_Matrix | operator- (const fk_Matrix &, const fk_Matrix &)
| 行列差二項演算子
## 変数
const double | FK_MATRIX_EPS = 1.0e-12
| 行列演算用誤差1
const double | FK_MATRIX_EPS2 = 1.0e-16
| 行列演算用誤差2

## 関数

fk_HVector operator* | ( | const fk_OrthoMatrix & | ,
|  | const fk_HVector & |  |
| ) |  |  |

ベクトル変換二項演算子

4次元ベクトル V1 の、直交行列 M による変換ベクトル V2 を求めるには、 以下のように記述します。 V1, V2 は共に fk_HVector 型の変数で、M は fk_OrthoMatrix 型の変数です。

        V2 = M * V1;

FK では行列体系として MV 系を採用しており、 行列のベクトル変換の際には行列が左側、ベクトルが右側である必要があります。

fk_OrthoMatrix operator* | ( | const fk_OrthoMatrix & | ,
|  | const fk_OrthoMatrix & |  |
| ) |  |  |

行列積二項演算子1

直交行列 M1, M2 の行列積 M3 を求めるには、 以下のように記述します。 M1, M2, M3 はいずれも fk_OrthoMatrix 型の変数です。

        M3 = M1 * M2;

覚え書き:
  行列積は交換法則が成り立たないため、 と は一般的に結果が異なります。

fk_Matrix operator* | ( | const fk_Matrix & | ,
|  | const fk_OrthoMatrix & |  |
| ) |  |  |

行列積二項演算子2

一般行列 M_ord と直交行列 M_ortho の行列積 M を求めるには、 以下のように記述します。 M_ord, M は fk_Matrix 型、M_ortho は fk_OrthoMatrix 型の変数です。

        M = M_ord * M_ortho;

覚え書き:
  行列積は交換法則が成り立たないため、 と は一般的に結果が異なります。

fk_Matrix operator* | ( | const fk_OrthoMatrix & | ,
|  | const fk_Matrix & |  |
| ) |  |  |

行列積二項演算子3

直交行列 M_ortho と一般行列 M_ord の行列積 M を求めるには、 以下のように記述します。 M_ord, M は fk_Matrix 型、M_ortho は fk_OrthoMatrix 型の変数です。

        M = M_ortho * M_ord;

覚え書き:
  行列積は交換法則が成り立たないため、 と は一般的に結果が異なります。

fk_Matrix operator+ | ( | const fk_Matrix & | ,
|  | const fk_OrthoMatrix & |  |
| ) |  |  |

行列和二項演算子1

一般行列 M_ord と直交行列 M_ortho の行列和 M を求めるには、 以下のように記述します。 M_ord, M は fk_Matrix 型、M_ortho は fk_OrthoMatrix 型の変数です。

        M = M_ord + M_ortho;

覚え書き:
  行列和は交換法則が成り立ちます。

fk_Matrix operator+ | ( | const fk_OrthoMatrix & | ,
|  | const fk_Matrix & |  |
| ) |  |  |

行列和二項演算子2

直交行列 M_ortho と一般行列 M_ord の行列和 M を求めるには、 以下のように記述します。 M_ord, M は fk_Matrix 型、M_ortho は fk_OrthoMatrix 型の変数です。

        M = M_ortho + M_ord;

覚え書き:
  行列和は交換法則が成り立ちます。

fk_Matrix operator- | ( | const fk_Matrix & | ,
|  | const fk_OrthoMatrix & |  |
| ) |  |  |

行列差二項演算子1

一般行列 M_ord と直交行列 M_ortho の行列差 M を求めるには、 以下のように記述します。 M_ord, M は fk_Matrix 型、M_ortho は fk_OrthoMatrix 型の変数です。

        M = M_ord - M_ortho;

覚え書き:
  行列差は交換法則が成り立ちません。

fk_Matrix operator- | ( | const fk_OrthoMatrix & | ,
|  | const fk_Matrix & |  |
| ) |  |  |

行列差二項演算子2

直交行列 M_ortho と一般行列 M_ord の行列差 M を求めるには、 以下のように記述します。 M_ord, M は fk_Matrix 型、M_ortho は fk_OrthoMatrix 型の変数です。

        M = M_ortho - M_ord;

覚え書き:
  行列差は交換法則が成り立ちません。

fk_HVector operator* | ( | const fk_Matrix & | ,
|  | const fk_HVector & |  |
| ) |  |  |

ベクトル変換二項演算子

4次元ベクトル V1 の、行列 M による変換ベクトル V2 を求めるには、 以下のように記述します。 V1, V2 は共に fk_HVector 型の変数で、M は fk_Matrix 型の変数です。

        V2 = M * V1;

FK では行列体系として MV 系を採用しており、 行列のベクトル変換の際には行列が左側、ベクトルが右側である必要があります。

fk_Matrix operator* | ( | const fk_Matrix & | ,
|  | const fk_Matrix & |  |
| ) |  |  |

行列積二項演算子

行列 M1, M2 の行列積 M3 を求めるには、 以下のように記述します。 M1, M2, M3 はいずれも fk_Matrix 型の変数です。

        M3 = M1 * M2;

覚え書き:
  行列積は交換法則が成り立たないため、 と は一般的に結果が異なります。

fk_Matrix operator+ | ( | const fk_Matrix & | ,
|  | const fk_Matrix & |  |
| ) |  |  |

行列和二項演算子

行列 M1, M2 の行列和 M3 を求めるには、 以下のように記述します。 M1, M2, M3 はいずれも fk_Matrix 型です。

        M3 = M1 + M2;

覚え書き:
  行列和は交換法則が成り立ちます。

fk_Matrix operator- | ( | const fk_Matrix & | ,
|  | const fk_Matrix & |  |
| ) |  |  |

行列差二項演算子

行列 M1, M2 の行列差 M3 を求めるには、 以下のように記述します。 M1, M2, M3 はいずれも fk_Matrix 型です。

        M3 = M1 - M2;

覚え書き:
  行列差は交換法則が成り立ちません。

## 変数

const double FK_MATRIX_EPS = 1.0e-12

行列演算用誤差1

const double FK_MATRIX_EPS2 = 1.0e-16

行列演算用誤差2