@*
FourierTransformFFTW3Threads.tmpl

Created by Graham Dennis on 2007-12-23.

Copyright (c) 2007-2012, Graham Dennis

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

*@
@extends xpdeint.Features.Transforms.FourierTransformFFTW3

@def description: FFTW3 with threads
@attr $fftwSuffix = 'threads'

@# defines
@def defines
  @#
  @super
#define _num_threads ${threadCount}
  @#
@end def

@def mainBegin($dict)
  @#
${fftwPrefix}_init_threads();
${fftwPrefix}_plan_with_nthreads(_num_threads);
  @super($dict)
  @#
@end def

@def mainEnd($dict)
  @super($dict)
${fftwPrefix}_cleanup_threads();
@end def
