added (p,x,y,z) -> (yy,py) projection function
This commit is contained in:
parent
8c2ced598f
commit
5a5d8883b4
2 changed files with 37 additions and 0 deletions
|
@ -49,4 +49,21 @@ namespace MultiArrayTools
|
|||
i.template getIndex<2>().getMetaPos() * i.template getIndex<2>().getMetaPos() );
|
||||
return out;
|
||||
}
|
||||
|
||||
pyProjFunction::pyProjFunction(const OutRange& outRange) : mOutRange(new OutRange( outRange )),
|
||||
out(mOutRange->begin()) {}
|
||||
|
||||
pyProjFunction::OutIndex pyProjFunction::operator()(const InIndex& i) const
|
||||
{
|
||||
DistIndex& di = out.template getIndex<0>();
|
||||
ScalProdIndex& si = out.template getIndex<1>();
|
||||
di.atMeta( i.template getIndex<1>().getMetaPos() * i.template getIndex<1>().getMetaPos() +
|
||||
i.template getIndex<2>().getMetaPos() * i.template getIndex<2>().getMetaPos() +
|
||||
i.template getIndex<3>().getMetaPos() * i.template getIndex<3>().getMetaPos() );
|
||||
|
||||
si.atMeta( i.template getIndex<1>().getMetaPos() * i.template getIndex<0>().getMetaPos()[0]
|
||||
i.template getIndex<2>().getMetaPos() * i.template getIndex<0>().getMetaPos()[1]
|
||||
i.template getIndex<3>().getMetaPos() * i.template getIndex<0>().getMetaPos()[2] );
|
||||
return out;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -62,6 +62,26 @@ namespace MultiArrayTools
|
|||
std::shared_ptr<OutRange> mOutRange;
|
||||
mutable OutIndex out;
|
||||
};
|
||||
|
||||
class pyProjFunction
|
||||
{
|
||||
public:
|
||||
typedef SingleIndex<int,RangeType::SPACE> CoordIndex;
|
||||
typedef SingleIndex<std::array<int,3>,RangeType::MOMETUM> MomIndex;
|
||||
typedef MultiIndex<MomIndex,CoordIndex,CoordIndex,CoordIndex> InIndex;
|
||||
typedef SingleIndex<size_t,RangeType::DISTANCE> DistIndex;
|
||||
typedef SingleIndex<int,RangeType::SPACE> ScalProdIndex;
|
||||
typedef MultiIndex<DistIndex,ScalProdIndex> OutIndex;
|
||||
|
||||
DEFAULT_MEMBERS(pyProjFunction);
|
||||
|
||||
pyProjFunction(const OutRange& outRange);
|
||||
OutIndex operator()(const InIndex& i) const;
|
||||
|
||||
private:
|
||||
std::shared_ptr<OutRange> mOutRange;
|
||||
mutable OutIndex out;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue