/* FDCT3D (Fast 3d Curvelet Transform) Copyright (C) 2004 Caltech Written by Lexing Ying */ #include "fdct3d.hpp" #include "fdct3dinline.hpp" int main(int argc, char** argv) { PetscInitialize(&argc,&argv,"options",NULL); //PetscTruth flg = PETSC_FALSE; srand48(0); int mpirank; MPI_Comm_rank(MPI_COMM_WORLD, &mpirank); int mpisize; MPI_Comm_size(MPI_COMM_WORLD, &mpisize); iC( PetscPrintf(MPI_COMM_WORLD, "mpisize %d\n", mpisize) ); PetscTruth flg = PETSC_FALSE; int m; iC( PetscOptionsGetInt("", "-m", &m, &flg) ); iA(flg==PETSC_TRUE); int n; iC( PetscOptionsGetInt("", "-n", &n, &flg) ); iA(flg==PETSC_TRUE); int p; iC( PetscOptionsGetInt("", "-p", &p, &flg) ); iA(flg==PETSC_TRUE); int b; iC( PetscOptionsGetInt("", "-b", &b, &flg) ); iA(flg==PETSC_TRUE); int nbscales; iC( PetscOptionsGetInt("", "-nbscales", &nbscales, &flg) ); iA(flg==PETSC_TRUE); int nbdstz_coarse; iC( PetscOptionsGetInt("", "-nbdstz_coarse", &nbdstz_coarse, &flg) ); iA(flg==PETSC_TRUE); CpxNumTnsBlkd X; BolNumTns newtnsexists(m/b,n/b,p/b); IntNumTns newtnsowners(m/b,n/b,p/b); iC( fdct3d_partition_cpxnumtnsblkd_z(m,n,p,b, newtnsexists, newtnsowners) ); X.setup(m,n,p,b, newtnsowners); //1. generate data int e = X.e(); int f = X.f(); int g = X.g(); for(int i=0; i