PETSc defines the integer type PetscInt that is used for indices and PetscReal that is used for floating-point values. Both of these can be set to various sizes at compile-time.
The default is float64 and int32, but I think all of the following combinations could also be interesting to use:
- float64 and int64
- float32 and int32
- float32 and int64
My question then is how we should handle this with the current structure? I suppose one solution is to suffix the version, e.g. 3.11.3-float64-int64, but with other suffixes like -cuda, this could become a bit messy.
@jamtrott, do you have any thoughts on this?