Add private copy constructors to sparse solvers backends

This commit is contained in:
Desire NUENTSA 2012-03-29 19:19:12 +02:00
parent 2d35f88bcf
commit 5dbb646190
5 changed files with 40 additions and 0 deletions

View File

@ -378,6 +378,9 @@ class CholmodDecomposition
bool m_isInitialized;
int m_factorizationIsOk;
int m_analysisIsOk;
private:
CholmodDecomposition(CholmodDecomposition& ) {}
};
namespace internal {

View File

@ -339,6 +339,9 @@ class PastixBase
mutable int m_amalgamation; // level of amalgamation
mutable int m_size; // Size of the matrix
private:
PastixBase(PastixBase& ) {}
};
/** Initialize the PaStiX data structure.
@ -595,6 +598,9 @@ class PastixLU : public PastixBase< PastixLU<_MatrixType> >
using Base::m_dparm;
using Base::m_StrMatTrans;
using Base::m_hasTranspose;
private:
PastixLU(PastixLU& ) {}
};
/** \ingroup PaStiXSupport_Module
@ -674,6 +680,9 @@ class PastixLLT : public PastixBase< PastixLLT<_MatrixType, _UpLo> >
}
protected:
using Base::m_iparm;
private:
PastixLLT(PastixLLT& ) {}
};
/** \ingroup PaStiXSupport_Module
@ -756,6 +765,9 @@ public:
protected:
using Base::m_iparm;
private:
PastixLDLT(PastixLDLT& ) {}
};
namespace internal {

View File

@ -296,6 +296,9 @@ class PardisoImpl
mutable Array<Index,64,1> m_iparm;
mutable IntColVectorType m_perm;
Index m_size;
private:
PardisoImpl(PardisoImpl &) {}
};
template<class Derived>
@ -451,6 +454,9 @@ class PardisoLU : public PardisoImpl< PardisoLU<MatrixType> >
{
m_matrix = matrix;
}
private:
PardisoLU(PardisoLU& ) {}
};
/** \ingroup PardisoSupport_Module
@ -507,6 +513,9 @@ class PardisoLLT : public PardisoImpl< PardisoLLT<MatrixType,_UpLo> >
m_matrix.resize(matrix.rows(), matrix.cols());
m_matrix.template selfadjointView<Upper>() = matrix.template selfadjointView<UpLo>().twistedBy(p_null);
}
private:
PardisoLLT(PardisoLLT& ) {}
};
/** \ingroup PardisoSupport_Module
@ -563,6 +572,9 @@ class PardisoLDLT : public PardisoImpl< PardisoLDLT<MatrixType,Options> >
m_matrix.resize(matrix.rows(), matrix.cols());
m_matrix.template selfadjointView<Upper>() = matrix.template selfadjointView<UpLo>().twistedBy(p_null);
}
private:
PardisoLDLT(PardisoLDLT& ) {}
};
namespace internal {

View File

@ -470,6 +470,9 @@ class SuperLUBase
int m_factorizationIsOk;
int m_analysisIsOk;
mutable bool m_extractedDataAreDirty;
private:
SuperLUBase(SuperLUBase& ) { }
};
@ -604,6 +607,10 @@ class SuperLU : public SuperLUBase<_MatrixType,SuperLU<_MatrixType> >
m_sluOptions.Trans = NOTRANS;
m_sluOptions.ColPerm = COLAMD;
}
private:
SuperLU(SuperLU& ) { }
};
template<typename MatrixType>
@ -916,6 +923,9 @@ class SuperILU : public SuperLUBase<_MatrixType,SuperILU<_MatrixType> >
m_sluOptions.ILU_DropRule = DROP_BASIC;
m_sluOptions.ILU_DropTol = NumTraits<Scalar>::dummy_precision()*10;
}
private:
SuperILU(SuperILU& ) { }
};
template<typename MatrixType>

View File

@ -318,6 +318,9 @@ class UmfPackLU
int m_factorizationIsOk;
int m_analysisIsOk;
mutable bool m_extractedDataAreDirty;
private:
UmfPackLU(UmfPackLU& ) { }
};