Next: メモリ管理
Up: データフォーマット
Previous: MATデータフォーマット
MXデータフォーマット
データファイルは,1個以上の変数を含み,
変数は,連続的に保存されている。
それぞれの変数は,変数の属性を記述した情報を含む20バイトの
ヘッダーから始まる。
20バイトのヘッダーは,5個の4バイト長の整数から構成されている。
- 1.
- 変数のタイプを表す整数。この整数を,[M|O|P|C]
と表すと,
Mは,ファイルを書いたマシーンを表す。
マシーン |
M |
Sun |
0x10 |
Appolo |
0x10 |
Macintosh |
0x10 |
PC |
0x20 |
Other Intel |
0x30 |
VAX D-float |
0x40 |
VAX G-float |
0x50 |
Oは,行列データの保存される順序を表す。
Oが0なら,列毎にデータが保存され
Oが1なら,行毎にデータが保存される。
Pは,データ精度を表す。
データ精度 |
P |
倍精度(64ビット)浮動小数点 |
0 |
単精度(32ビット)浮動小数点 |
1 |
32ビット符合付き整数 |
2 |
16ビット符合付き整数 |
3 |
16ビット符合なし整数 |
4 |
8ビット符合なし整数 |
5 |
Cは,データの型を表す。
データ型 |
C |
Matrix |
0 |
Integer |
1 |
Real Number |
2 |
Complex Number |
3 |
String |
4 |
Polynomial |
5 |
Rational |
6 |
List |
7 |
Array |
8 |
Index |
9 |
- 2.
- 2番目の整数は,データの型によって表すものが異なる。
データ型 |
名前 |
内容 |
Matrix |
rows |
行列の行の数 |
Integer |
dummy |
|
Real Number |
dummy |
|
Complex Number |
dummy |
|
String |
stringlen |
文字列長 |
Polynomial |
degree |
次数 |
Rational |
ndegree |
分子の次数 |
List |
length |
成分の数 |
Array |
rows |
配列の行の数 |
Index |
rows |
1 |
- 3.
- 3番目の整数は,データの型によって表すものが異なる。
データ型 |
名前 |
内容 |
Matrix |
cols |
行列の列の数 |
Integer |
dummy |
|
Real Number |
dummy |
|
Complex Number |
dummy |
|
String |
dummy |
|
Polynomial |
dummy |
|
Rational |
ddegree |
分母の次数 |
List |
dummy |
|
Array |
cols |
配列の列の数 |
Index |
cols |
指数の数 |
- 4.
- 4番目の整数は,データの型によって表すものが異なる。
データ型 |
名前 |
内容 |
Matrix |
class |
0(実行列) |
または |
class |
1(複素行列) |
Array |
class |
2(実多項式行列) |
または |
class |
3(複素多項式行列) |
Index |
class |
4(実有理多項式行列) |
|
class |
5(複素有理多項式行列) |
Integer |
dummy |
|
Real Number |
dummy |
|
Complex Number |
dummy |
|
String |
dummy |
|
Polynomial |
imagf |
0(実多項式) |
|
imagf |
1(複素多項式) |
Rational |
imagf |
0(実有理多項式) |
|
imagf |
1(複素有理多項式) |
List |
dummy |
|
- 5.
- 5番目の整数は,データの名前の長さを表す。
データ型 |
名前 |
内容 |
Matrix |
namelen |
名前の長さ |
Integer |
namelen |
名前の長さ |
Real Number |
namelen |
名前の長さ |
Complex Number |
namelen |
名前の長さ |
String |
namelen |
名前の長さ |
Polynomial |
namelen |
名前の長さ |
Rational |
namelen |
名前の長さ |
List |
namelen |
名前の長さ |
Array |
namelen |
名前の長さ |
Index |
namelen |
名前の長さ |
20バイトのヘッダーの次に,namelen長の変数の名前が続く。
最後の文字は,(0でコード化される)NUL文字である。
この後のデータは,データ型によってことなる。
- [有理多項式]
- 整数
- データの精度に応じた整数(2バイトまたは,4バイト)。
- 実数
- データの精度に応じた実数(4バイトまたは,8バイト)。
- 複素数
- 2個のデータの精度に応じた実数(4バイトまたは,8バイト)。
- 文字列
- stringlen長の文字列。最後の文字は,NUL文字である。
- 多項式
- [複素多項式]
- 実多項式
- degree + 1個の
精度に応じた実数(4バイトまたは,8バイト)。
- 複素多項式
- 2
(degree + 1)個の
精度に応じた実数(4バイトまたは,8バイト)。
- 有理多項式
- [複素有理多項式]
- 実有理多項式
- ndegree + 1個の
精度に応じた実数(4バイトまたは,8バイト),ddegree + 1
個の精度に応じた実数(4バイトまたは,8バイト)。
- 複素有理多項式
- 2
(ndegree + 1)個の
精度に応じた実数(4バイトまたは,8バイト),
2
(ddegree + 1)個の
精度に応じた実数(4バイトまたは,8バイト)。
- 行列
- [複素有理多項式行列]
- 実行列
- rows
cols個の
精度に応じた実数(4バイトまたは,8バイト)。
- 複素行列
- 2
(rows
cols)個の
精度に応じた実数(4バイトまたは,8バイト)。
- 実多項式行列
- rows
cols個の実多項式。
(degree + 1個の
精度に応じた実数(4バイトまたは,8バイト))。
- 複素多項式行列
- rows
cols個の複素多項式。
(degree + 1個の
精度に応じた実数(4バイトまたは,8バイト))。
- 実有理多項式行列
- rows
cols個の実有理多項式。
(ndegree + 1個の
精度に応じた実数(4バイトまたは,8バイト),
ddegree + 1
個の精度に応じた実数(4バイトまたは,8バイト))。
- 複素有理多項式行列
- rows
cols個の複素有理多項式。
(2
(ndegree + 1)個の
精度に応じた実数(4バイトまたは,8バイト),
2
(ddegree + 1)
個の精度に応じた実数(4バイトまたは,8バイト))。
- リスト
- length個の
成分のクラスを表す4バイト長整数とデータの結合。
- 配列
- [複素有理多項式配列]
- 実配列
- rows
cols個の
精度に応じた実数(4バイトまたは,8バイト)。
- 複素配列
- 2
(rows
cols)個の
精度に応じた実数(4バイトまたは,8バイト)。
- 実多項式配列
- rows
cols個の実多項式。
(degree + 1個の
精度に応じた実数(4バイトまたは,8バイト))。
- 複素多項式配列
- rows
cols個の複素多項式。
(degree + 1個の
精度に応じた実数(4バイトまたは,8バイト))。
- 実有理多項式配列
- rows
cols個の実有理多項式。
(ndegree + 1個の
精度に応じた実数(4バイトまたは,8バイト),
ddegree + 1
個の精度に応じた実数(4バイトまたは,8バイト))。
- 複素有理多項式配列
- rows
cols個の複素有理多項式。
(2
(ndegree + 1)個の
精度に応じた実数(4バイトまたは,8バイト),
2
(ddegree + 1)
個の精度に応じた実数(4バイトまたは,8バイト))。
- 指数
- cols個の
精度に応じた実数(4バイトまたは,8バイト)。
Next: メモリ管理
Up: データフォーマット
Previous: MATデータフォーマット
Masanobu KOGA
平成10年8月19日