/* FDCT3D (Fast 3d Curvelet Transform) Copyright (C) 2004 Caltech Written by Lexing Ying */ #include "cpxcrvletprtd.hpp" CpxCrvletPrtd::CpxCrvletPrtd(const CpxCrvletPrtd& D): _nx(D._nx), _ny(D._ny), _nz(D._nz), _owners(D._owners), _sizes(D._sizes), _exists(D._exists), _blocks(D._blocks) {} CpxCrvletPrtd& CpxCrvletPrtd::operator=(const CpxCrvletPrtd& D) { _nx = D._nx; _ny = D._ny; _nz = D._nz; _owners = D._owners; _sizes = D._sizes; _exists = D._exists; _blocks = D._blocks; return *this; } //--------------------------------------------- double CpxCrvletPrtd::globalenergy() { double lclsum = 0; vector< vector >& c = _nx; for(int s=0; s >& c = _nx; for(int s=0; s > nx, vector< vector > ny, vector< vector > nz, vector< vector >& owners) { _nx = nx; _ny = ny; _nz = nz; //owners //check owners's size is the same as nx _owners = owners; //sizes int C2D = 2; vector< vector >& c = _nx; _sizes.resize(nx.size()); for(int s=0; s >& newexists) { //todo: check size of newexists is right //the final exists is the union of _exists and newexisits vector< vector >& c = _nx; for(int s=0; s >& newexists) { //LEXING: usually only called once vector< vector >& c = _nx; //1. the global vector vector glblszs(mpisize(), 0); int glbnum = 0; for(int s=0; s glbaccs(mpisize(), 0); int tmp = 0; for(int pi=0; pi > glbstts(c); //not cleared, but okay for(int s=0; s l2gmap; for(int s=0; s >& newowners) { vector< vector >& c = _nx; for(int s=0; s >& c = _nx; for(int s=0; s >& c = _nx; //1. the global vector vector glblszs(mpisize(), 0); int glbnum = 0; for(int s=0; s glbaccs(mpisize(), 0); int tmp = 0; for(int pi=0; pi > glbstts(c); for(int s=0; s l2gmap; for(int s=0; s