SLLIB + SFITSIO ダイジェスト版 HTML マニュアル

使用頻度の高い API について,主要な内容を記述した, ビギナー向けのリファレンスマニュアルです.

SLLIB クラス: ストリーム / 文字列 / 文字列配列 / 文字列連想配列 / 多次元配列
SLLIB クラス用関数: 多次元配列用の統計用関数 / 多次元配列用の数学関数 / 多次元配列用の複素関数
SLLIB クラス以外: 定数・型の定義 / C99互換の複素数・複素関数
SFITSIO クラス: fitscc / fits_hdu / fits_image / fits_table / fits_table_col / fits_header / fits_header_record
SFITSIO クラス以外: 関数 / 定数・型の定義 / FITSファイルの部分読み出し機能 / FITSテンプレート / 規約外FITS拡張

SFITSIO: fits_table_colクラス

fits_table_colクラスは,ASCII Table HDU または Binary Table HDU の1つの カラムを表現します. オブジェクト内で mdarrayクラス のオブジェクトを管理します.

クラスヘッダファイルコードnamespace
fits_table_col #include <sli/fits_table_col.h> cc sli

メンバ関数一覧

全般的な操作に関するメンバ関数:

メンバ関数機能
init() オブジェクトの初期化・コピー
swap() 2つのオブジェクト間での内容のスワップ

カラムのプロパティに関するメンバ関数:

メンバ関数機能
name(), assign_name() カラム名の設定
type() カラムデータの型種別(FITS::SHORT_T,FITS::FLOAT_T 等)を取得
bytes() カラムの型のバイト数を取得
elem_length() カラムの1行あたりの要素の個数を取得
elem_byte_length() カラムの1行あたりのバイト数を取得
dcol_length() TDIMn 指定における 1次元目の要素数(横方向の長さ)を取得
drow_length() TDIMn 指定における,2次元目以降の要素数(縦方向の長さ)を取得
tzero(), tzero_is_set(), assign_tzero() TZEROn 値に関する操作
tscal(), tscal_is_set(), assign_tscal() TSCALn 値に関する操作
tnull(), tnull_is_set(), assign_tnull() TNULLn 値に関する操作
definition() カラムの定義を fits::table_def 構造体で取得
define() カラム定義の設定 (fits::table_def 構造体を指定)

カラムデータの操作に関するメンバ関数:

メンバ関数機能
convert_type() データ型の変換・変更
null_svalue(), assign_null_svalue() svalue()assign(double,...) で使用するNULL文字列の設定
assign_default() セルのデフォルト値に関する設定
byte_t_ptr(), short_t_ptr() 等 カラムデータ配列のバッファアドレスを取得
dvalue() double 型に変換された カラムデータ配列の1要素の値を取得
lvalue(), llvalue() 整数型(long or long long)に変換された カラムデータ配列の1要素の値を取得
bvalue() 真理値型(bool)に変換された カラムデータ配列の1要素の値を取得
svalue() 文字列型に変換された カラムデータ配列の1要素の値を取得
get_svalue() 文字列型に変換された カラムデータ配列の1要素の値を取得
assign() double型, long型などで指定された値を カラムデータ配列の1要素へ代入
short_value() セルの生の値を整数値(short型)で取得 (低レベル)
long_value() セルの生の値を整数値(long型)で取得 (低レベル)
longlong_value() セルの生の値を整数値(long long型)で取得 (低レベル)
byte_value() セルの生の値を整数値(unsigned char型)で取得 (低レベル)
float_value() セルの生の値を実数値(float型)で取得 (低レベル)
double_value() セルの生の値を実数値(double型)で取得 (低レベル)
logical_value() セルの生の値を論理値で取得 (低レベル)
bit_value() セルの生の値を整数値(bit型)で取得 (低レベル)
string_value() セルの生の値を文字列値で取得 (低レベル)
get_string_value() セルの生の値を文字列値で取得 (低レベル)
assign_short() 整数値(short型)でセルに値をそのまま代入 (低レベル)
assign_long() 整数値(long型)でセルに値をそのまま代入 (低レベル)
assign_longlong() 整数値(long long型)でセルに値をそのまま代入 (低レベル)
assign_byte() 整数値(unsigned char型)でセルに値をそのまま代入 (低レベル)
assign_float() 実数値(float型)でセルに値をそのまま代入 (低レベル)
assign_double() 実数値(double型)でセルに値をそのまま代入 (低レベル)
assign_logical() 論理値でセルに値をそのまま代入 (低レベル)
assign_bit() 整数値(bit型)でセルに値をそのまま代入 (低レベル)
assign_string() 文字列値でセルに値をそのまま代入 (低レベル)

ロウ(行)の操作に関するメンバ関数:

メンバ関数機能
length() テーブルの行数を取得
resize() 行数の変更
insert() 新しい行の挿入
erase() 行の消去
clean() 一部または全ての行のセルの値を初期化(デフォルト値をセット)
move() 行から行へのコピー
swap() 2つのオブジェクト間での内容のスワップ
flip() 行の順序の反転
import() 外部カラムオブジェクトからのインポート

ヒープ領域の操作に関するメンバ関数(低レベル):

メンバ関数機能
heap_is_used() 可変長配列かどうかを判定
heap_type() カラムのヒープ(可変長配列)のデータ型を取得
heap_bytes() ヒープ(可変長配列)の型のバイト数を取得
max_array_length() 可変長配列の最大の長さを取得
array_length() 固定長配列または可変長配列の要素数を取得
array_heap_offset() 可変長配列のヒープオフセットを取得
assign_arrdesc() 可変長配列の配列記述子をセット (低レベル)

全般的な操作に関するメンバ関数

init()

fits_table_col &init();
fits_table_col &init( const fits_table_col &src );

カラムの内容をすべて消去し,初期化します.

src が指定された場合には,src の内容をコピーしたカラムで上書きします. src の行数に関係なく,テーブルの行数はメンバ関数呼び出し前と変わりません (srcの行数が自身のテーブルの行数に比べて長い場合,後部のセルの内容はコピーされません).

返り値
自身の参照

swap()

fits_table_col &swap( fits_table_col &obj );

指定されたオブジェクト obj の内容と自身の内容とを入れ替えます. データ配列・ヘッダの内容,属性等すべての状態が入れ替わります.

返り値
自身の参照

カラムのプロパティに関するメンバ関数

name(), assign_name()

const char *name() const;                             ... 1
fits_table_col &assign_name( const char *new_name );  ... 2

メンバ関数1は,カラム名を返します.

メンバ関数2は,new_name で指定された文字列を,カラム名として設定します (返り値は自身の参照です).


type()

int type() const;

カラムのデータ型を返します.

返される値は,次のいずれかです:
FITS::DOUBLE_TFITS::FLOAT_TFITS::LONGLONG_TFITS::LONG_TFITS::SHORT_TFITS::BYTE_TFITS::BIT_TFITS::LOGICAL_TFITS::COMPLEX_TFITS::DOUBLECOMPLEX_TFITS::ASCII_TFITS::LONGARRDESC_TFITS::LLONGARRDESC_T


