New Issue: should RandomStream.getNth() and skipToNth() accept any integral type?

17568, "vasslitvinov", "should RandomStream.getNth() and skipToNth() accept any integral type?", "2021-04-14T03:22:04Z"

Right now the classes PCGRandomStream and NPBRandomStream declare these methods with generic integral formals:

proc skipToNth(n: integral): void throws {...}
proc getNth(n: integral): eltType throws {...}

However, the current implementation adds the n formal onto PCGRandomStreamPrivate_count or NPBRandomStreamPrivate_count, which are declared with the type int`. So:

  • It does not compile if my actual argument is a uint.
  • It does not offer me any savings benefits if my actual argument is a smaller int or uint.

If it is important for us to support the uint use case, we should parameterize these classes by the count type.

Otherwise I suggest to streamline the interface by switching the n formals to the type int.