[ParU] Use unsigned integer types where it makes sense
Is your feature request related to a problem? Please describe.
In ParU.hpp many types are defined. They use signed integer int64_t instead of a unsigned integer type. Examples for values that cannot be negative are ParU_Factors->n, ParU_Numeric->sym_m, ParU_Numeric->nf, ParU_Symbolic->snz, ParU_U_singleton->Sub, ParU_Control->mem_chunk, ParU_Control->paru_max_threads.
Describe the solution you'd like
Introduce a new type like size_t to represent non-negative integer numbers. Technically, this is an interface change and should happen before releasing SuiteSparse 7.4.0. This change might cause additional warnings, but would add semantic meaning.
Describe alternatives you've considered Sticking to the way it is.
Additional context I tried to fix the following warning. It occurs as std::vector's size is a size_t. If you do not consider this change, a cast would fix this issue.
SuiteSparse/ParU/Source/paru_factorize.cpp:347:27: Warning: comparison between signed and unsigned integer expressions: »std::vector<long int>::size_type« {aka »long unsigned int«} and »int32_t« {aka »int«} [-Wsign-compare]
347 | if (task_Q.size() * 2 > Control->paru_max_threads)
| ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
I can help making the transition. But I would ask for a decision first and to get an unsigned type to use.