There's a danger of confusion in the current way the random functions are named.
NSL::Tensor<Type> a = NSL::rand(4,4); // Unambiguous
NSL::Tensor<Type> a(4,4) = NSL::rand(4,4); // Allowed
Type b = NSL::Random::rand(); // Fine
NSL::Tensor<Type> a(4,4) = NSL::Random::rand(); // Really weird; a matrix where every element is random but equal.
The hope is to find a way to rename the random functions to avoid the last case unless the user explicitly is really clear about what they're getting.
There's a danger of confusion in the current way the random functions are named.
The hope is to find a way to rename the random functions to avoid the last case unless the user explicitly is really clear about what they're getting.
Probably the best way is to rename eg.