*** empty log message ***
This commit is contained in:
parent
c96c96ba08
commit
41d8c62640
@ -524,6 +524,9 @@ istream& operator>>(istream &s, fourindex<I,T> &x)
|
|||||||
//we use a general template forward declaration, but then it has to be done differently for (almost) each case
|
//we use a general template forward declaration, but then it has to be done differently for (almost) each case
|
||||||
//by means of partial template specialization
|
//by means of partial template specialization
|
||||||
|
|
||||||
|
//note - loops for the twoelectronrealmullikan integral to be unique and in canonical order
|
||||||
|
// i=1..n, j=1..i, k=1..i, l=1..(i==k?j:k)
|
||||||
|
|
||||||
template<fourindexsymtype S, class T, class DUMMY> class fourindex_dense;
|
template<fourindexsymtype S, class T, class DUMMY> class fourindex_dense;
|
||||||
|
|
||||||
//make it as a derived class in order to be able to use it in a base class context - "supermatrix" operations
|
//make it as a derived class in order to be able to use it in a base class context - "supermatrix" operations
|
||||||
|
26
smat.h
26
smat.h
@ -283,12 +283,38 @@ inline T SMat_index(T i, T j)
|
|||||||
return (i>=j) ? i*(i+1)/2+j : j*(j+1)/2+i;
|
return (i>=j) ? i*(i+1)/2+j : j*(j+1)/2+i;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
inline T SMat_index_igej(T i, T j)
|
||||||
|
{
|
||||||
|
return i*(i+1)/2+j;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
inline T SMat_index_ilej(T i, T j)
|
||||||
|
{
|
||||||
|
return j*(j+1)/2+i;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
inline T SMat_index_1(T i, T j)
|
inline T SMat_index_1(T i, T j)
|
||||||
{
|
{
|
||||||
return (i>=j)? i*(i-1)/2+j-1 : j*(j-1)/2+i-1;
|
return (i>=j)? i*(i-1)/2+j-1 : j*(j-1)/2+i-1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
inline T SMat_index_1igej(T i, T j)
|
||||||
|
{
|
||||||
|
return i*(i-1)/2+j-1;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
inline T SMat_index_1ilej(T i, T j)
|
||||||
|
{
|
||||||
|
return j*(j-1)/2+i-1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// access the element, 2-dim array case
|
// access the element, 2-dim array case
|
||||||
template <typename T>
|
template <typename T>
|
||||||
inline T & NRSMat<T>::operator()(const int i, const int j)
|
inline T & NRSMat<T>::operator()(const int i, const int j)
|
||||||
|
Loading…
Reference in New Issue
Block a user