1 /*
2    Copyright (c) 2009-2014, Jack Poulson
3    All rights reserved.
4 
5    This file is part of Elemental and is under the BSD 2-Clause License,
6    which can be found in the LICENSE file in the root directory, or at
7    http://opensource.org/licenses/BSD-2-Clause
8 */
9 #pragma once
10 #ifndef ELEM_DISTMATRIX_HPP
11 #define ELEM_DISTMATRIX_HPP
12 
13 namespace elem {
14 
15 struct DistData
16 {
17     Dist colDist, rowDist;
18     Int colAlign, rowAlign;
19     Int root;  // relevant for [o ,o ]/[MD,* ]/[* ,MD]
20     const Grid* grid;
21 
22     template<typename T,Dist U,Dist V>
DistDataelem::DistData23     DistData( const GeneralDistMatrix<T,U,V>& A )
24     : colDist(U), rowDist(V),
25       colAlign(A.ColAlign()), rowAlign(A.RowAlign()),
26       root(A.Root()), grid(&A.Grid())
27     { }
28 };
29 
30 } // namespace elem
31 
32 #include "./DistMatrix/Abstract.hpp"
33 #include "./DistMatrix/General.hpp"
34 #include "./DistMatrix/CIRC_CIRC.hpp"
35 #include "./DistMatrix/MC_MR.hpp"
36 #include "./DistMatrix/MC_STAR.hpp"
37 #include "./DistMatrix/MD_STAR.hpp"
38 #include "./DistMatrix/MR_MC.hpp"
39 #include "./DistMatrix/MR_STAR.hpp"
40 #include "./DistMatrix/STAR_MC.hpp"
41 #include "./DistMatrix/STAR_MD.hpp"
42 #include "./DistMatrix/STAR_MR.hpp"
43 #include "./DistMatrix/STAR_STAR.hpp"
44 #include "./DistMatrix/STAR_VC.hpp"
45 #include "./DistMatrix/STAR_VR.hpp"
46 #include "./DistMatrix/VC_STAR.hpp"
47 #include "./DistMatrix/VR_STAR.hpp"
48 
49 #endif // ifndef ELEM_DISTMATRIX_HPP
50