static void linop_cdf97_adjoint(const linop_data_t* _data, complex float* out, const complex float* in) { const struct linop_cdf97_s* data = CAST_DOWN(linop_cdf97_s, _data); md_copy(data->N, data->dims, out, in, CFL_SIZE); md_icdf97z(data->N, data->dims, data->flags, out); }
int main_cdf97(int argc, char* argv[]) { int c; _Bool inv = false; while (-1 != (c = getopt(argc, argv, "ih"))) { switch (c) { case 'i': inv = true; break; case 'h': usage(argv[0], stdout); help(); exit(0); default: usage(argv[0], stderr); exit(1); } } if (argc - optind != 3) { usage(argv[0], stderr); exit(1); } unsigned int flags = atoi(argv[optind + 0]); long dims[DIMS]; complex float* idata = load_cfl(argv[optind + 1], DIMS, dims); complex float* odata = create_cfl(argv[optind + 2], DIMS, dims); md_copy(DIMS, dims, odata, idata, CFL_SIZE); unmap_cfl(DIMS, dims, idata); if (inv) { md_iresortz(DIMS, dims, flags, odata); md_icdf97z(DIMS, dims, flags, odata); } else { md_cdf97z(DIMS, dims, flags, odata); md_resortz(DIMS, dims, flags, odata); } unmap_cfl(DIMS, dims, odata); exit(0); }