1 /* 2 This file is part of MADNESS. 3 4 Copyright (C) 2007,2010 Oak Ridge National Laboratory 5 6 This program is free software; you can redistribute it and/or modify 7 it under the terms of the GNU General Public License as published by 8 the Free Software Foundation; either version 2 of the License, or 9 (at your option) any later version. 10 11 This program is distributed in the hope that it will be useful, 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 GNU General Public License for more details. 15 16 You should have received a copy of the GNU General Public License 17 along with this program; if not, write to the Free Software 18 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 19 20 For more information please contact: 21 22 Robert J. Harrison 23 Oak Ridge National Laboratory 24 One Bethel Valley Road 25 P.O. Box 2008, MS-6367 26 27 email: harrisonrj@ornl.gov 28 tel: 865-241-3937 29 fax: 865-572-0680 30 31 $Id$ 32 */ 33 #ifndef MADNESS_MRA_FUNCTYPEDEFS_H__INCLUDED 34 #define MADNESS_MRA_FUNCTYPEDEFS_H__INCLUDED 35 36 /// \file mra/functypedefs.h 37 /// \brief Provides typedefs to hide use of templates and to increase interoperability 38 39 namespace madness { 40 typedef Tensor<double> real_tensor; 41 typedef Tensor<double_complex> complex_tensor; 42 43 typedef Tensor<double> tensor_real; 44 typedef Tensor<double_complex> tensor_complex; 45 46 typedef Vector<double,1> coord_1d; 47 typedef Vector<double,2> coord_2d; 48 typedef Vector<double,3> coord_3d; 49 typedef Vector<double,4> coord_4d; 50 typedef Vector<double,5> coord_5d; 51 typedef Vector<double,6> coord_6d; 52 53 typedef std::vector<double> vector_real; 54 typedef std::vector< std::complex<double> > vector_complex; 55 56 typedef std::vector< Vector<double,1> > vector_coord_1d; 57 typedef std::vector< Vector<double,2> > vector_coord_2d; 58 typedef std::vector< Vector<double,3> > vector_coord_3d; 59 typedef std::vector< Vector<double,4> > vector_coord_4d; 60 typedef std::vector< Vector<double,5> > vector_coord_5d; 61 typedef std::vector< Vector<double,6> > vector_coord_6d; 62 63 typedef Function<double,1> real_function_1d; 64 typedef Function<double,2> real_function_2d; 65 typedef Function<double,3> real_function_3d; 66 typedef Function<double,4> real_function_4d; 67 typedef Function<double,5> real_function_5d; 68 typedef Function<double,6> real_function_6d; 69 70 typedef Function<double_complex,1> complex_function_1d; 71 typedef Function<double_complex,2> complex_function_2d; 72 typedef Function<double_complex,3> complex_function_3d; 73 typedef Function<double_complex,4> complex_function_4d; 74 typedef Function<double_complex,5> complex_function_5d; 75 typedef Function<double_complex,6> complex_function_6d; 76 77 typedef std::vector<real_function_1d> vector_real_function_1d; 78 typedef std::vector<real_function_2d> vector_real_function_2d; 79 typedef std::vector<real_function_3d> vector_real_function_3d; 80 typedef std::vector<real_function_4d> vector_real_function_4d; 81 typedef std::vector<real_function_5d> vector_real_function_5d; 82 typedef std::vector<real_function_6d> vector_real_function_6d; 83 84 typedef std::vector<complex_function_1d> vector_complex_function_1d; 85 typedef std::vector<complex_function_2d> vector_complex_function_2d; 86 typedef std::vector<complex_function_3d> vector_complex_function_3d; 87 typedef std::vector<complex_function_4d> vector_complex_function_4d; 88 typedef std::vector<complex_function_5d> vector_complex_function_5d; 89 typedef std::vector<complex_function_6d> vector_complex_function_6d; 90 91 typedef FunctionFactory<double,1> real_factory_1d; 92 typedef FunctionFactory<double,2> real_factory_2d; 93 typedef FunctionFactory<double,3> real_factory_3d; 94 typedef FunctionFactory<double,4> real_factory_4d; 95 typedef FunctionFactory<double,5> real_factory_5d; 96 typedef FunctionFactory<double,6> real_factory_6d; 97 98 typedef FunctionFactory<double_complex,1> complex_factory_1d; 99 typedef FunctionFactory<double_complex,2> complex_factory_2d; 100 typedef FunctionFactory<double_complex,3> complex_factory_3d; 101 typedef FunctionFactory<double_complex,4> complex_factory_4d; 102 typedef FunctionFactory<double_complex,5> complex_factory_5d; 103 typedef FunctionFactory<double_complex,6> complex_factory_6d; 104 105 typedef std::shared_ptr< FunctionFunctorInterface<double,1> > real_functor_1d; 106 typedef std::shared_ptr< FunctionFunctorInterface<double,2> > real_functor_2d; 107 typedef std::shared_ptr< FunctionFunctorInterface<double,3> > real_functor_3d; 108 typedef std::shared_ptr< FunctionFunctorInterface<double,4> > real_functor_4d; 109 typedef std::shared_ptr< FunctionFunctorInterface<double,5> > real_functor_5d; 110 typedef std::shared_ptr< FunctionFunctorInterface<double,6> > real_functor_6d; 111 112 typedef std::shared_ptr< FunctionFunctorInterface<double_complex,1> > complex_functor_1d; 113 typedef std::shared_ptr< FunctionFunctorInterface<double_complex,2> > complex_functor_2d; 114 typedef std::shared_ptr< FunctionFunctorInterface<double_complex,3> > complex_functor_3d; 115 typedef std::shared_ptr< FunctionFunctorInterface<double_complex,4> > complex_functor_4d; 116 typedef std::shared_ptr< FunctionFunctorInterface<double_complex,5> > complex_functor_5d; 117 typedef std::shared_ptr< FunctionFunctorInterface<double_complex,6> > complex_functor_6d; 118 119 typedef SeparatedConvolution<double,1> real_convolution_1d; 120 typedef SeparatedConvolution<double,2> real_convolution_2d; 121 typedef SeparatedConvolution<double,3> real_convolution_3d; 122 typedef SeparatedConvolution<double,4> real_convolution_4d; 123 typedef SeparatedConvolution<double,5> real_convolution_5d; 124 typedef SeparatedConvolution<double,6> real_convolution_6d; 125 126 typedef SeparatedConvolution<double_complex,1> complex_convolution_1d; 127 typedef SeparatedConvolution<double_complex,2> complex_convolution_2d; 128 typedef SeparatedConvolution<double_complex,3> complex_convolution_3d; 129 typedef SeparatedConvolution<double_complex,4> complex_convolution_4d; 130 typedef SeparatedConvolution<double_complex,5> complex_convolution_5d; 131 typedef SeparatedConvolution<double_complex,6> complex_convolution_6d; 132 133 typedef std::shared_ptr<real_convolution_1d> real_convolution_1d_ptr; 134 typedef std::shared_ptr<real_convolution_2d> real_convolution_2d_ptr; 135 typedef std::shared_ptr<real_convolution_3d> real_convolution_3d_ptr; 136 typedef std::shared_ptr<real_convolution_4d> real_convolution_4d_ptr; 137 typedef std::shared_ptr<real_convolution_5d> real_convolution_5d_ptr; 138 typedef std::shared_ptr<real_convolution_6d> real_convolution_6d_ptr; 139 140 typedef std::shared_ptr<complex_convolution_1d> complex_convolution_1d_ptr; 141 typedef std::shared_ptr<complex_convolution_2d> complex_convolution_2d_ptr; 142 typedef std::shared_ptr<complex_convolution_3d> complex_convolution_3d_ptr; 143 typedef std::shared_ptr<complex_convolution_4d> complex_convolution_4d_ptr; 144 typedef std::shared_ptr<complex_convolution_5d> complex_convolution_5d_ptr; 145 typedef std::shared_ptr<complex_convolution_6d> complex_convolution_6d_ptr; 146 147 typedef std::shared_ptr< WorldDCPmapInterface< Key<1> > > pmap_1d; 148 typedef std::shared_ptr< WorldDCPmapInterface< Key<2> > > pmap_2d; 149 typedef std::shared_ptr< WorldDCPmapInterface< Key<3> > > pmap_3d; 150 typedef std::shared_ptr< WorldDCPmapInterface< Key<4> > > pmap_4d; 151 typedef std::shared_ptr< WorldDCPmapInterface< Key<5> > > pmap_5d; 152 typedef std::shared_ptr< WorldDCPmapInterface< Key<6> > > pmap_6d; 153 154 typedef FunctionImpl<double,1> real_funcimpl_1d; 155 typedef FunctionImpl<double,2> real_funcimpl_2d; 156 typedef FunctionImpl<double,3> real_funcimpl_3d; 157 typedef FunctionImpl<double,4> real_funcimpl_4d; 158 typedef FunctionImpl<double,5> real_funcimpl_5d; 159 typedef FunctionImpl<double,6> real_funcimpl_6d; 160 161 typedef FunctionImpl<double_complex,1> complex_funcimpl_1d; 162 typedef FunctionImpl<double_complex,2> complex_funcimpl_2d; 163 typedef FunctionImpl<double_complex,3> complex_funcimpl_3d; 164 typedef FunctionImpl<double_complex,4> complex_funcimpl_4d; 165 typedef FunctionImpl<double_complex,5> complex_funcimpl_5d; 166 typedef FunctionImpl<double_complex,6> complex_funcimpl_6d; 167 168 typedef Derivative<double,1> real_derivative_1d; 169 typedef Derivative<double,2> real_derivative_2d; 170 typedef Derivative<double,3> real_derivative_3d; 171 typedef Derivative<double,4> real_derivative_4d; 172 typedef Derivative<double,5> real_derivative_5d; 173 typedef Derivative<double,6> real_derivative_6d; 174 175 typedef Derivative<double_complex,1> complex_derivative_1d; 176 typedef Derivative<double_complex,2> complex_derivative_2d; 177 typedef Derivative<double_complex,3> complex_derivative_3d; 178 typedef Derivative<double_complex,4> complex_derivative_4d; 179 typedef Derivative<double_complex,5> complex_derivative_5d; 180 typedef Derivative<double_complex,6> complex_derivative_6d; 181 182 typedef FunctionDefaults<1> function_defaults_1d; 183 typedef FunctionDefaults<2> function_defaults_2d; 184 typedef FunctionDefaults<3> function_defaults_3d; 185 typedef FunctionDefaults<4> function_defaults_4d; 186 typedef FunctionDefaults<5> function_defaults_5d; 187 typedef FunctionDefaults<6> function_defaults_6d; 188 } 189 190 #endif // MADNESS_MRA_MRA_H__INCLUDED 191