bytes()

long bytes() const;

カラムのデータ型FITS::ASCII_T 以外の場合,カラムのデータ型のバイト数を返します. 例えば,カラムのデータ型が FITS::DOUBLE_T の場合,sizeof(fits::double_t) が返ります. カラムのデータ型が FITS::BIT_Tの場合は,1 が返ります.

カラムのデータ型FITS::ASCII_T の場合は,TFORMnTDIMn 指定によるカラム中の最小要素の文字列長を返します. 具体的には次の表のようになります.

TFORMnTDIMnの指定 bytes() dcol_length()
(1次元目の個数)
drow_length()
(2次元目の個数)
elem_length()
TFORMn = '120A' 1201111
TFORMn = '120A10' 1012112
TFORMn = '120A10'
TDIMn = '(6,2)'
106212
TFORMn = '120A'
TDIMn = '(10,6,2)'
106212


elem_length()

long elem_length() const;

カラムの1行の要素の個数を返します.

カラムのデータ型FITS::ASCII_T以外の場合, 例えば TTYPEn16D の場合,16 が返ります(TDIMnとは無関係).

カラムのデータ型FITS::ASCII_T の場合は, bytes()メンバ関数 の項目にある表を参照してください.


elem_byte_length()

long elem_byte_length() const;

カラムの1行あたりのバイト数を返します. 例えば,TTYPEn16D の場合, sizeof(fits::double_t)*16 が返ります.


dcol_length()

long dcol_length() const;

カラムの TDIMn 指定における,多次元配列の1行あたりの要素数(1次元目の個数)を返します.

カラムのデータ型FITS::ASCII_T以外の場合, 例えば TDIMn(8x2)の場合,8が返ります.

カラムのデータ型FITS::ASCII_Tの場合は, bytes()メンバ関数 の項目にある表を参照してください.


drow_length()

long drow_length() const;

カラムの TDIMn 指定における,多次元配列の行数(2次元目以降の個数)を返します.

カラムのデータ型FITS::ASCII_T以外の場合, 例えばTDIMn(8x2)の場合,2が返ります.

カラムのデータ型FITS::ASCII_Tの場合は, bytes()メンバ関数 の項目にある表を参照してください.


tzero(), tzero_is_set(), assign_tzero()

double tzero() const;                                        ... 1
bool tzero_is_set() const;                                   ... 2
fits_table_col &assign_tzero( double zero, int prec = 15 );  ... 3
fits_table_col &erase_tzero();                               ... 4

メンバ関数1は TZEROn の値を返します.

メンバ関数2は TZEROn の定義の有無を返します.

メンバ関数3は TZEROn の値を設定します(返り値は自身の参照です). prec には桁数を指定できます. 省略した場合,15桁の精度でヘッダレコードに書き込みます.

メンバ関数4は TZEROn の設定を消去します(返り値は自身の参照です).


tscal(), tscal_is_set(), assign_tscal()

double tscal() const;                                        ... 1
bool tscal_is_set() const;                                   ... 2
fits_table_col &assign_tscal( double scal, int prec = 15 );  ... 3
fits_table_col &erase_tscal();                               ... 4

メンバ関数1は, TSCALn の値を返します.

メンバ関数2は, TSCALn の定義の有無を返します.

メンバ関数3は, TSCALn の値を設定します(返り値は自身の参照です). prec には桁数を指定できます. 省略した場合,15桁の精度でヘッダレコードに書き込みます.

メンバ関数4は, TSCALn の設定を消去します(返り値は自身の参照です).


tnull(), tnull_is_set(), assign_tnull()

long long tnull( const char **tnull_ptr = NULL ) const;  ... 1
bool tnull_is_set() const;                               ... 2
fits_table_col &assign_tnull( long long null );          ... 3
fits_table_col &assign_tnull( const char *null );        ... 4
fits_table_col &erase_tnull();                           ... 5

メンバ関数1は, TNULLn の値を返します. カラムのデータ型が 文字列の場合に,TNULL値が必要な場合は, tnull_ptr で内部バッファのTNULL文字列のアドレスを取得する事ができます.

メンバ関数2は, TNULLn の定義の有無を返します.

メンバ関数3は, TNULLn の値を整数で設定します(返り値は自身の参照です).

メンバ関数4は, TNULLn の値を文字列で設定します(返り値は自身の参照です).

メンバ関数5は, TNULLn の設定を消去します(返り値は自身の参照です).


definition()

const fits::table_def &definition() const;

カラム定義の構造体オブジェクトへの参照を返します(改変不可). カラムの定義を別のカラムにコピーする等の場合に利用します.

fits::table_defの定義については, バイナリテーブル・ASCIIテーブルを定義するための型(構造体) または fits.h をご覧ください.


define()

fits_table_col &define( const fits::table_def &def );

カラム定義の設定・変更を行ないます.

このメンバ関数は,新規カラムの定義の設定と,カラム定義の変更を兼ねています. def.xxx == NULL の場合は,その項目は変更しません.

fits::table_defの定義については, バイナリテーブル・ASCIIテーブルを定義するための型(構造体) または fits.h をご覧ください.

返り値
自身の参照

カラムデータの操作に関するメンバ関数

convert_type()

fits_table_col &convert_type( int new_type );
fits_table_col &convert_type( int new_type, double new_zero );
fits_table_col &convert_type( int new_type, double new_zero, double new_scale );
fits_table_col &convert_type( int new_type, double new_zero, double new_scale,
                              long long new_null );

整数型あるいは実数型のカラム(TFORMn の指定が 'B''I''J''K''E''D' を含む場合)のデータ型new_type に変更します. 必要に応じて,内部バッファのバイトサイズも変更します. new_type に指定できる値(データ型)は, FITS::DOUBLE_TFITS::FLOAT_TFITS::LONGLONG_TFITS::LONG_TFITS::SHORT_TFITS::BYTE_T のいずれかです. 引数 new_zeronew_scalenew_null が指定された場合は,ヘッダの TZEROnTSCALnTNULLn も変更し,それらの値を反映したデータに変換します. 引数 new_null が有効なのは, new_type が示すデータ型が整数型の場合のみです.

文字列型や論理型のカラムはこのメンバ関数では変換できません.

返り値
自身の参照

null_svalue(), assign_null_svalue()

const char *null_svalue() const;                         ... 1
fits_table_col &assign_null_svalue( const char *snull ); ... 2

メンバ関数1は, svalue()assign( const char *, ... ) で使用する NULL文字列値を返します.

メンバ関数2は, svalue()assign( const char *, ... ) で使用する NULL文字列値を設定します(自身の参照を返します).

デフォルトでは, "NULL" が高レベルAPI用のヌル文字列として設定されています.


assign_default()

fits_table_col &assign_default( double value );
fits_table_col &assign_default( float value );
fits_table_col &assign_default( long long value );
fits_table_col &assign_default( long value );
fits_table_col &assign_default( int value );
fits_table_col &assign_default( const char *value );

resize_rows() 等でテーブルの行の長さを大きくした場合の 新規セルの値を設定します.

assign_default() は高レベルなメンバ関数で, ヘッダの TZEROnTSCALEnTNULLn の値が反映されます. NULL値をセットしたい場合は NAN をセットします.

返り値
自身の参照

byte_t_ptr(), short_t_ptr() 等

/* BIT_T */
fits::bit_t *bit_t_ptr();
const fits::bit_t *bit_t_ptr() const;
const fits::bit_t *bit_t_ptr_cs() const;
/* */
fits::bit_t *bit_t_ptr( long row_idx );
const fits::bit_t *bit_t_ptr( long row_idx ) const;
const fits::bit_t *bit_t_ptr_cs( long row_idx ) const;
/* BYTE_T */
fits::byte_t *byte_t_ptr();
const fits::byte_t *byte_t_ptr() const;
const fits::byte_t *byte_t_ptr_cs() const;
/* */
fits::byte_t *byte_t_ptr( long row_idx );
const fits::byte_t *byte_t_ptr( long row_idx ) const;
const fits::byte_t *byte_t_ptr_cs( long row_idx ) const;
/* LOGICAL_T */
fits::logical_t *logical_t_ptr();
const fits::logical_t *logical_t_ptr() const;
const fits::logical_t *logical_t_ptr_cs() const;
/* */
fits::logical_t *logical_t_ptr( long row_idx );
const fits::logical_t *logical_t_ptr( long row_idx ) const;
const fits::logical_t *logical_t_ptr_cs( long row_idx ) const;
/* ASCII_T */
fits::ascii_t *ascii_t_ptr();
const fits::ascii_t *ascii_t_ptr() const;
const fits::ascii_t *ascii_t_ptr_cs() const;
/* */
fits::ascii_t *ascii_t_ptr( long row_idx );
const fits::ascii_t *ascii_t_ptr( long row_idx ) const;
const fits::ascii_t *ascii_t_ptr_cs( long row_idx ) const;
/* SHORT_T */
fits::short_t *short_t_ptr();
const fits::short_t *short_t_ptr() const;
const fits::short_t *short_t_ptr_cs() const;
/* */
fits::short_t *short_t_ptr( long row_idx );
const fits::short_t *short_t_ptr( long row_idx ) const;
const fits::short_t *short_t_ptr_cs( long row_idx ) const;
/* LONG_T */
fits::long_t *long_t_ptr();
const fits::long_t *long_t_ptr() const;
const fits::long_t *long_t_ptr_cs() const;
/* */
fits::long_t *long_t_ptr( long row_idx );
const fits::long_t *long_t_ptr( long row_idx ) const;
const fits::long_t *long_t_ptr_cs( long row_idx ) const;
/* LONGLONG_T */
fits::longlong_t *longlong_t_ptr();
const fits::longlong_t *longlong_t_ptr() const;
const fits::longlong_t *longlong_t_ptr_cs() const;
/* */
fits::longlong_t *longlong_t_ptr( long row_idx );
const fits::longlong_t *longlong_t_ptr( long row_idx ) const;
const fits::longlong_t *longlong_t_ptr_cs( long row_idx ) const;
/* FLOAT_T */
fits::float_t *float_t_ptr();
const fits::float_t *float_t_ptr() const;
const fits::float_t *float_t_ptr_cs() const;
/* */
fits::float_t *float_t_ptr( long row_idx );
const fits::float_t *float_t_ptr( long row_idx ) const;
const fits::float_t *float_t_ptr_cs( long row_idx ) const;
/* DOUBLE_T */
fits::double_t *double_t_ptr();
const fits::double_t *double_t_ptr() const;
const fits::double_t *double_t_ptr_cs() const;
/* */
fits::double_t *double_t_ptr( long row_idx );
const fits::double_t *double_t_ptr( long row_idx ) const;
const fits::double_t *double_t_ptr_cs( long row_idx ) const;
/* COMPLEX_T */
fits::complex_t *complex_t_ptr();
const fits::complex_t *complex_t_ptr() const;
const fits::complex_t *complex_t_ptr_cs() const;
/* */
fits::complex_t *complex_t_ptr( long row_idx );
const fits::complex_t *complex_t_ptr( long row_idx ) const;
const fits::complex_t *complex_t_ptr_cs( long row_idx ) const;
/* DOUBLECOMPLEX_T */
fits::doublecomplex_t *doublecomplex_t_ptr();
const fits::doublecomplex_t *doublecomplex_t_ptr() const;
const fits::doublecomplex_t *doublecomplex_t_ptr_cs() const;
/* */
fits::doublecomplex_t *doublecomplex_t_ptr( long row_idx );
const fits::doublecomplex_t *doublecomplex_t_ptr( long row_idx ) const;
const fits::doublecomplex_t *doublecomplex_t_ptr_cs( long row_idx ) const;
/* LONGARRDESC_T */
fits::longarrdesc_t *longarrdesc_t_ptr();
const fits::longarrdesc_t *longarrdesc_t_ptr() const;
const fits::longarrdesc_t *longarrdesc_t_ptr_cs() const;
/* */
fits::longarrdesc_t *longarrdesc_t_ptr( long row_idx );
const fits::longarrdesc_t *longarrdesc_t_ptr( long row_idx ) const;
const fits::longarrdesc_t *longarrdesc_t_ptr_cs( long row_idx ) const;
/* LLONGARRDESC_T */
fits::llongarrdesc_t *llongarrdesc_t_ptr();
const fits::llongarrdesc_t *llongarrdesc_t_ptr() const;
const fits::llongarrdesc_t *llongarrdesc_t_ptr_cs() const;
/* */
fits::llongarrdesc_t *llongarrdesc_t_ptr( long row_idx );
const fits::llongarrdesc_t *llongarrdesc_t_ptr( long row_idx ) const;
const fits::llongarrdesc_t *llongarrdesc_t_ptr_cs( long row_idx ) const;

row_idxで指定された行の セルデータの内部バッファアドレスを返します. 自身のデータ型に応じて,適切なものを使用します.

返される値はオブジェクト内部バッファのアドレスですから, オブジェクトが破棄されたり, 型やサイズが変更された場合は無効になります.

呼び出されたメンバ関数が,自身のデータ型に不適切な場合は, 例外が発生します.


dvalue()

double dvalue( long row_index ) const;
double dvalue( long row_index,
               const char *elem_nm, long repetiti_idx = 0 ) const;
double dvalue( long row_index,
               long elem_index, long repetition_idx = 0 ) const;

バイナリテーブル・アスキーテーブル共通:

セルの値を必要に応じて変換し,実数値で返します. TZEROnTSCALn による変換に加え,NULL値に関する処理も行なう高レベルなメンバ関数です.

