Set::Infinite - Sets of intervals SYNOPSIS use Set::Infinite; $a = Set::Infinite->new(1,2); print $a->union(5,6); DESCRIPTION Set::Infinite is a Set Theory module for infinite sets. It works on strings, reals or integers. You can provide your own objects or let it make them for you using the `type'. It works very well on dates, providing schedule checks (intersections) and unions. Mode functions: $a->real; $a->integer; Logic functions: $logic = $a->intersects($b); $logic = $a->contains($b); $logic = $a->is_null; Set functions: $i = $a->union($b); $i = $a->intersection($b); $i = $a->complement; $i = $a->complement($b); $i = $a->span; Scalar functions: $i = $a->min; $i = $a->max; $i = $a->size; Other Set functions: quantize( parameters ) Makes equal-sized subsets. $a = Set::Infinite->new([1,3]); print join (" ", $a->quantize( quant => 1 ) ); [1..2) [2..3) [3..4) select( parameters ) Selects set members based on their ordered positions. Selection is more useful after quantization. freq - default=1 by - default=[0] interval - default=1 count - dafault=infinite offset ( parameters ) Offsets the subsets. value - default=[0,0] mode - default='offset'. Possible values are: 'offset', 'begin', 'end'. type($i) chooses an object data type. type('Set::Infinite::Date'); See notes on Set::Infinite::Date below. tolerance(0) defaults to real sets (default) tolerance(1) defaults to integer sets real defaults to real sets (default) integer defaults to integer sets Notes on Set::Infinite::Date Set::Infinite::Date is a Date "plugin" for sets. It is invoked by: type('Set::Infinite::Date'); or type('Set::Infinite::ICal'); # *NEW* still alpha use Set::Infinite; use Set::Infinite::Quantize_Date; Set::Infinite->type('Set::Infinite::Date'); Set::Infinite::Date->date_format("year-month-day"); $a = Set::Infinite->new('2001-05-02', '2001-05-13'); print "Weeks in $a: ", join (" ", $a->quantize(unit => 'weeks', quant => 1) ); $a = Set::Infinite->new('09:30', '10:35'); print "Quarters of hour in $a: ", join (" ", $a->quantize(unit => 'minutes', quant => 15) ); Units can be years, months, days, weeks, hours, minutes, or seconds. AUTHOR Flavio Soibelmann Glock