mirror of
https://github.com/paboyle/Grid.git
synced 2024-11-10 07:55:35 +00:00
Using boolean logic inside enable_if is more elegant
This commit is contained in:
parent
1771f97551
commit
40192841a4
@ -11,7 +11,7 @@ namespace Grid{
|
|||||||
////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
template<class vsimd,class scalar>
|
template<class vsimd,class scalar>
|
||||||
inline void extract(typename std::enable_if<isGridTensor<vsimd>::notvalue, const vsimd >::type * y,
|
inline void extract(typename std::enable_if<!isGridTensor<vsimd>::value, const vsimd >::type * y,
|
||||||
std::vector<scalar *> &extracted,int offset){
|
std::vector<scalar *> &extracted,int offset){
|
||||||
// FIXME: bounce off memory is painful
|
// FIXME: bounce off memory is painful
|
||||||
int Nextr=extracted.size();
|
int Nextr=extracted.size();
|
||||||
@ -27,7 +27,7 @@ inline void extract(typename std::enable_if<isGridTensor<vsimd>::notvalue, const
|
|||||||
// Merge simd vector from array of scalars to pointer array with offset
|
// Merge simd vector from array of scalars to pointer array with offset
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
template<class vsimd,class scalar>
|
template<class vsimd,class scalar>
|
||||||
inline void merge(typename std::enable_if<isGridTensor<vsimd>::notvalue, vsimd >::type * y,
|
inline void merge(typename std::enable_if<!isGridTensor<vsimd>::value, vsimd >::type * y,
|
||||||
std::vector<scalar *> &extracted,int offset){
|
std::vector<scalar *> &extracted,int offset){
|
||||||
int Nextr=extracted.size();
|
int Nextr=extracted.size();
|
||||||
int Nsimd=vsimd::Nsimd();
|
int Nsimd=vsimd::Nsimd();
|
||||||
@ -47,7 +47,7 @@ inline void merge(typename std::enable_if<isGridTensor<vsimd>::notvalue, vsimd >
|
|||||||
// Extract a fundamental vector type to scalar array
|
// Extract a fundamental vector type to scalar array
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
template<class vsimd,class scalar>
|
template<class vsimd,class scalar>
|
||||||
inline void extract(typename std::enable_if<isGridTensor<vsimd>::notvalue, const vsimd >::type &y,std::vector<scalar> &extracted){
|
inline void extract(typename std::enable_if<!isGridTensor<vsimd>::value, const vsimd >::type &y,std::vector<scalar> &extracted){
|
||||||
|
|
||||||
int Nextr=extracted.size();
|
int Nextr=extracted.size();
|
||||||
int Nsimd=vsimd::Nsimd();
|
int Nsimd=vsimd::Nsimd();
|
||||||
@ -66,7 +66,7 @@ inline void extract(typename std::enable_if<isGridTensor<vsimd>::notvalue, const
|
|||||||
// Merge simd vector from array of scalars
|
// Merge simd vector from array of scalars
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
template<class vsimd,class scalar>
|
template<class vsimd,class scalar>
|
||||||
inline void merge(typename std::enable_if<isGridTensor<vsimd>::notvalue, vsimd >::type &y,std::vector<scalar> &extracted){
|
inline void merge(typename std::enable_if<!isGridTensor<vsimd>::value, vsimd >::type &y,std::vector<scalar> &extracted){
|
||||||
int Nextr=extracted.size();
|
int Nextr=extracted.size();
|
||||||
int Nsimd=vsimd::Nsimd();
|
int Nsimd=vsimd::Nsimd();
|
||||||
int s=Nsimd/Nextr;
|
int s=Nsimd/Nextr;
|
||||||
@ -80,7 +80,7 @@ inline void merge(typename std::enable_if<isGridTensor<vsimd>::notvalue, vsimd >
|
|||||||
|
|
||||||
};
|
};
|
||||||
template<class vsimd,class scalar>
|
template<class vsimd,class scalar>
|
||||||
inline void AmergeA(typename std::enable_if<isGridTensor<vsimd>::notvalue, vsimd >::type &y,std::vector<scalar> &extracted){
|
inline void AmergeA(typename std::enable_if<!isGridTensor<vsimd>::value, vsimd >::type &y,std::vector<scalar> &extracted){
|
||||||
int Nextr=extracted.size();
|
int Nextr=extracted.size();
|
||||||
int Nsimd=vsimd::Nsimd();
|
int Nsimd=vsimd::Nsimd();
|
||||||
int s=Nsimd/Nextr;
|
int s=Nsimd/Nextr;
|
||||||
|
Loading…
Reference in New Issue
Block a user