Open mkstoyanov opened 6 years ago
Updated design decision:
int
typesize_t
size_t
, very few places left that still use int
indexingint
or long long
when the file format is updated, all sizes and indexes would be updated to size_t or long long
the internal integers can also be updated
the cuda kernels remain working with 32-bit int due to the cuBlas interface
Decision: switch internal indexing to long long
Unsigned nature of size_t
limits some algorithms, such as searching and special traversals of tensor points. The signed integers also don't suffer from OpenMP limitations on some platforms.
The unsigned indexing also causes issues, since without warnings enabled, using negative numbers in size_t
does not result in compile time error but in using maximum number. Hence, signed integers do not provide reasonable safety. Signed indexing is good.
No need to overhaul the index set class, only the values storage class and the associated load/unload commands. Check to see how this would affect the ML capabilities.