Construction of vectors where only values and positions are recorded. The Length and default values determine all other information.
Details
values and positions are expected to be the same length, and are allowed
to both have zero length.
Allowed values for value is integer values. This means that the double
vector c(1, 5, 4) is accepted as it can be losslessly converted to the
integer vector c(1L, 5L, 4L). Missing values such as NA and NA_real_
are allowed. Everything else is disallowed, This includes Inf and NaN.
The values are also not allowed to take the same value as default.
positions should be integers or integer-like doubles. Everything else is
not allowed. Positions should furthermore be positive (0 not allowed),
unique, and in increasing order. Lastly they should all be smaller that
length.
For developers:
setting options("sparsevctrs.verbose_materialize" = TRUE) will print a
message each time a sparse vector has been forced to materialize.
