インテル® DAAL プログラミング・ガイド

一般的なインターフェイス

数値テーブルは、メモリーの割り当てと割り当て解除のようなデータ管理、各メモリーアクセスのメソッド、辞書管理、テーブルサイズ管理のインターフェイスを提供します。

インテル® DAAL は、さまざまなテーブル初期化シナリオをカバーする、数値テーブル用のコンストラクターを提供します。すべてのコンストラクターには、テーブルの行と列の数が必要です。オブジェクト構築時にテーブルサイズが不明な場合、空のテーブルを構築して、後でサイズを変更できます。データがオブジェクト構築時までにメモリーですでに利用可能な場合、コンストラクターでこのデータのポインターを提供できます。コンストラクターは、テーブルサイズが既知でもデータがメモリーにまだ存在せず、インテル® DAAL がオブジェクト構築時にメモリーを自動的に割り当てる場合のシナリオもカバーします。このコンストラクターのバリエーションは、インテル® DAAL がメモリーを割り当てて初期化する場合、つまりすべての要素がゼロの行列を割り当てる場合にも利用できます。

指定された数値テーブルに関連付けられた行と列の数を判断するには、getNumberOfRows() および getNumberOfColumns() メソッドを使用します。これらのメソッドは、データソースが指定されたデータセットの数値テーブルを自動的に割り当てる場合に特に便利です。行と列の数を設定または変更するには、setNumberOfRows() および setNumberOfColumns() メソッドを使用します。テーブルサイズが動的に変更する場合、これらのメソッドを使用します。このシナリオで、テーブルサイズとテーブルに関連付けられたデータを一致させるのはプログラマーの責任です。

getArray() および setArray() メソッドは、指定されたレイアウトで指定されたテーブルに関連付けられたデータへのアクセスを提供します。例えば、同次および AOS 数値テーブルではデータが隣接するメモリーブロックとしてレイアウトされる必要があるため、getArray() および setArray() メソッドはメモリーブロックのポインターを操作します。AOS と異なり、SOA 数値テーブルではデータが特徴ごとに隣接するメモリーブロックのセットとしてレイアウトされる必要があるため、getArray() および setArray() メソッドは指定された特徴のメモリーブロックのポインターを操作します。テーブルサイズとテーブルに関連付けられたデータを一致させるのはプログラマーの責任です。

getFeatureType()getNumberOfCategories() と同様に、getDictionary()setDictionary()resetDictionary() メソッドは、指定された数値テーブルに関連するデータ辞書へのアクセスを提供します。詳細は、「データ辞書」を参照してください。

指定された数値テーブルに関連付けられたデータを格納するために必要なメモリーの割り当てと割り当て解除には、allocateDataMemory() および freeDataMemory() メソッドを使用します。行と列の数および特徴の型により、データを格納するために必要なメモリーの量が決まります。getDataMemoryStatus() メソッドを使用すると、メモリーが allocateDataMemory() メソッドで割り当てられたか、ユーザーが割り当てられたデータのポインターを提供したか、現在数値テーブルと関連付けられたデータがないかを判断できます。