Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions Common/MathUtils/include/MathUtils/SMatrixGPU.h
Original file line number Diff line number Diff line change
Expand Up @@ -340,7 +340,7 @@ class MatRepSymGPU

static GPUdi() int off(int i)
{
static constexpr auto v = row_offsets_utils::make<D * D>(off1);
constexpr auto v = row_offsets_utils::make<D * D>(off1);
return v[i];
}

Expand Down Expand Up @@ -453,7 +453,7 @@ class SMatrixGPU
GPUd() SMatrixGPU(const SMatrixGPU<T, D1, D2, R2>& rhs);
template <class A, class R2>
GPUd() SMatrixGPU(const Expr<A, T, D1, D2, R2>& rhs);
template <class M>
template <class M, class = decltype(M::mRep)>
GPUd() SMatrixGPU<T, D1, D2, R>& operator=(const M& rhs);
template <class A, class R2>
GPUd() SMatrixGPU<T, D1, D2, R>& operator=(const Expr<A, T, D1, D2, R2>& rhs);
Expand Down Expand Up @@ -518,7 +518,7 @@ class SMatrixGPU
R mRep;
};

#ifndef __OPENCL__ // TODO: current C++ for OpenCL 2021 is at C++17, so no concepts. But we don't need this trick for OpenCL anyway, so we can just hide it.
#if !defined(__OPENCL__) && !defined(__METAL__) // TODO: current C++ for OpenCL 2021 and MSL 4.1 are both at C++17, so no concepts. But we don't need this trick there anyway, so we can just hide it.
template <class T, unsigned int D1, unsigned int D2, class R, typename Y, typename X = Y>
requires(sizeof(typename X::traits_type::pos_type) != 0) // do not provide a template to fair::Logger, etc... (pos_type is a member type of all std::ostream classes)
GPUd() X& operator<<(Y& y, const SMatrixGPU<T, D1, D2, R>&)
Expand Down Expand Up @@ -684,8 +684,8 @@ GPUdi() SMatrixGPU<T, D1, D2, R>& SMatrixGPU<T, D1, D2, R>::operator=(const Expr
}

template <class T, unsigned int D1, unsigned int D2, class R>
template <class M>
GPUdi() SMatrixGPU<T, D1, D2, R>& SMatrixGPU<T, D1, D2, R>::operator=(const M & rhs)
template <class M, class>
GPUdi() SMatrixGPU<T, D1, D2, R>& SMatrixGPU<T, D1, D2, R>::operator=(const M& rhs)
{
mRep = rhs.mRep;
return *this;
Expand Down
Loading