セルがNULL値を示す場合や引数が不正な場合は, NAN を返します. バイナリテーブルの整数型カラムの場合や, 文字列型カラムにおいてTNULLnの値に セルの値が一致した場合も,NULL値とします.

row_indexで行を指定します. 引数のインデックスは,0から始まる数字です.

バイナリテーブルの場合:

elem_name(名前)または elem_index(インデックス)で要素を指定できます. elem_nameには,TELEMn に存在する名前を指定できます.

TDIMn が指定されている場合, 1次元目のインデックスをelem_indexで, 2次元目のインデックスをrepetition_idxで指定できます.

ヘッダの TZEROnTSCALn の値による変換が有効なのは, TFORMn の指定に 'B''I''J''K''E''D' を含む場合です.

論理型のカラムの場合は, 値が 'T' なら 1 を,値が 'F' なら 0 を,それ以外の場合は NAN を返します.

文字列型のカラムの場合,セルの文字列を実数値に変換した値をそのまま返します.

セルの文字列は,空白文字を除去してからlibcのatof()関数で変換 するので,変換できる文字列は10進数または16進数の整数表現と 実数表現です.

アスキーテーブルの場合:

ヘッダの TZEROnTSCALn の値による変換が有効なのは, TFORMnの指定が 数値表現である事を示す('I''L''F''E''G''D'を含む)場合です.

TFORMn が数値表現を示さない場合には,セルの文字列を実数値に変換した値をそのまま返します.

セルの文字列は,空白文字を除去してからlibcのatof()関数で変換 するので,変換できる文字列は10進数または16進数の整数表現と 実数表現です.


lvalue()

long lvalue( long row_index ) const;
long lvalue( long row_index,
             const char *elem_nm, long repetiti_idx = 0 ) const;
long lvalue( long row_index,
             long elem_index, long repetition_idx = 0 ) const;
long long llvalue( long row_index ) const;
long long llvalue( long row_index,
                   const char *elem_nm, long repetiti_idx = 0 ) const;
long long llvalue( long row_index,
                   long elem_index, long repetition_idx = 0 ) const;

バイナリテーブル・アスキーテーブル共通:

セルの値を必要に応じて実数に変換し,その実数値に最も近い整数値を返します. 変換の必要が無ければ,整数値をそのまま返します. TZEROnTSCALn による変換に加え,NULL値に関する処理も行なう高レベルなメンバ関数です.

セルがNULL値を示す場合や引数が不正な場合は, INDEF_LONGまたはINDEF_LLONG を返します. バイナリテーブルの整数型カラムの場合や, 文字列型カラムにおいてTNULLnの値に セルの値が一致した場合も,NULL値とします.

row_indexで行を指定します. 引数のインデックスは,0から始まる数字です.

バイナリテーブルの場合:

elem_name(名前)または elem_index(インデックス)で要素を指定できます. elem_nameには,TELEMn に存在する名前を指定できます.

TDIMn が指定されている場合, 1次元目のインデックスをelem_indexで, 2次元目のインデックスをrepetition_idxで指定できます.

ヘッダの TZEROnTSCALn の値による変換が有効なのは, TFORMn の指定に 'B''I''J''K''E''D' を含む場合です.

論理型のカラムの場合は, 値が 'T' なら 1 を,値が 'F' なら 0 を,それ以外の場合は INDEF_LONGまたはINDEF_LLONG を返します.

文字列型のカラムの場合,セルの文字列を実数値に変換し,その値に最も近い整数値を返します.

セルの文字列は,空白文字を除去してからlibcのatof()関数で変換 するので,変換できる文字列は10進数または16進数の整数表現と 実数表現です.

アスキーテーブルの場合:

ヘッダの TZEROnTSCALn の値による変換が有効なのは, TFORMnの指定が 数値表現である事を示す('I''L''F''E''G''D'を含む)場合です.

TFORMn が数値表現を示さない場合には,セルの文字列を実数値に変換し,その値に最も近い整数値を返します.

セルの文字列は,空白文字を除去してからlibcのatof()関数で変換 するので,変換できる文字列は10進数または16進数の整数表現と 実数表現です.


bvalue()

bool bvalue( long row_index ) const;
bool bvalue( long row_index,
             const char *elem_nm, long repetiti_idx = 0 ) const;
bool bvalue( long row_index,
             long elem_index, long repetition_idx = 0 ) const;

バイナリテーブル・アスキーテーブル共通:

セルの値を必要に応じて変換し,論理値 (truefalse)で返します. TZEROnTSCALn による変換に加え,NULL値に関する処理も行なう高レベルなメンバ関数です.

NULL値の場合や,引数が不正な場合は,falseを返します. バイナリテーブルの整数型カラムの場合や, 文字列型カラムにおいてTNULLnの値に セルの値が一致した場合も,NULL値とします.

返り値からNULL値かどうかの判断はできません. NULL値の検出が必要な場合は, dvalue()メンバ関数などを使ってください.

row_indexで行を指定します. 引数のインデックスは,0から始まる数字です.

バイナリテーブルの場合:

elem_name(名前)または elem_index(インデックス)で要素を指定できます. elem_nameには,TELEMn に存在する名前を指定できます.

TDIMn が指定されている場合, 1次元目のインデックスをelem_indexで, 2次元目のインデックスをrepetition_idxで指定できます.

論理型のカラムの場合,値が'T'ならtrueを, そうでないならfalseを返します.

文字列型のカラムの場合, セルの文字列を実数値に変換し,その値に最も近い整数値が0ならfalseを, 0でないならtrueを返します.

セルの文字列は,空白文字を除去してからlibcのatof()関数で変換するので, 変換できる文字列は10進数または16進数の整数表現と実数表現です. セルの文字列が実数に変換できなかった場合, 'T''t'で始まる文字列ならtrueを, そうでない場合は,falseを返します.

整数型や実数型のカラムの場合,セルの値に,ヘッダの TZEROnTSCALn を反映した実数値に最も近い整数値が0ならfalseを, 0でないならtrueを返します.

アスキーテーブルの場合:

TFORMn が数値表現を示さない場合には,セルの文字列を実数値に変換し,その値に最も近い整数値が0ならfalseを, 0でないならtrueを返します.

TFORMn が数値表現を示す場合には,セルの文字列を実数値に変換し, さらにその値を TZEROnTSCALn で変換し,その値に最も近い整数値が0ならfalseを, 0でないならtrueを返します.

セルの文字列は,空白文字を除去してからlibcのatof()関数で変換するので, 変換できる文字列は10進数または16進数の整数表現と実数表現です. セルの文字列が実数に変換できなかった場合, 'T''t'で始まる文字列ならtrueを, そうでない場合は,falseを返します.


svalue()

const char *svalue( long row_index );
const char *svalue( long row_index, const char *el_nm, long repeti_idx = 0 );
const char *svalue( long row_index, long elem_idx, long repetition_idx = 0 );

バイナリテーブル・アスキーテーブル共通:

セルの値を必要に応じて変換し,文字列値で返します. TZEROnTSCALn による変換に加え,NULL値に関する処理も行なう高レベルなメンバ関数です.

