root/libfftss/fftss_fortran.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. FORTRAN_FUNC
  2. FORTRAN_FUNC
  3. FORTRAN_FUNC
  4. FORTRAN_FUNC
  5. FORTRAN_FUNC

/*
 * Copyright (C) 2002-2007 Akira Nukada. All rights reserved.
 * Copyright (C) 2002-2007 The SSI Project. All rights reserved. 
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *     * Redistributions of source code must retain the above copyright
 *       notice, this list of conditions and the following disclaimer.
 *     * Redistributions in binary form must reproduce the above copyright
 *       notice, this list of conditions and the following disclaimer in the
 *       documentation and/or other materials provided with the distribution.
 *     * Neither the name of the project nor the names of its contributors 
 *       may be used to endorse or promote products derived from this software 
 *       without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE SSI PROJECT ``AS IS'' AND ANY EXPRESS 
 * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL THE SSI PROJECT BE LIABLE FOR ANY DIRECT,
 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 *  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
 * THE POSSIBILITY OF SUCH DAMAGE.
 *
 */
#include "libfftss.h"

#define FORTRAN_FUNC(a,A,body)  \
void dfftss_ ## a       body \
void dfftss_ ## a ## _  body \
void DFFTSS_ ## A       body \
void DFFTSS_ ## A ## _  body \
void dfftss_ ## a ## __ body \
void  fftss_ ## a ## _  body \
void  FFTSS_ ## A       body \
void  FFTSS_ ## A ## _  body \
void  fftss_ ## a ## __ body 


FORTRAN_FUNC(plan_dft_1d,PLAN_DFT_1D,
             (fftss_plan *p, long *n, double *in, double *out,
              long *sign, long *flags) {
  *p = fftss_plan_dft_1d(*n, in, out, *sign, *flags);
})
     
FORTRAN_FUNC(plan_dft_2d,PLAN_DFT_2D,
             (fftss_plan *p, long *nx, long *ny, long *py,
              double *in, double *out, long *sign, long *flags) {
  *p = fftss_plan_dft_2d(*nx, *ny, *py, in, out, *sign, *flags);
})

FORTRAN_FUNC(plan_dft_3d,PLAN_DFT_3D,
             (fftss_plan *p, long *nx, long *ny, long *nz,
              long *py, long *pz, double *in, double *out,
              long *sign, long *flags) {
  *p = fftss_plan_dft_3d(*nx, *ny, *nz, *py, *pz, in, out, *sign, *flags);
})

FORTRAN_FUNC(destroy_plan,DESTROY_PLAN,
             (fftss_plan *p) {
  fftss_destroy_plan(*p);
})

FORTRAN_FUNC(set,SET,
             (fftss_plan *p, double *in, double *out) {
  fftss_set(*p, in, out);
})

FORTRAN_FUNC(execute,EXECUTE,
             (fftss_plan *p) {
  fftss_execute(*p);
})

FORTRAN_FUNC(execute_dft,EXECUTE_DFT,
             (fftss_plan *p, double *in, double *out) {
  fftss_execute_dft(*p, in, out);
})

FORTRAN_FUNC(get_wtime,GET_WTIME,
             (double *t) {
  *t = fftss_get_wtime();
})

FORTRAN_FUNC(init_threads,INIT_THREADS,
             (void) {
  fftss_init_threads();
})

FORTRAN_FUNC(cleanup_threads,CLEANUP_THREADS,
             (void) {
  fftss_cleanup_threads();
})

FORTRAN_FUNC(plan_with_nthreads,PLAN_WITH_NTHREADS,
             (int *nthreads) {
  fftss_plan_with_nthreads(*nthreads);
})



/* [<][>][^][v][top][bottom][index][help] */