Scan only allows vector type
Scan< Devices::Cuda, Type >::perform only allows vector types but not array.
The main issue seems to be mismatch of type alias, in scan using RealType = typename Vector::RealType;
is declared.
vector uses the alias using RealType = Real;
but
array uses the alias using ValueType = Value;
For usage, both mean the same thing but are named differently. Refactoring of internal type alias should solve the problem.