The family of "set" functions has been renamed to include a set_ prefix,
for example, iv_union() is now iv_set_union(). This has been done to
align with the new family of vctrs set functions, like vec_set_union(), and
to reduce the ambiguity between the new iv_diff() helper and
iv_difference() (now iv_set_difference()). The old names are deprecated,
and will be removed in a future release (#35).
iv_complement() -> iv_set_complement()iv_union() -> iv_set_union()iv_intersect() -> iv_set_intersect()iv_difference() -> iv_set_difference()iv_symmetric_difference() -> iv_set_symmetric_difference()iv_pairwise_*() functions that
share the same suffixes.New family of functions that perform the inverse of iv_between(), i.e.
rather than detecting if needles[i], a vector value, falls between any
intervals in haystack, an iv, these detect if needles[i], an interval,
includes any value from haystack, a vector. These functions are:
iv_includes(), iv_locate_includes(), iv_count_includes(), and
iv_pairwise_includes() (#41).
New family of functions for identifying interval containers, which are
intervals that aren't contained within any other interval. These functions
are: iv_containers(), iv_identify_containers(), iv_identify_container(),
and iv_locate_containers() (#20).
New iv_diff() for generating an iv from an existing vector that is in
strictly increasing order (#17).
New iv_span() for computing a summary interval that encompasses the entire
range of an existing iv (#49).
New Examples vignette that links out to Stack Overflow questions that were
solved with ivs. View it locally with vignette("examples", package = "ivs").
vec_ptype() and vec_ptype_finalise() methods have been added for the iv
class. This should result in slightly better performance when combining many
ivs together (#27).
iv_locate_overlaps(), iv_locate_precedes(), iv_locate_follows(),
iv_locate_between(), and iv_locate_includes() have all gained the
relationship argument from the underlying engine,
vctrs::vec_locate_matches() (#45).
iv_proxy() now returns the input unchanged if it doesn't implement an S3
method, rather than erroring. In combination with is_iv(), this provides a
way to check if an input implements a proxy method and to implement different
behaviors depending on the result.
In iv(), incomplete value propagation is now done before the start < end
check, which fixes an inconsistent edge case (#36).
You can now combine an iv containing unspecified components with any other iv (#33).
The "iv" class name has been renamed to the more specific "ivs_iv" to
better insulate it from potential collisions with classes from other packages
(#25).
Improved on the call reported by errors thrown in ivs (#23).
Switched to using vec_run_sizes() and vec_chop(sizes =) internally, which
improves performance in some cases (#50).
Added a NEWS.md file to track changes to the package.