#### 4.5.5 Guru Real-to-real Transforms

         fftw_plan fftw_plan_guru_r2r(int rank, const fftw_iodim *dims,
                                      int howmany_rank,
                                      const fftw_iodim *howmany_dims,
                                      double *in, double *out,
                                      const fftw_r2r_kind *kind,
                                      unsigned flags);

Plan a real-to-real (r2r) multi-dimensional `FFTW_FORWARD` transform with transform dimensions given by (`rank`, `dims`) over a multi-dimensional vector (loop) of dimensions (`howmany_rank`, `howmany_dims`). `dims` and `howmany_dims` should point to `fftw_iodim` arrays of length `rank` and `howmany_rank`, respectively.

The transform kind of each dimension is given by the `kind` parameter, which should point to an array of length `rank`. Valid `fftw_r2r_kind` constants are given in Real-to-Real Transform Kinds.

`in` and `out` point to the real input and output arrays; they may be the same, indicating an in-place transform.

`flags` is a bitwise OR (‘`|`’) of zero or more planner flags, as defined in Planner Flags.