GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
Set::Infinite::Basic(3) User Contributed Perl Documentation Set::Infinite::Basic(3)

Set::Infinite::Basic - Sets of intervals 6 =head1 SYNOPSIS

  use Set::Infinite::Basic;

  $set = Set::Infinite::Basic->new(1,2);    # [1..2]
  print $set->union(5,6);            # [1..2],[5..6]

Set::Infinite::Basic is a Set Theory module for infinite sets.

It works on reals, integers, and objects.

This module does not support recurrences. Recurrences are implemented in Set::Infinite.

Creates an empty_set.

If called from an existing set, the empty set inherits the "type" and "density" characteristics.

Creates a set containing "all" possible elements.

If called from an existing set, the universal set inherits the "type" and "density" characteristics.

Extends a set until another:

    0,5,7 -> until 2,6,10

gives

    [0..2), [5..6), [7..10)

Note: this function is still experimental.

Makes a new object from the object's data.

    $set = $set->real;

    $set = $set->integer;

    $logic = $set->intersects($b);

    $logic = $set->contains($b);

    $logic = $set->is_null;  # also called "is_empty"

    $set = $set->union($b);    

    $set = $set->intersection($b);

    $set = $set->complement;
    $set = $set->complement($b);   # can also be called "minus" or "difference"

    $set = $set->symmetric_difference( $b );

    $set = $set->span;   

        result is (min .. max)

    $i = $set->min;

    $i = $set->max;

    $i = $set->size;  

    $i = $set->count;  # number of spans

    print    

    sort, <=>

    separators(@i)

        chooses the interval separators. 

        default are [ ] ( ) '..' ','.

    INFINITY

        returns an 'Infinity' number.

    NEG_INFINITY

        returns a '-Infinity' number.

    iterate ( sub { } )

        Iterates over a subroutine. 
        Returns the union of partial results.

    first

        In scalar context returns the first interval of a set.

        In list context returns the first interval of a set, and the
        'tail'.

        Works in unbounded sets

    type($i)

        chooses an object data type. 

        default is none (a normal perl SCALAR).

        examples: 

        type('Math::BigFloat');
        type('Math::BigInt');
        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

    $set->fixtype; 

    $set->numeric;

    $set = Set::Infinite->new(10,1);
        Will be interpreted as [1..10]

    $set = Set::Infinite->new(1,2,3,4);
        Will be interpreted as [1..2],[3..4] instead of [1,2,3,4].
        You probably want ->new([1],[2],[3],[4]) instead,
        or maybe ->new(1,4) 

    $set = Set::Infinite->new(1..3);
        Will be interpreted as [1..2],3 instead of [1,2,3].
        You probably want ->new(1,3) instead.

The internal representation of a span is a hash:

    { a =>   start of span,
      b =>   end of span,
      open_begin =>   '0' the span starts in 'a'
                      '1' the span starts after 'a'
      open_end =>     '0' the span ends in 'b'
                      '1' the span ends before 'b'
    }

For example, this set:

    [100..200),300,(400..infinity)

is represented by the array of hashes:

    list => [
        { a => 100, b => 200, open_begin => 0, open_end => 1 },
        { a => 300, b => 300, open_begin => 0, open_end => 0 },
        { a => 400, b => infinity, open_begin => 0, open_end => 1 },
    ]

The density of a set is stored in the "tolerance" variable:

    tolerance => 0;  # the set is made of real numbers.

    tolerance => 1;  # the set is made of integers.

The "type" variable stores the class of objects that will be stored in the set.

    type => 'DateTime';   # this is a set of DateTime objects

The infinity value is generated by Perl, when it finds a numerical overflow:

    $inf = 100**100**100;

    Set::Infinite

    Flavio S. Glock <fglock@gmail.com>
2010-04-26 perl v5.32.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.