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.