セルがNULL値を示す場合や,引数が不正な場合は, NULL文字列値(デフォルトでは"NULL") を返します(この文字列は,TDISPnの指定によっては, 左右に空白文字が付加される事もあります). バイナリテーブルの整数型カラムの場合や, 文字列型カラムにおいてTNULLnの値に セルの値が一致した場合も,NULL値とします. NULL文字列値(デフォルトでは"NULL")は, assign_null_svalue()メンバ関数 で変更できます.

row_indexで行を指定します. 引数のインデックスは,0から始まる数字です.

バイナリテーブルの場合:

elem_name(名前)または elem_index(インデックス)で要素を指定できます. elem_nameには,TELEMn に存在する名前を指定できます.

TDIMn が指定されている場合, 1次元目のインデックスをelem_indexで, 2次元目のインデックスをrepetition_idxで指定できます. 文字列の場合は,TDIMnTFORMnそれぞれの次元における個数 が変わります.

TDISPn が存在すれば,それに従ってフォーマットされた文字列を返します.

論理型のカラムの場合は, TDISPn の指定が無ければ, "T""F", NULL文字列値(デフォルトでは"NULL") のいずれかを返します. TDISPnの指定が有る場合は, "T""F", NULL文字列値を TDISPn でフォーマットした文字列を返します.

整数型や実数型のカラムの場合,セルの値を ヘッダの TZEROnTSCALn の値で変換し,さらに文字列に変換した値を返します.

整数型のカラムで, TZEROn が0,TSCALn が1.0の場合で,かつ TDISPn の指定が無い場合には,libcのprintf()関数のフォーマット "%lld" に従って変換した文字列を返します.

上記以外の場合には,以下のprintf()関数のフォーマットに従って変換した文字列を返します.

FITS::FLOAT_T"%.7G"
FITS::DOUBLE_TFITS::LONGLONG_T"%.15G"
FITS::LONG_T"%.10G"
上記以外のカラムタイプ"%.7G"

アスキーテーブルの場合:

TFORMn が存在すれば,それに従ってフォーマットされた文字列を返します.

TFORMn が数値表現を示す場合には,セルの文字列を実数値に変換し,その値を TZEROnTSCALn で変換し,その値を TFORMn でフォーマットした文字列を返します.


get_svalue()

const char *get_svalue( long row_index, tstring *dest ) const;                   ... 1
const char *get_svalue( long row_index, const char *el_nm, 
                        tstring *dest ) const;                                   ... 2
const char *get_svalue( long row_index, const char *el_nm, long repeti_idx,
                        tstring *dest ) const;                                   ... 3
const char *get_svalue( long row_index, long elem_idx, tstring *dest ) const;    ... 4
const char *get_svalue( long row_index, long elem_idx, long repetition_idx,
                        tstring *dest ) const;                                   ... 5
ssize_t get_svalue( long row_index, char *dest_buf, size_t buf_size ) const;     ... 6
ssize_t get_svalue( long row_index, const char *elem_name, 
                    char *dest_buf, size_t buf_size ) const;                     ... 7
ssize_t get_svalue( long row_index, const char *elem_name, long repetition_idx,
                    char *dest_buf, size_t buf_size ) const;                     ... 8
ssize_t get_svalue( long row_index, long elem_index, 
                    char *dest_buf, size_t buf_size ) const;                     ... 9
ssize_t get_svalue( long row_index, long elem_index, long repetition_idx,
                    char *dest_buf, size_t buf_size ) const;                     ... 10

セルの値を必要に応じて変換し,文字列値で dest で示された 文字列オブジェクト(tstring) または, dest_buf で示されたバッファ(バッファ長はbuf_size)へ返します. TZEROnTSCALn による変換に加え,NULL値に関する処理も行なう高レベルなメンバ関数です.

dest または dest_buf へ返される文字列値や, 引数による行や要素の指定については, svalue() と同様です.詳細はそちらをご覧ください.

メンバ関数1〜5の返り値
文字列オブジェクトdestの文字列バッファのアドレス.
メンバ関数6〜10の返り値
非負の値: バッファ長が十分な場合にコピーできる文字数('\0'は含まない).
負の値: 引数が不正でコピーされなかった場合.

assign()

fits_table_col &assign( double value, long row_index );
fits_table_col &assign( double value, long row_index,
                        const char *elem_name, long repetition_idx = 0 );
fits_table_col &assign( double value, long row_index,
                        long elem_index, long repetition_idx = 0 );
fits_table_col &assign( float value, long row_index );
fits_table_col &assign( float value, long row_index,
                        const char *elem_name, long repetition_idx = 0 );
fits_table_col &assign( float value, long row_index,
                        long elem_index, long repetition_idx = 0 );
fits_table_col &assign( long long value, long row_index );
fits_table_col &assign( long long value, long row_index,
                        const char *elem_name, long repetition_idx = 0 );
fits_table_col &assign( long long value, long row_index,
                        long elem_index, long repetition_idx = 0 );
fits_table_col &assign( long value, long row_index );
fits_table_col &assign( long value, long row_index,
                        const char *elem_name, long repetition_idx = 0 );
fits_table_col &assign( long value, long row_index,
                        long elem_index, long repetition_idx = 0 );
fits_table_col &assign( int value, long row_index );
fits_table_col &assign( int value, long row_index,
                        const char *elem_name, long repetition_idx = 0 );
fits_table_col &assign( int value, long row_index,
                        long elem_index, long repetition_idx = 0 );
fits_table_col &assign( const char *value, long row_index );
fits_table_col &assign( const char *value, long row_index,
                        const char *elem_name, long repetition_idx = 0 );
fits_table_col &assign( const char *value, long row_index,
                        long elem_index, long repetition_idx = 0 );

バイナリテーブル・アスキーテーブル共通:

実数,整数または文字列 value から,必要に応じて変換処理を行なった値をセルに代入します. TZEROnTSCALn による変換に加え,NULL値に関する処理も行なう高レベルなメンバ関数です.

valueNAN またはNULL文字列値(デフォルトでは"NULL") を与えた場合は,NULL値が与えられたものとします. この時,文字列型カラムやバイナリテーブルの整数型カラムの場合に TNULLn の値があればその値をセルに代入します. NULL文字列値(デフォルトでは"NULL")は, assign_null_svalue()メンバ関数 で変更できます.

row_index で行を指定します. 引数のインデックスは,0から始まる数字です. 引数が不正な場合は何もしません.

バイナリテーブルの場合:

elem_name(名前)または elem_index(インデックス)で要素を指定できます. elem_nameには, TELEMnに存在する名前を指定できます.

TDIMn が指定されている場合, 1次元目のインデックスをelem_indexで, 2次元目のインデックスをrepetition_idxで指定できます. 文字列の場合は,TDIMnTFORMnそれぞれの次元における個数 が変わります.

ヘッダの TZEROnTSCALn の値が有効なのは, TFORMn の指定に 'B''I''J''K''E''D'を含む場合です.

