Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
tsoc
openmm
Commits
8469bd0e
Commit
8469bd0e
authored
Jul 07, 2009
by
Rossen Apostolov
Browse files
Changed to BSD license for the fftpack files
parent
96550721
Changes
2
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
236 additions
and
183 deletions
+236
-183
platforms/reference/src/SimTKReference/fftpack.cpp
platforms/reference/src/SimTKReference/fftpack.cpp
+168
-143
platforms/reference/src/SimTKReference/fftpack.h
platforms/reference/src/SimTKReference/fftpack.h
+68
-40
No files found.
platforms/reference/src/SimTKReference/fftpack.cpp
View file @
8469bd0e
This diff is collapsed.
Click to expand it.
platforms/reference/src/SimTKReference/fftpack.h
View file @
8469bd0e
/* -*- mode: c; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; c-file-style: "stroustrup"; -*-
/*
*
* This file contains a Fortran to C translation of the 1D transformations
*
* based on the original FFTPACK, written by paul n swarztrauber
* Gromacs 4.0 Copyright (c) 1991-2003
* at the national center for atmospheric research and available
* David van der Spoel, Erik Lindahl, University of Groningen.
* at www.netlib.org. FFTPACK is in the public domain.
*
*
* This program is free software; you can redistribute it and/or
* Higher-dimension transforms copyright Erik Lindahl, 2008-2009.
* modify it under the terms of the GNU General Public License
* Just as FFTPACK, this file may be redistributed freely, and can be
* as published by the Free Software Foundation; either version 2
* considered to be in the public domain.
* of the License, or (at your option) any later version.
*
*
* Any errors in this (threadsafe, but not threaded) C version
* To help us fund GROMACS development, we humbly ask that you cite
* are due to the f2c translator, or hacks by Erik Lindahl.
* the research papers on the package. Check out http://www.gromacs.org
*
*
* Erik Lindahl, lindahl@cbr.su.se
* And Hey:
* Center for Biomembrane Research
* Gnomes, ROck Monsters And Chili Sauce
* Stockholm University, Sweden
*
* Copyright (c) 2009, Erik Lindahl
* All rights reserved.
* Contact: lindahl@cbr.su.se Stockholm University, Sweden.
*
* 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 author/university 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 COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT HOLDER OR CONTRIBUTORS 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 "../SimTKUtilities/SimTKOpenMMCommon.h"
#include "../SimTKUtilities/SimTKOpenMMCommon.h"
#ifndef _FFTPACK_H_
#ifndef _FFTPACK_H_
...
@@ -39,10 +67,10 @@ typedef struct {
...
@@ -39,10 +67,10 @@ typedef struct {
}
t_complex
;
}
t_complex
;
/*! \brief Datatype for FFT setup
/*! \brief Datatype for FFT setup
*
*
* The fftpack_t type contains all the setup information, e.g. twiddle
* The fftpack_t type contains all the setup information, e.g. twiddle
* factors, necessary to perform an FFT. Internally it is mapped to
* factors, necessary to perform an FFT. Internally it is mapped to
* whatever FFT library we are using, or the built-in FFTPACK if no fast
* whatever FFT library we are using, or the built-in FFTPACK if no fast
* external library is available.
* external library is available.
*/
*/
...
@@ -52,7 +80,7 @@ fftpack_t;
...
@@ -52,7 +80,7 @@ fftpack_t;
/*! \brief Specifier for FFT direction.
/*! \brief Specifier for FFT direction.
*
*
* The definition of the 1D forward transform from input x[] to output y[] is
* The definition of the 1D forward transform from input x[] to output y[] is
* \f[
* \f[
...
@@ -76,10 +104,10 @@ typedef enum fftpack_direction
...
@@ -76,10 +104,10 @@ typedef enum fftpack_direction
/*! \brief Setup a 1-dimensional complex-to-complex transform
/*! \brief Setup a 1-dimensional complex-to-complex transform
*
*
* \param fft Pointer to opaque Gromacs FFT datatype
* \param fft Pointer to opaque Gromacs FFT datatype
* \param nx Length of transform
* \param nx Length of transform
*
*
* \return status - 0 or a standard error message.
* \return status - 0 or a standard error message.
*/
*/
...
@@ -89,24 +117,24 @@ fftpack_init_1d (fftpack_t * fft,
...
@@ -89,24 +117,24 @@ fftpack_init_1d (fftpack_t * fft,
/*! \brief Setup a 2-dimensional complex-to-complex transform
/*! \brief Setup a 2-dimensional complex-to-complex transform
*
*
* \param fft Pointer to opaque Gromacs FFT datatype
* \param fft Pointer to opaque Gromacs FFT datatype
* \param nx Length of transform in first dimension
* \param nx Length of transform in first dimension
* \param ny Length of transform in second dimension
* \param ny Length of transform in second dimension
*
*
* \return status - 0 or a standard error message.
* \return status - 0 or a standard error message.
*
*
*/
*/
int
int
fftpack_init_2d
(
fftpack_t
*
fft
,
fftpack_init_2d
(
fftpack_t
*
fft
,
int
nx
,
int
nx
,
int
ny
);
int
ny
);
/*! \brief Setup a 3-dimensional complex-to-complex transform
/*! \brief Setup a 3-dimensional complex-to-complex transform
*
*
* \param fft Pointer to opaque Gromacs FFT datatype
* \param fft Pointer to opaque Gromacs FFT datatype
* \param nx Length of transform in first dimension
* \param nx Length of transform in first dimension
...
@@ -114,11 +142,11 @@ fftpack_init_2d (fftpack_t * fft,
...
@@ -114,11 +142,11 @@ fftpack_init_2d (fftpack_t * fft,
* \param nz Length of transform in third dimension
* \param nz Length of transform in third dimension
*
*
* \return status - 0 or a standard error message.
* \return status - 0 or a standard error message.
*
*
*/
*/
int
int
fftpack_init_3d
(
fftpack_t
*
fft
,
fftpack_init_3d
(
fftpack_t
*
fft
,
int
nx
,
int
nx
,
int
ny
,
int
ny
,
int
nz
);
int
nz
);
...
@@ -131,17 +159,17 @@ fftpack_init_3d (fftpack_t * fft,
...
@@ -131,17 +159,17 @@ fftpack_init_3d (fftpack_t * fft,
*
*
* \param setup Setup returned from fftpack_init_1d()
* \param setup Setup returned from fftpack_init_1d()
* \param dir Forward or Backward
* \param dir Forward or Backward
* \param in_data Input grid data.
* \param in_data Input grid data.
* \param out_data Output grid data.
* \param out_data Output grid data.
* You can provide the same pointer for in_data and out_data
* You can provide the same pointer for in_data and out_data
* to perform an in-place transform.
* to perform an in-place transform.
*
*
* \return 0 on success, or an error code.
* \return 0 on success, or an error code.
*
*
* \note Data pointers are declared as void, to avoid casting pointers
* \note Data pointers are declared as void, to avoid casting pointers
* depending on your grid type.
* depending on your grid type.
*/
*/
int
int
fftpack_exec_1d
(
fftpack_t
setup
,
fftpack_exec_1d
(
fftpack_t
setup
,
enum
fftpack_direction
dir
,
enum
fftpack_direction
dir
,
t_complex
*
in_data
,
t_complex
*
in_data
,
...
@@ -153,17 +181,17 @@ fftpack_exec_1d (fftpack_t setup,
...
@@ -153,17 +181,17 @@ fftpack_exec_1d (fftpack_t setup,
*
*
* \param setup Setup returned from fftpack_init_1d()
* \param setup Setup returned from fftpack_init_1d()
* \param dir Forward or Backward
* \param dir Forward or Backward
* \param in_data Input grid data.
* \param in_data Input grid data.
* \param out_data Output grid data.
* \param out_data Output grid data.
* You can provide the same pointer for in_data and out_data
* You can provide the same pointer for in_data and out_data
* to perform an in-place transform.
* to perform an in-place transform.
*
*
* \return 0 on success, or an error code.
* \return 0 on success, or an error code.
*
*
* \note Data pointers are declared as void, to avoid casting pointers
* \note Data pointers are declared as void, to avoid casting pointers
* depending on your grid type.
* depending on your grid type.
*/
*/
int
int
fftpack_exec_2d
(
fftpack_t
setup
,
fftpack_exec_2d
(
fftpack_t
setup
,
enum
fftpack_direction
dir
,
enum
fftpack_direction
dir
,
t_complex
*
in_data
,
t_complex
*
in_data
,
...
@@ -176,24 +204,24 @@ fftpack_exec_2d (fftpack_t setup,
...
@@ -176,24 +204,24 @@ fftpack_exec_2d (fftpack_t setup,
*
*
* \param setup Setup returned from fftpack_init_1d()
* \param setup Setup returned from fftpack_init_1d()
* \param dir Forward or Backward
* \param dir Forward or Backward
* \param in_data Input grid data.
* \param in_data Input grid data.
* \param out_data Output grid data.
* \param out_data Output grid data.
* You can provide the same pointer for in_data and out_data
* You can provide the same pointer for in_data and out_data
* to perform an in-place transform.
* to perform an in-place transform.
*
*
* \return 0 on success, or an error code.
* \return 0 on success, or an error code.
*
*
* \note Data pointers are declared as void, to avoid casting pointers
* \note Data pointers are declared as void, to avoid casting pointers
* depending on your grid type.
* depending on your grid type.
*/
*/
int
int
fftpack_exec_3d
(
fftpack_t
setup
,
fftpack_exec_3d
(
fftpack_t
setup
,
enum
fftpack_direction
dir
,
enum
fftpack_direction
dir
,
t_complex
*
in_data
,
t_complex
*
in_data
,
t_complex
*
out_data
);
t_complex
*
out_data
);
/*! \brief Release an FFT setup structure
/*! \brief Release an FFT setup structure
*
*
* Destroy setup and release all allocated memory.
* Destroy setup and release all allocated memory.
*
*
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment