next up previous contents index
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$\times$(degree + 1)個の 精度に応じた実数(4バイトまたは,8バイト)。

有理多項式

[複素有理多項式]
実有理多項式
ndegree + 1個の 精度に応じた実数(4バイトまたは,8バイト),ddegree + 1 個の精度に応じた実数(4バイトまたは,8バイト)。
複素有理多項式
2$\times$(ndegree + 1)個の 精度に応じた実数(4バイトまたは,8バイト), 2$\times$(ddegree + 1)個の 精度に応じた実数(4バイトまたは,8バイト)。

行列

[複素有理多項式行列]
実行列
rows$\times$cols個の 精度に応じた実数(4バイトまたは,8バイト)。
複素行列
2$\times$(rows$\times$cols)個の 精度に応じた実数(4バイトまたは,8バイト)。
実多項式行列
rows$\times$cols個の実多項式。 (degree + 1個の 精度に応じた実数(4バイトまたは,8バイト))。
複素多項式行列
rows$\times$cols個の複素多項式。 (degree + 1個の 精度に応じた実数(4バイトまたは,8バイト))。
実有理多項式行列
rows$\times$cols個の実有理多項式。 (ndegree + 1個の 精度に応じた実数(4バイトまたは,8バイト), ddegree + 1 個の精度に応じた実数(4バイトまたは,8バイト))。
複素有理多項式行列
rows$\times$cols個の複素有理多項式。
(2$\times$(ndegree + 1)個の 精度に応じた実数(4バイトまたは,8バイト),
2$\times$(ddegree + 1) 個の精度に応じた実数(4バイトまたは,8バイト))。

リスト
length個の 成分のクラスを表す4バイト長整数とデータの結合。

配列

[複素有理多項式配列]
実配列
rows$\times$cols個の 精度に応じた実数(4バイトまたは,8バイト)。
複素配列
2$\times$(rows$\times$cols)個の 精度に応じた実数(4バイトまたは,8バイト)。
実多項式配列
rows$\times$cols個の実多項式。 (degree + 1個の 精度に応じた実数(4バイトまたは,8バイト))。
複素多項式配列
rows$\times$cols個の複素多項式。 (degree + 1個の 精度に応じた実数(4バイトまたは,8バイト))。
実有理多項式配列
rows$\times$cols個の実有理多項式。 (ndegree + 1個の 精度に応じた実数(4バイトまたは,8バイト), ddegree + 1 個の精度に応じた実数(4バイトまたは,8バイト))。
複素有理多項式配列
rows$\times$cols個の複素有理多項式。
(2$\times$(ndegree + 1)個の 精度に応じた実数(4バイトまたは,8バイト),
2$\times$(ddegree + 1) 個の精度に応じた実数(4バイトまたは,8バイト))。

指数
cols個の 精度に応じた実数(4バイトまたは,8バイト)。

next up previous contents index
Next: メモリ管理 Up: データフォーマット Previous: MATデータフォーマット
Masanobu KOGA 平成10年8月19日