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.