TiledArray  0.7.0
tiledarray_fwd.h
Go to the documentation of this file.
1 /*
2  * This file is a part of TiledArray.
3  * Copyright (C) 2014 Virginia Tech
4  *
5  * This program is free software: you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation, either version 3 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program. If not, see <http://www.gnu.org/licenses/>.
17  *
18  */
19 
20 #ifndef TILEDARRAY_FWD_H__INCLUDED
21 #define TILEDARRAY_FWD_H__INCLUDED
22 
23 #include <complex>
24 
25 namespace Eigen { // fwd define Eigen's aligned allocator for TiledArray::Tensor
26  template<class>
27  class aligned_allocator;
28 } // namespace Eigen
29 
30 namespace TiledArray {
31 
32  // Ranges
33  class TiledRange1;
34  class TiledRange;
35 
36  // TiledArray Policy
37  class DensePolicy;
38  class SparsePolicy;
39 
40  // TiledArray Tensors
41  template<typename, typename>
42  class Tensor;
43 
50 
51  // TiledArray Arrays
52  template <typename, typename> class DistArray;
53 
54 
55  // Dense Array Typedefs
56  template <typename T>
64 
65  // Sparse Array Typedefs
66  template <typename T>
74 
75  // type alias for backward compatibility: the old Array has static type, DistArray is rank-polymorphic
76  template <typename T, unsigned int = 0, typename Tile = Tensor<T, Eigen::aligned_allocator<T> >, typename Policy = DensePolicy>
78 
79 } // namespace TiledArray
80 
81 #ifndef TILEDARRAY_DISABLE_NAMESPACE_TA
82 namespace TA = TiledArray;
83 #endif // TILEDARRAY_DISABLE_NAMESPACE_TA
84 
85 #endif // TILEDARRAY_FWD_H__INCLUDED
TArray< std::complex< float > > TArrayC
An N-dimensional tensor object.
Definition: foreach.h:40
Tensor< int, Eigen::aligned_allocator< int > > TensorI
Tensor< std::complex< double >, Eigen::aligned_allocator< std::complex< double > > > TensorZ
TArray< double > TArrayD
Forward declarations.
Definition: foreach.h:32
TSpArray< std::complex< double > > TSpArrayZ
TArray< std::complex< double > > TArrayZ
TArray< long > TArrayL
Tensor< double, Eigen::aligned_allocator< double > > TensorD
TArray< int > TArrayI
Tensor< long, Eigen::aligned_allocator< long > > TensorL
Forward declarations.
Definition: clone.h:32
TSpArray< float > TSpArrayF
Tensor< float, Eigen::aligned_allocator< float > > TensorF
TSpArray< std::complex< float > > TSpArrayC
Tensor< std::complex< float >, Eigen::aligned_allocator< std::complex< float > > > TensorC
TSpArray< double > TSpArrayD
TArray< float > TArrayF
TSpArray< int > TSpArrayI
TSpArray< long > TSpArrayL