Dynare++: make tensor containers assignable
parent
58bdee12c3
commit
8751de896b
|
@ -71,7 +71,7 @@ IntSequence::IntSequence(int i, const IntSequence &s, int pos)
|
|||
operator[](jj+1) = s[jj];
|
||||
}
|
||||
|
||||
const IntSequence &
|
||||
IntSequence &
|
||||
IntSequence::operator=(const IntSequence &s)
|
||||
{
|
||||
TL_RAISE_IF(length != s.length, "Wrong length for in-place IntSequence::operator=");
|
||||
|
@ -79,7 +79,7 @@ IntSequence::operator=(const IntSequence &s)
|
|||
return *this;
|
||||
}
|
||||
|
||||
const IntSequence &
|
||||
IntSequence &
|
||||
IntSequence::operator=(IntSequence &&s)
|
||||
{
|
||||
TL_RAISE_IF(length != s.length, "Wrong length for in-place IntSequence::operator=");
|
||||
|
|
|
@ -98,8 +98,8 @@ public:
|
|||
// Inserts an element at a given position
|
||||
IntSequence(int i, const IntSequence &s, int pos);
|
||||
|
||||
const IntSequence &operator=(const IntSequence &s);
|
||||
const IntSequence &operator=(IntSequence &&s);
|
||||
IntSequence &operator=(const IntSequence &s);
|
||||
IntSequence &operator=(IntSequence &&s);
|
||||
virtual ~IntSequence()
|
||||
{
|
||||
if (destroy)
|
||||
|
|
|
@ -71,10 +71,6 @@ public:
|
|||
: IntSequence(std::move(init))
|
||||
{
|
||||
}
|
||||
// Copy constructor
|
||||
Symmetry(const Symmetry &s) = default;
|
||||
// Move constructor
|
||||
Symmetry(Symmetry &&s) = default;
|
||||
// Constructor of implied symmetry for a symmetry and an equivalence class
|
||||
Symmetry(const Symmetry &s, const OrdSequence &cl)
|
||||
: IntSequence(s, cl.getData())
|
||||
|
|
|
@ -129,6 +129,15 @@ public:
|
|||
insert(std::make_unique<_Ttype>(first_row, num, *(it.second)));
|
||||
}
|
||||
|
||||
TensorContainer<_Ttype> &operator=(const TensorContainer<_Ttype> &c)
|
||||
{
|
||||
n = c.n;
|
||||
m.clear();
|
||||
for (const auto &it : c.m)
|
||||
insert(std::make_unique<_Ttype>(*(it.second)));
|
||||
}
|
||||
TensorContainer<_Ttype> &operator=(TensorContainer<_Ttype> &&) = default;
|
||||
|
||||
const _Ttype &
|
||||
get(const Symmetry &s) const
|
||||
{
|
||||
|
@ -302,8 +311,6 @@ public:
|
|||
: TensorContainer<UGSTensor>(nn)
|
||||
{
|
||||
}
|
||||
UGSContainer(const UGSContainer &) = default;
|
||||
UGSContainer(UGSContainer &&) = default;
|
||||
UGSContainer(const FGSContainer &c);
|
||||
void multAndAdd(const UGSTensor &t, UGSTensor &out) const;
|
||||
};
|
||||
|
@ -329,8 +336,6 @@ public:
|
|||
: TensorContainer<FGSTensor>(nn)
|
||||
{
|
||||
}
|
||||
FGSContainer(const FGSContainer &) = default;
|
||||
FGSContainer(FGSContainer &&) = default;
|
||||
FGSContainer(const UGSContainer &c);
|
||||
void multAndAdd(const FGSTensor &t, FGSTensor &out) const;
|
||||
void multAndAdd(const UGSTensor &t, FGSTensor &out) const;
|
||||
|
|
Loading…
Reference in New Issue