Provided by: libnumber-tolerant-perl_1.708-2_all

**NAME**

Number::Tolerant::Union - unions of tolerance ranges

**VERSION**

version 1.708

**SYNOPSIS**

use Number::Tolerant; my $range1 = tolerance(10 => to => 12); my $range2 = tolerance(14 => to => 16); my $union = $range1 | $range2; if ($11 == $union) { ... } # this will happen if ($12 == $union) { ... } # so will this if ($13 == $union) { ... } # nothing will happen here if ($14 == $union) { ... } # this will happen if ($15 == $union) { ... } # so will this

**DESCRIPTION**

Number::Tolerant::Union is used by Number::Tolerant to represent the union of multiple tolerances. A subset of the same operators that function on a tolerance will function on a union of tolerances, as listed below.

**METHODS**

newmy $union = Number::Tolerant::Union->new(@list_of_tolerances); There is a "new" method on the Number::Tolerant::Union class, but unions are meant to be created with the "|" operator on a Number::Tolerant tolerance. The arguments to "new" are a list of numbers or tolerances to be unioned. Intersecting ranges are not converted into a single range, but this may change in the future. (For example, the union of "5 to 10" and "7 to 12" is not "5 to 12.")optionsThis method will return a list of all the acceptable options for the union.OverloadingTolerance unions overload a few operations, mostly comparisons. numification Unions numify to undef. If there's a better idea, I'd love to hear it. stringification A tolerance stringifies to a short description of itself. This is a set of the union's options, parentheses-enclosed and joined by the word "or" equality A number is equal to a union if it is equal to any of its options. comparison A number is greater than a union if it is greater than all its options. A number is less than a union if it is less than all its options. union intersection An intersection ("&") with a union is commutted across all options. In other words: (a | b | c) & d ==yields==> ((a & d) | (b & d) | (c & d)) Options that have no intersection with the new element are dropped. The intersection of a constant number and a union yields that number, if the number was in the union's ranges and otherwise yields nothing.

**TODO**

Who knows. Collapsing overlapping options, probably.

**AUTHOR**

Ricardo Signes <rjbs@cpan.org>

**COPYRIGHT** **AND** **LICENSE**

This software is copyright (c) 2004 by Ricardo Signes. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.