整数型のカラムの場合は, TZEROnTSCALn の変換を行なった後,最も近い整数値をセルに代入します.

論理型のカラムの場合は,valueに 最も近い整数値が0なら'F'を, 0以外の値なら'T'をセルに代入します. NULL値(NANまたはNULL文字列値)が与えられた時は '\0'を代入します.

数値型の引数が与えられた時, 文字列型のカラムの場合は, printf()のフォーマット "%.15G"の形式(valueがdouble型の場合)または "%.7G"の形式(valueがfloat型の場合)で 変換した文字列をセルに代入します.

アスキーテーブルの場合:

TFORMn の指定があれば,それに従って整形された文字列がセルに代入されます.

ヘッダの TZEROnTSCALn の値が有効なのは, TFORMnの指定に 'I''L''F''E''G''D'を含む場合です.

数値型の引数が与えられた時, TFORMnが数値表現を示さない場合には, printf()のフォーマット "%.15G"の形式(valueがdouble型の場合)または "%.7G"の形式(valueがfloat型の場合)で 変換した文字列をセルに代入します (TFORMnの指定があった場合は,その文字列をさらに フォーマット変換したものを代入します).

数値型の引数が与えられた時, TFORMnが数値表現を示す場合には,valueTZEROnTSCALnで変換を行なった後, TFORMnのフォーマットの形式で変換した文字列をセルに代入します.

返り値
自身の参照

short_value()

short short_value( long row_index ) const;
short short_value( long row_index,
                   const char *elem_nm, long repetition_idx = 0 ) const;
short short_value( long row_index,
                   long elem_index, long repetition_idx = 0 ) const;

バイナリテーブル・アスキーテーブル共通:

低レベルなメンバ関数で,セルの生の値を整数値(short型)で返します. 返されるに値には,ヘッダの TZEROnTSCALn の値は反映されません.

row_index で行を指定します. 引数のインデックスは,0から始まる数字です.

バイナリテーブルの場合:

カラムの型が FITS::SHORT_T (TFORMn の指定に'I'を含む) の場合に最速でアクセスできます.

elem_name(名前)または elem_index(インデックス)で要素を指定できます. elem_nameには, TELEMnに存在する名前を指定できます.

TDIMn が指定されている場合, 1次元目のインデックスをelem_indexで, 2次元目のインデックスをrepetition_idxで指定できます.

引数が不正な場合や,カラムの型が FITS::SHORT_T ではない場合にセル値がshort型で表現できない場合(NULLも含む),NULL値(後述)を返します.

実数型のカラムの場合は, 最も近い整数値に丸めた値を返します.

論理型のカラムの場合は,値が 'T' なら1を,値が 'F' なら0を, それ以外の場合はNULL値(後述)を返します.

文字列型のカラムの場合は, 文字列を実数に変換し,最も近い整数値に丸めた値を返します.

このメンバ関数におけるNULL値は, TNULLnが設定されていればその値, そうでなければINDEF_SHORT です.

アスキーテーブルの場合:

バイナリテーブルの文字列型のカラムの場合と同様です.


long_value()

long long_value( long row_index ) const;
long long_value( long row_index,
                 const char *elem_nm, long repetition_idx = 0 ) const;
long long_value( long row_index,
                 long elem_index, long repetition_idx = 0 ) const;

バイナリテーブル・アスキーテーブル共通:

低レベルなメンバ関数で,セルの生の値を整数値(long型)で返します. 返されるに値には,ヘッダの TZEROnTSCALn の値は反映されません.

row_index で行を指定します. 引数のインデックスは,0から始まる数字です.

バイナリテーブルの場合:

カラムの型が FITS::LONG_T (TFORMn の指定に'J'を含む) の場合に最速でアクセスできます.

elem_name(名前)または elem_index(インデックス)で要素を指定できます. elem_nameには, TELEMnに存在する名前を指定できます.

TDIMn が指定されている場合, 1次元目のインデックスをelem_indexで, 2次元目のインデックスをrepetition_idxで指定できます.

引数が不正な場合や,カラムの型が FITS::LONG_T ではない場合にセル値がlong型で表現できない場合(NULLも含む),NULL値(後述)を返します.

実数型のカラムの場合は, 最も近い整数値に丸めた値を返します.

論理型のカラムの場合は,値が 'T' なら1を,値が 'F' なら0を, それ以外の場合はNULL値(後述)を返します.

文字列型のカラムの場合は, 文字列を実数に変換し,最も近い整数値に丸めた値を返します.

このメンバ関数におけるNULL値は, TNULLnが設定されていればその値, そうでなければINDEF_LONG です.

アスキーテーブルの場合:

バイナリテーブルの文字列型のカラムの場合と同様です.


longlong_value()

long long longlong_value( long row_index ) const;
long long longlong_value( long row_index,
                          const char *elem_nm, long repetition_idx = 0 ) const;
long long longlong_value( long row_index,
                          long elem_index, long repetition_idx = 0 ) const;

バイナリテーブル・アスキーテーブル共通:

低レベルなメンバ関数で,セルの生の値を整数値(long long型)で返します. 返されるに値には,ヘッダの TZEROnTSCALn の値は反映されません.

row_index で行を指定します. 引数のインデックスは,0から始まる数字です.

バイナリテーブルの場合:

カラムの型が FITS::LONGLONG_T (TFORMn の指定に'K'を含む) の場合に最速でアクセスできます.

elem_name(名前)または elem_index(インデックス)で要素を指定できます. elem_nameには, TELEMnに存在する名前を指定できます.

TDIMn が指定されている場合, 1次元目のインデックスをelem_indexで, 2次元目のインデックスをrepetition_idxで指定できます.

引数が不正な場合や,カラムの型が FITS::LONGLONG_T ではない場合にセル値がlong long型で表現できない場合(NULLも含む),NULL値(後述)を返します.

実数型のカラムの場合は, 最も近い整数値に丸めた値を返します.

論理型のカラムの場合は,値が 'T' なら1を,値が 'F' なら0を, それ以外の場合はNULL値(後述)を返します.

文字列型のカラムの場合は, 文字列を実数に変換し,最も近い整数値に丸めた値を返します.

このメンバ関数におけるNULL値は, TNULLnが設定されていればその値, そうでなければINDEF_LLONG です.

アスキーテーブルの場合:

バイナリテーブルの文字列型のカラムの場合と同様です.


byte_value()

unsigned char byte_value( long row_index ) const;
unsigned char byte_value( long row_index,
                          const char *elem_nm, long repetition_idx = 0 ) const;
unsigned char byte_value( long row_index,
                          long elem_index, long repetition_idx = 0 ) const;

バイナリテーブル・アスキーテーブル共通:

低レベルなメンバ関数で,セルの生の値を整数値(unsigned char型)で返します. 返されるに値には,ヘッダの TZEROnTSCALn の値は反映されません.

row_index で行を指定します. 引数のインデックスは,0から始まる数字です.

