00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00024
00025 #include <qvmath/qvtensorindex.h>
00026
00027 int QVTensorIndex::nextIndexId = 2;
00028
00029 std::ostream& operator<<( std::ostream &os, const QVTensorIndex &tensorIndex)
00030 {
00031 os << ((tensorIndex.id<0)?"cov ":"") << tensorIndex.dim;
00032 return os;
00033 }
00034
00035 QMap<int, QVector<int> > QVTensorIndexValues::getIndexesValues() const
00036 {
00037 QMap<int, QVector<int> > result;
00038 for (int i = 0; i < size(); i++)
00039 for (int j = at(i).rangeMin; j <= at(i).rangeMax; j++)
00040 result[ABS(at(i).id)].append(j);
00041
00042 return result;
00043 }
00044
00045 QMap<int, QVector<int> > QVTensorValence::getIndexesPositions() const
00046 {
00047 QMap<int, QVector<int> > result;
00048 for (int i = 0, position = 0; i < size(); i++)
00049 result[ABS(at(i).id)].append(position++);
00050
00051 return result;
00052 }
00053