static void nlop_for_iter(iter_op_data* _o, float* _dst, const float* _src) { const struct iter4_nlop_s* nlop = CAST_DOWN(iter4_nlop_s, _o); operator_apply_unchecked(nlop->nlop.op, (complex float*)_dst, (const complex float*)_src); }
void fft_exec(const struct operator_s* o, complex float* dst, const complex float* src) { operator_apply_unchecked(o, dst, src); }
/** * Apply the normal equations operation of a linear operator: y = A^H A x * Does not check that the dimensions are consistent for the linear operator * * @param op linear operator * @param dst output data * @param src input data */ void linop_normal_unchecked(const struct linop_s* op, complex float* dst, const complex float* src) { assert(op->normal); operator_apply_unchecked(op->normal, dst, src); }
/** * Apply the adjoint operation of a linear operator: y = A^H x * Does not check that the dimensions are consistent for the linear operator * * @param op linear operator * @param dst output data * @param src input data */ void linop_adjoint_unchecked(const struct linop_s* op, complex float* dst, const complex float* src) { assert(op->adjoint); operator_apply_unchecked(op->adjoint, dst, src); }
/** * Apply the forward operation of a linear operator: y = A x * Does not check that the dimensions are consistent for the linear operator * * @param op linear operator * @param dst output data * @param src input data */ void linop_forward_unchecked(const struct linop_s* op, complex float* dst, const complex float* src) { assert(op->forward); operator_apply_unchecked(op->forward, dst, src); }
void operator_iter(iter_op_data* _data, float* dst, const float* src) { auto data = CAST_DOWN(iter_op_op, _data); operator_apply_unchecked(data->op, (complex float*)dst, (const complex float*)src); }