バイナリテーブルの場合:

カラムの型が FITS::BYTE_T (TFORMn の指定に'B'を含む) の場合に最速でアクセスできます.

elem_name(名前)または elem_index(インデックス)で要素を指定できます. elem_nameには, TELEMnに存在する名前を指定できます.

TDIMn が指定されている場合, 1次元目のインデックスをelem_indexで, 2次元目のインデックスをrepetition_idxで指定できます.

引数が不正な場合や,カラムの型が FITS::BYTE_T ではない場合にセル値がunsigned char型で表現できない場合(NULLも含む),NULL値(後述)を返します.

実数型のカラムの場合は, 最も近い整数値に丸めた値を返します.

論理型のカラムの場合は,値が 'T' なら1を,値が 'F' なら0を, それ以外の場合はNULL値(後述)を返します.

文字列型のカラムの場合は, 文字列を実数に変換し,最も近い整数値に丸めた値を返します.

このメンバ関数におけるNULL値は, TNULLnが設定されていればその値, そうでなければINDEF_UCHAR です.

アスキーテーブルの場合:

バイナリテーブルの文字列型のカラムの場合と同様です.


float_value()

float float_value( long row_index ) const;
float float_value( long row_index,
                   const char *elem_nm, long repetition_idx = 0 ) const;
float float_value( long row_index,
                   long elem_index, long repetition_idx = 0 ) const;

バイナリテーブル・アスキーテーブル共通:

低レベルなメンバ関数で,セルの生の値を実数値(float型)で返します. 返されるに値には,ヘッダの TZEROnTSCALn の値は反映されません.

row_index で行を指定します. 引数のインデックスは,0から始まる数字です.

バイナリテーブルの場合:

カラムの型が FITS::FLOAT_T (TFORMn の指定に'E'を含む) の場合に最速でアクセスできます.

elem_name(名前)または elem_index(インデックス)で要素を指定できます. elem_nameには, TELEMnに存在する名前を指定できます.

TDIMn が指定されている場合, 1次元目のインデックスをelem_indexで, 2次元目のインデックスをrepetition_idxで指定できます.

引数が不正な場合やセル値がNULLを示している場合はNANを返します.

論理型のカラムの場合は,値が 'T' なら1を,値が 'F' なら0を, それ以外の場合はNANを返します.

文字列型のカラムの場合は, 文字列を実数に変換した値を返します.

アスキーテーブルの場合:

バイナリテーブルの文字列型のカラムの場合と同様です.


double_value()

double double_value( long row_index ) const;
double double_value( long row_index,
                     const char *elem_nm, long repetition_idx = 0 ) const;
double double_value( long row_index,
                     long elem_index, long repetition_idx = 0 ) const;

バイナリテーブル・アスキーテーブル共通:

低レベルなメンバ関数で,セルの生の値を実数値(double型)で返します. 返されるに値には,ヘッダの TZEROnTSCALn の値は反映されません.

row_index で行を指定します. 引数のインデックスは,0から始まる数字です.

バイナリテーブルの場合:

カラムの型が FITS::DOUBLE_T (TFORMn の指定に'D'を含む) の場合に最速でアクセスできます.

elem_name(名前)または elem_index(インデックス)で要素を指定できます. elem_nameには, TELEMnに存在する名前を指定できます.

TDIMn が指定されている場合, 1次元目のインデックスをelem_indexで, 2次元目のインデックスをrepetition_idxで指定できます.

引数が不正な場合やセル値がNULLを示している場合はNANを返します.

論理型のカラムの場合は,値が 'T' なら1を,値が 'F' なら0を, それ以外の場合はNANを返します.

文字列型のカラムの場合は, 文字列を実数に変換した値を返します.

アスキーテーブルの場合:

バイナリテーブルの文字列型のカラムの場合と同様です.


logical_value()

int logical_value( long row_index ) const;
int logical_value( long row_index,
                   const char *elem_nm, long repetition_idx = 0 ) const;
int logical_value( long row_index,
                   long elem_index, long repetition_idx = 0 ) const;

バイナリテーブル・アスキーテーブル共通:

低レベルなメンバ関数で,セルの生の値を論理値で返します. 返り値は,'T''F''\0' の3種類です. 返されるに値には,ヘッダの TZEROnTSCALn の値は反映されません.

row_index で行を指定します. 引数のインデックスは,0から始まる数字です.

バイナリテーブルの場合:

カラムの型が FITS::LOGICAL_T (TFORMn の指定に'L'を含む) の場合に最速でアクセスできます.

elem_name(名前)または elem_index(インデックス)で要素を指定できます. elem_nameには, TELEMnに存在する名前を指定できます.

TDIMn が指定されている場合, 1次元目のインデックスをelem_indexで, 2次元目のインデックスをrepetition_idxで指定できます.

引数が不正な場合やセル値がNULLを示している場合は NULL値('\0')を返します.

論理型のカラムの場合, 値が'T'なら'T'を, 'F'なら'F'を, これら以外なら'\0'を返します.

文字列型のカラムの場合は,NULL文字列なら'\0' を返します.そうでない場合は文字列を実数に変換し, その実数を最も近い整数値に丸めた後, その整数値が0なら 'F'を, 0でないなら 'T'を返します. 文字列が実数に変換できなかった場合, 'T''t'で始まる文字列なら'T'を, 'F''f'で始まる文字列なら'F'を, そうでない場合は,'\0'を返します.

実数型のカラムの場合は,値が数値ではないなら'\0'を返し, 値が数値なら最も近い整数値に丸めた後,その整数値が 0なら'F'を, 0でない数値なら'T'を返します. 整数型のカラムの場合,値がNULL値なら'\0'を, 値が0なら'F'を, 0でないなら'T'を返します.

アスキーテーブルの場合:

バイナリテーブルの文字列型のカラムの場合と同様です.


bit_value()

long bit_value( long row_index ) const;
long bit_value( long row_index, const char *elem_name,
                long repetition_idx = 0, int nbit = 0 ) const;
long bit_value( long row_index, long elem_index, long repetition_idx = 0, 
                int nbit = 1 ) const;

バイナリテーブル・アスキーテーブル共通:

低レベルなメンバ関数で,セルの生の値を整数値で返します. 返されるに値には,ヘッダの TZEROnTSCALn の値は反映されません.

row_index で行を指定します. 引数のインデックスは,0から始まる数字です.

バイナリテーブルの場合:

カラムの型が FITS::BIT_T (TFORMn の指定に 'X' を含む) の場合に最速でアクセスできます.

elem_name(名前)または elem_index(インデックス)で要素を指定できます. elem_nameには, TELEMnに存在する名前を指定できます.

TDIMn が指定されている場合, 1次元目のインデックスをelem_indexで, 2次元目のインデックスをrepetition_idxで指定できます.

カラムの型が FITS::BIT_T の場合, 引数 nbit で,指定した要素から右方向何ビットを 値として使うかを指定できます. 引数 nbit が0の場合,TELEMn で指定された ビットフィールドの情報を利用します (ビットフィールド拡張については, 「バイナリテーブルのカラム中のbit個数の定義」 をご覧ください).

