バイナリ単精度実数対角行列型 ファイル仕様
(Definition of “Binary Float Diagonal matrix” format)
Last Update: 2021/6/28
拡張子(Extension)
bfm
拡張子の意味
(Meaning of the extension)
Binary Float 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 single precision
特徴(Features)
cdm型と同じ内容の出力をバイナリ形式で行う
(但し、タブや改行文字等は無し)。
バイナリを用いるためにファイルサイズが小さくなる。
bdm型と比較すると精度は悪くなるが、
それでも6桁の精度があるのでcdm型とは同程度である。
短所はデータを簡単に見れないことと、
ymaeda_opentoolsでのファイル入出力に時間がかかること
(ymaeda_opentoolsでは行列をdouble型で扱っており
入出力の際に型変換が必要になるため)。
この形式で出力すると対角成分以外は捨てられることになるので、
対角行列であることが予め分かっているものに適用すること。
The same record as in the cdm format
(but with no tab and linebreak),
written in a binary format.
The file size is small owing to the use of the binary format.
Although the values are less precise than
those in the bdm format,
they still have a precision of 6 digits
which is comparable to that of the cdm format.
Shortages are that the data is not easily visible,
and that the input/output of the file of this format
by ymaeda_opentools takes time
(because ymaeda_opentools uses double precision for matrices,
a cast is needed during the input/output).
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.
- それ以降の各4バイト:
行列の各対角成分を表すfloat型変数のバイナリ表現。
行番号(列番号でもある)について昇順。
Each 4 bytes after then:
The value of each diagonal component of the matrix,
given by the binary expression of a float-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-12 | float | 1.0 |
13-16 | float | 0.23 |
17-20 | float | 456.78 |