intermediate commit
This commit is contained in:
parent
3635cf5091
commit
91417e9aa0
4 changed files with 13 additions and 13 deletions
|
@ -660,13 +660,14 @@ namespace MultiArrayTools
|
||||||
MAOps2...>(op, *this, secs...);
|
MAOps2...>(op, *this, secs...);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
template <typename T, class Operation, class... MAOps>
|
template <typename T, class Operation, class... MAOps>
|
||||||
template <class Range2, class ContractOperation>
|
template <class Range2, class ContractOperation>
|
||||||
MultiArrayContraction<T,ContractOperation,Range2,MultiArrayOperation<T,Operation,MAOps...> >
|
MultiArrayContraction<T,ContractOperation,Range2,MultiArrayOperation<T,Operation,MAOps...> >
|
||||||
MultiArrayOperation<T,Operation,MAOps...>::
|
MultiArrayOperation<T,Operation,MAOps...>::
|
||||||
contract(const ContractOperation& cop, const std::string& indexName) const
|
contract(const ContractOperation& cop, const std::string& indexName) const
|
||||||
{
|
{
|
||||||
|
#error "HERE"
|
||||||
typename Range2::IndexType* ind = dynamic_cast<typename Range2::IndexType*>( mIndex.getLinked(indexName) );
|
typename Range2::IndexType* ind = dynamic_cast<typename Range2::IndexType*>( mIndex.getLinked(indexName) );
|
||||||
//typename Range2::IndexType ind = Range2().begin();
|
//typename Range2::IndexType ind = Range2().begin();
|
||||||
//ind.name(indexName);
|
//ind.name(indexName);
|
||||||
|
@ -674,7 +675,8 @@ namespace MultiArrayTools
|
||||||
MultiArrayOperation<T,Operation,MAOps...> >(cop, *this, *ind);
|
MultiArrayOperation<T,Operation,MAOps...> >(cop, *this, *ind);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
template <typename T, class Operation, class... MAOps>
|
template <typename T, class Operation, class... MAOps>
|
||||||
template <class Range2, class ContractOperation>
|
template <class Range2, class ContractOperation>
|
||||||
MultiArrayContraction<T,ContractOperation,Range2,MultiArrayOperation<T,Operation,MAOps...> >
|
MultiArrayContraction<T,ContractOperation,Range2,MultiArrayOperation<T,Operation,MAOps...> >
|
||||||
|
|
|
@ -258,12 +258,12 @@ namespace MultiArrayTools
|
||||||
MultiArrayOperation<T,Operation2,MultiArrayOperation<T,Operation,MAOps...>,MAOps2...>
|
MultiArrayOperation<T,Operation2,MultiArrayOperation<T,Operation,MAOps...>,MAOps2...>
|
||||||
operator()(const Operation2& op, const MAOps2&... secs) const;
|
operator()(const Operation2& op, const MAOps2&... secs) const;
|
||||||
|
|
||||||
/*
|
|
||||||
template <class Range2, class ContractOperation>
|
template <class Range2, class ContractOperation>
|
||||||
MultiArrayContraction<T,ContractOperation,Range2,MultiArrayOperation<T,Operation,MAOps...> >
|
MultiArrayContraction<T,ContractOperation,Range2,MultiArrayOperation<T,Operation,MAOps...> >
|
||||||
contract(const ContractOperation& cop, const std::string& indexName) const;
|
contract(const ContractOperation& cop, const std::string& indexName) const;
|
||||||
|
|
||||||
|
/*
|
||||||
template <class Range2, class ContractOperation>
|
template <class Range2, class ContractOperation>
|
||||||
MultiArrayContraction<T,ContractOperation,Range2,MultiArrayOperation<T,Operation,MAOps...> >
|
MultiArrayContraction<T,ContractOperation,Range2,MultiArrayOperation<T,Operation,MAOps...> >
|
||||||
contract(const ContractOperation& cop, const std::string& indexName,
|
contract(const ContractOperation& cop, const std::string& indexName,
|
||||||
|
@ -306,7 +306,6 @@ namespace MultiArrayTools
|
||||||
MultiArrayContraction(const ContractOperation& cop,
|
MultiArrayContraction(const ContractOperation& cop,
|
||||||
const typename Range::IndexType& runIndex,
|
const typename Range::IndexType& runIndex,
|
||||||
const MAOps&... mao);
|
const MAOps&... mao);
|
||||||
|
|
||||||
|
|
||||||
MultiArrayContraction(const ContractOperation& cop,
|
MultiArrayContraction(const ContractOperation& cop,
|
||||||
const typename Range::IndexType& runIndex,
|
const typename Range::IndexType& runIndex,
|
||||||
|
|
|
@ -56,24 +56,24 @@ namespace MultiArrayTools
|
||||||
|
|
||||||
// specializations
|
// specializations
|
||||||
|
|
||||||
SingleRange<int,RangeType::SPACE>::SingleRange(int begin, int end) :
|
SingleRange<int,RangeType::SPACE>::SingleRange(size_t ext) :
|
||||||
RangeBase<SingleIndex<int,RangeType::SPACE> >(),
|
RangeBase<SingleIndex<int,RangeType::SPACE> >(),
|
||||||
mBegin(begin), mEnd(end) {}
|
mExt(ext) {}
|
||||||
|
|
||||||
int SingleRange<int,RangeType::SPACE>::get(size_t pos) const
|
int SingleRange<int,RangeType::SPACE>::get(size_t pos) const
|
||||||
{
|
{
|
||||||
return mBegin + pos;
|
return (pos <= mExt / 2) ? static_cast<int>( pos ) : static_cast<int>( pos ) - static_cast<int>( mExt );
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t SingleRange<int,RangeType::SPACE>::getMeta(int metaPos) const
|
size_t SingleRange<int,RangeType::SPACE>::getMeta(int metaPos) const
|
||||||
{
|
{
|
||||||
return metaPos - mBegin;
|
return (metaPos < 0) ? metaPos + mExt : metaPos;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
size_t SingleRange<int,RangeType::SPACE>::size() const
|
size_t SingleRange<int,RangeType::SPACE>::size() const
|
||||||
{
|
{
|
||||||
return mEnd - mBegin;
|
return mExt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -96,7 +96,7 @@ namespace MultiArrayTools
|
||||||
|
|
||||||
DEFAULT_MEMBERS(SingleRange);
|
DEFAULT_MEMBERS(SingleRange);
|
||||||
|
|
||||||
SingleRange(int begin, int end);
|
SingleRange(size_t ext);
|
||||||
|
|
||||||
virtual size_t size() const override;
|
virtual size_t size() const override;
|
||||||
|
|
||||||
|
@ -109,8 +109,7 @@ namespace MultiArrayTools
|
||||||
SingleIndex<int,RangeType::SPACE> end() const override;
|
SingleIndex<int,RangeType::SPACE> end() const override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
int mBegin;
|
size_t mExt;
|
||||||
int mEnd;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
|
|
Loading…
Reference in a new issue