カラムの型が FITS::BIT_T 以外の場合は, long_value()メンバ関数 と同じ動作です.

アスキーテーブルの場合:

long_value()メンバ関数 と同じ動作です.


string_value()

const char *string_value( long row_index );
const char *string_value( long row_index,
                          const char *el_nm, long repeti_idx = 0 );
const char *string_value( long row_index,
                          long elem_idx, long repetition_idx = 0 );

バイナリテーブル・アスキーテーブル共通:

低レベルなメンバ関数で,セルの生の値を文字列値で返します. 返されるに値には,ヘッダの TZEROnTSCALn の値は反映されません.

row_index で行を指定します. 引数のインデックスは,0から始まる数字です.

バイナリテーブルの場合:

カラムの型が FITS::ASCII_T (TFORMn の指定に'A'を含む) の場合に最速でアクセスできます.

elem_name(名前)または elem_index(インデックス)で要素を指定できます. elem_nameには, TELEMnに存在する名前を指定できます.

TDIMn が指定されている場合, 1次元目のインデックスをelem_indexで, 2次元目のインデックスをrepetition_idxで指定できます. 文字列の場合は,TDIMnTFORMnそれぞれの次元における個数 が変わります.

論理型のカラムの場合は, "T""F",NULL文字列("") のいずれかを返します.

整数型のカラムの場合は, libcのprintf()関数の フォーマット "%lld"に従って変換した文字列または NULL文字列("")を返します. 実数型のカラムの場合は, libcのprintf()関数の フォーマット "%.15G"に従って変換した文字列または NULL文字列("")を返します.

引数が不正な場合は NULL文字列("") を返します.

アスキーテーブルの場合:

バイナリテーブルの文字列型のカラムの場合と同様です.


get_string_value()

const char *get_string_value( long row_index, 
                              tstring *dest ) const;
const char *get_string_value( long row_index,
                              const char *elem_name, 
                              tstring *dest ) const;
const char *get_string_value( long row_index,
                              const char *elem_name, long repetition_idx,
                              tstring *dest ) const;
const char *get_string_value( long row_index,
                              long elem_index, 
                              tstring *dest ) const;
const char *get_string_value( long row_index,
                              long elem_index, long repetition_idx,
                              tstring *dest ) const;
ssize_t get_string_value( long row_index, 
                          char *dest_buf, size_t buf_size ) const;
ssize_t get_string_value( long row_index,
                          const char *elem_name, 
                          char *dest_buf, size_t buf_size ) const;
ssize_t get_string_value( long row_index,
                          const char *elem_name, long repetition_idx,
                          char *dest_buf, size_t buf_size ) const;
ssize_t get_string_value( long row_index,
                          long elem_index, 
                          char *dest_buf, size_t buf_size ) const;
ssize_t get_string_value( long row_index,
                          long elem_index, long repetition_idx,
                          char *dest_buf, size_t buf_size ) const;

assign_short()

fits_table_col &assign_short( short value, long row_index );
fits_table_col &assign_short( short value, long row_index,
                              const char *elem_name, long repetition_idx = 0 );
fits_table_col &assign_short( short value, long row_index,
                              long elem_index, long repetition_idx = 0 );


assign_long()

fits_table_col &assign_long( long value, long row_index );
fits_table_col &assign_long( long value, long row_index,
                             const char *elem_name, long repetition_idx = 0 );
fits_table_col &assign_long( long value, long row_index,
                             long elem_index, long repetition_idx = 0 );


assign_longlong()

fits_table_col &assign_longlong( long long value, long row_index );
fits_table_col &assign_longlong( long long value, long row_index,
                                 const char *elem_name, long repetition_idx = 0 );
fits_table_col &assign_longlong( long long value, long row_index,
                                 long elem_index, long repetition_idx = 0 );


assign_byte()

fits_table_col &assign_byte( unsigned char value, long row_index );
fits_table_col &assign_byte( unsigned char value, long row_index,
                             const char *elem_name, long repetition_idx = 0 );
fits_table_col &assign_byte( unsigned char value, long row_index,
                             long elem_index, long repetition_idx = 0 );


assign_float()

fits_table_col &assign_float( float value, long row_index );
fits_table_col &assign_float( float value, long row_index,
                              const char *elem_name, long repetition_idx = 0 );
fits_table_col &assign_float( float value, long row_index,
                              long elem_index, long repetition_idx = 0 );


assign_double()

fits_table_col &assign_double( double value, long row_index );
fits_table_col &assign_double( double value, long row_index,
                               const char *elem_name, long repetition_idx = 0 );
fits_table_col &assign_double( double value, long row_index,
                               long elem_index, long repetition_idx = 0 );


assign_logical()

fits_table_col &assign_logical( int value, long row_index );
fits_table_col &assign_logical( int value, long row_index,
                                const char *elem_name, long repetition_idx = 0 );
fits_table_col &assign_logical( int value, long row_index,
                                long elem_index, long repetition_idx = 0 );


assign_bit()

fits_table_col &assign_bit( long value, long row_index );
fits_table_col &assign_bit( long value, long row_index,
                            const char *elem_name, long repetition_idx = 0, int nbit = 0 );
fits_table_col &assign_bit( long value, long row_index,
                            long elem_index, long repetition_idx = 0, int nbit = 1 );


assign_string()

fits_table_col &assign_string( const char *value, long row_index );
fits_table_col &assign_string( const char *value, long row_index,
                               const char *elem_nam, long repetition_idx = 0 );
fits_table_col &assign_string( const char *value, long row_index,
                               long elem_index, long repetition_idx = 0 );


ロウ(行)の操作に関するメンバ関数

length()

long length() const;


resize()

fits_table_col &resize( long num_rows );


insert()

fits_table_col &insert( long index, long num_rows );


erase()

fits_table_col &erase( long index, long num_rows );


clean()

fits_table_col &clean();
fits_table_col &clean( long index, long num_rows );


move()

fits_table_col &move( long src_index, long num_rows, long dest_index );


swap()

fits_table_col &swap( long index0, long num_rows, long index1 );


flip()

fits_table_col &flip( long index, long num_rows );


import()

fits_table_col &import( long dest_index, 
                        const fits_table_col &from, long idx_begin = 0,
                        long num_rows = FITS::ALL );


ヒープ領域の操作に関するメンバ関数(低レベル)

heap_is_used()

bool heap_is_used() const;


heap_type()

int heap_type() const;


heap_bytes()

long heap_bytes() const;


max_array_length()

long max_array_length() const;


array_length()

long array_length( long row_idx, long elem_idx = 0 ) const;


array_heap_offset()

long array_heap_offset( long row_idx, long elem_idx = 0 ) const;


assign_arrdesc()

fits_table_col &assign_arrdesc( long length, long offset,
                                long row_index, long elem_idx = 0 );