v2DM-DOCI  1.0
UniMatrix.h
Go to the documentation of this file.
1 /*
2  * @BEGIN LICENSE
3  *
4  * Copyright (C) 2014-2015 Ward Poelmans
5  *
6  * This file is part of v2DM-DOCI.
7  *
8  * v2DM-DOCI is free software: you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation, either version 3 of the License, or
11  * (at your option) any later version.
12  *
13  * Foobar is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
20  *
21  * @END LICENSE
22  */
23 
24 #ifndef UNITARY_MATRIX_H
25 #define UNITARY_MATRIX_H
26 
27 #include <iostream>
28 
29 #include "BlockStructure.h"
30 
31 namespace simanneal { class OptIndex; }
32 
33 namespace doci2DM
34 {
35 
40 {
50  friend std::ostream &operator<<(std::ostream &,const doci2DM::UnitaryMatrix &);
51 
52  public:
53 
55 
56  UnitaryMatrix(int);
57 
58  UnitaryMatrix(const UnitaryMatrix &) = default;
59 
60  UnitaryMatrix(UnitaryMatrix &&) = default;
61 
62  virtual ~UnitaryMatrix() = default;
63 
64  UnitaryMatrix &operator=(const UnitaryMatrix &) = default;
65 
66  UnitaryMatrix &operator=(UnitaryMatrix &&) = default;
67 
68  using BlockMatrix::operator=;
69 
70  private:
71 
72  std::unique_ptr<simanneal::OptIndex> index;
73 
74 };
75 
76 }
77 
78 #endif /* UNITARY_MATRIX_H */
79 
80 /* vim: set ts=3 sw=3 expandtab :*/
UnitaryMatrix(const simanneal::OptIndex &)
Definition: UniMatrix.cpp:46
virtual ~UnitaryMatrix()=default
std::unique_ptr< simanneal::OptIndex > index
Definition: UniMatrix.h:72
friend std::ostream & operator<<(std::ostream &, const doci2DM::UnitaryMatrix &)
UnitaryMatrix & operator=(const UnitaryMatrix &)=default