バイナリ倍精度実数対角行列型 ファイル仕様
(Definition of “Binary Double Diagonal matrix” format)
Last Update: 2021/6/28
拡張子(Extension)
bdm
拡張子の意味
(Meaning of the extension)
Binary Double Diagonal matrix
対象とする構造体の種類
(Supported structures)
- struct matrix型
/
struct matrix-type
- struct diagonal_matrix型
/
struct diagonal_matrix-type
データの保存形式
(Format of each data)
倍精度浮動小数点数(バイナリ形式)
Floating-point numbers in the binary format of double precision
特徴(Features)
cdm型と同じ内容の出力をバイナリ形式で行う
(但し、タブや改行文字等は無し)。
実数値の出力に倍精度浮動小数点数のバイナリ表現を用いるので
15桁の精度を確保でき、cdm型と比較して格段に精度が良い。
しかも、バイナリを用いるためにファイルサイズも小さくなる。
短所はデータを簡単に見れないこと。
この形式で出力すると対角成分以外は捨てられることになるので、
対角行列であることが予め分かっているものに適用すること。
The same record as in the cdm 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 cdm 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.
Note that outputting the data in this format will result in
loosing the off-diagonal components of the matrix;
thus make sure to use this format only for
those known as diagonal matrices.
仕様詳細(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.
- 第1行 : 行列の行数。
Line 1 : The number of rows.
- 第2行 : 行列の列数。
Line 2 : The number of columns.
- それ以降の各8バイト:
行列の各対角成分を表すdouble型変数のバイナリ表現。
行番号(列番号でもある)について昇順。
Each 8 bytes after then:
The value of each diagonal component of the matrix,
given by the binary expression of a double-type variable.
The data is in an ascending order of rows (also columns).
例(Example)
以下の4×3行列を考える。
Let us consider the 2×3 matrix given below:
\[\begin{pmatrix}
1 & 0 & 0 \\
0 & 0.23 & 0 \\
0 & 0 & 456.78 \\
0 & 0 & 0
\end{pmatrix}\]
この行列を表現するためのファイルの中身は以下のようになる。
The file to represent this matrix is as below.
バイト
Bytes
|
型
Type
|
値
Value
|
1-4 | int | 4 |
5-8 | int | 3 |
9-16 | double | 1.0 |
17-24 | double | 0.23 |
25-32 | double | 456.78 |