第 3 章 リファレンス 51
3.2 WaveField クラス
3.2.3 コンストラクタ・デストラクタと初期化関連メンバー関数
WaveField(void) WaveField(int nxy)
WaveField(int nx, int ny)
WaveField(int nx, int ny, double pxy)
WaveField(int nx, int ny, double px, double py)
WaveField(int nx, int ny, double px, double py, double wavelength) 戻り値 なし
説 明 コンストラクタ.1番目の形式では全てデフォルト値のオブジェクトを生成する.2番目の形 式ではx方向サンプリング点数とy方向サンプリング点数は同じnxyとなる.3番目の形式では x方向サンプリング点数nx,y方向サンプリング点数をnxとし,x,y方向サンプリングが同じ間 隔p[単位:m]のオブジェクトを生成する.4番目の形式ではx方向とy方向サンプリング間隔を pxとpyで個別に設定する.5番目の形式ではさらに,波長をwavelength [単位:m]に設定する.
64 第3章 リファレンス
図3.3 矩形ウィンドウ領域の定義
Note
• 初期状態では省略された引数のデフォルト値(既定値)は次のとおりである.
サンプリング点数 Nx=Ny= 256 サンプリング間隔 Px =Py= 1µm 波長 λ= 632.8nm
• これらのデフォルト値はデフォルト値を設定・取得するメンバー関数を用いて変更できる.
• サンプリング点数は必ず,2の累乗でなければならない.2の累乗でないサンプリング点数を指定 した場合は,指定したサンプリング点数が格納できる最小の2の累乗サイズでオブジェクトが生成 される.
Example
//すべてデフォルト値のオブジェクトを宣言する W a v e F i e l d wf1 ;
//サンプリング点数を512 x 5 1 2と し た オ ブ ジ ェ ク ト を 宣 言 す る W a v e F i e l d wf2 ( 5 1 2 ) ;
// 1 0 2 4 x 1 0 2 4で サ ン プ リ ン グ 間 隔 がx , y方 向 で 同 じ1 0 u mの オ ブ ジ ェ ク ト を 宣 言 す る W a v e F i e l d wf3 (1024 , 1024 , 10 e - 6 ) ;
// 2 0 4 8 x 2 0 4 8で サ ン プ リ ン グ 間 隔 がx方 向5 u m,y方 向1 0 u mの オ ブ ジ ェ ク ト を 宣 言 す る W a v e F i e l d wf3 (2048 , 2048 , 5 e -6 , 10 e - 6 ) ;
WaveField(const WaveField& wf);
戻り値 なし
説 明 コピーコンストラクタ.
~WaveField(void) 戻り値 なし
説 明 WaveFieldオブジェクトを明示的に削除する.対象オブジェクトで使用していたメモリは解
放される.
void Dispose(void) 戻り値 なし
説 明 WaveFieldオブジェクトで使用していたメモリのみが解放される.オブジェクト自体は削除
されない.
WaveField& Init(Complex* d = NULL) 戻り値 対象オブジェクトへの参照
説 明 WaveFieldオブジェクトの以前のサンプリングデータを破棄し,dがNULLまたは省略された
場合には新たにメモリブロックを取得する.以前のサンプリングデータは削除される.dがNULL でない場合には,dが示すメモリブロックをデータ配列として用いる.
Note
• データ配列は初期化されない.データ配列の初期化(ゼロクリア)にはClear()メンバー関数を用 いる.
• 一度dでメモリブロックを指定した後,再度d=NULLでこの関数を呼び出した場合,以前に指定し たメモリブロックを使用しようとする.この時,そのメモリブロックがNx×Nyのデータに対し て不足する場合はエラーを発生する.
• WaveFieldのメンバー関数にはSSE命令を使うものがあるため,メモリブロックは16バイト境
界で整列しなければならない.
• wfl::Malloc()関数で取得したメモリブロックのアライメントは16バイトになる.
Complex* GetDataPointer(void)
戻り値 データ配列メモリブロックの先頭へのポインタ
説 明 データ配列メモリブロックの先頭ポインタを取得する.
WaveField& Clear(void)
戻り値 対象オブジェクトへの参照
説 明 WaveFieldオブジェクトのサンプリングデータをゼロクリアする.実部虚部とも0が設定さ
れる.
66 第3章 リファレンス
WaveField& CopyParam(const WaveField& source) 戻り値 対象オブジェクトへの参照
説 明 WaveFieldオブジェクトのサンプリングデータとサンプリング点数 Nx×Ny以外の全てのパ
ラメータをsourceからコピーする.
Note
• サンプリング点数 Nx ×Ny はコピーされない.サンプリング点数変更にはSetNx()メンバー関 数,SetNy()メンバー関数およびInit()メンバー関数を用いること.
WaveField& CopyData(const WaveField& source) 戻り値 対象オブジェクトへの参照
説 明 WaveFieldオブジェクトのサンプリングデータのみをsourceからコピーする.サンプリン
グ点数 Nx×Ny以外のパラメータはコピーされない.
Note
• サンプリング点数 Nx×Nyはサンプリングデータとともにコピーされる.