バイナリ倍精度実数行列型 ファイル仕様
(Definition of “Binary Double Matrix” format)
Last Update: 2021/6/28
拡張子(Extension)
bdm
拡張子の意味
(Meaning of the extension)
Binary Double Matrix
対象とする構造体の種類
(Supported structures)
- struct matrix型
/
struct matrix-type
- struct diagonal_matrix型
/
struct diagonal_matrix-type
- struct rowvector型
/
struct rowvector-type
- struct columnvector型
/
struct columnvector-type
データの保存形式
(Format of each data)
倍精度浮動小数点数(バイナリ形式)
Floating-point numbers in the binary format of double precision
特徴(Features)
cm型と同じ内容の出力をバイナリ形式で行う
(但し、タブや改行文字等は無し)。
実数値の出力に倍精度浮動小数点数のバイナリ表現を用いるので
15桁の精度を確保でき、cm型と比較して格段に精度が良い。
しかも、バイナリを用いるためにファイルサイズも小さくなる。
短所はデータを簡単に見れないこと。
The same record as in the cm format
(but with no tab and linebreak),
written in a binary format.
As the double precision binary expression has
a precision of 15 digits,
it is more accurate than the cm format.
Also the file size is small owing to the use of the binary format.
A shortage is that the data is not easily visible.
仕様詳細(Detail)
- 最初の4バイト: 行列の行数を表すint型変数のバイナリ表現。
The first 4 bytes:
The number of rows,
given by the binary expression of an int-type variable.
- 次の4バイト: 行列の列数を表すint型変数のバイナリ表現。
The next 4 bytes:
The number of columns,
given by the binary expression of an int-type variable.
- それ以降の各8バイト:
行列の各成分を表すdouble型変数のバイナリ表現。
行・列ともに昇順で、列についてのループが内側となる。
Each 8 bytes after then:
The value of each component of the matrix,
given by the binary expression of a double-type variable.
The data is in an ascending order of rows and columns,
with the loop for columns is inner.
例(Example)
以下の2×3行列を考える。
Let us consider the 2×3 matrix given below:
\[\begin{pmatrix}
1 & 0.12 & 0.0345 \\
6.7 & 8901 & 23.4
\end{pmatrix}\]
この行列を表現するためのファイルの中身は以下のようになる。
The file to represent this matrix is as below.
バイト
Bytes
|
型
Type
|
値
Value
|
1-4 | int | 2 |
5-8 | int | 3 |
9-16 | double | 1.0 |
17-24 | double | 0.12 |
25-32 | double | 0.0345 |
33-40 | double | 6.7 |
41-48 | double | 8901.0 |
49-56 | double | 23.4 |