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


Manual Reference Pages  -  SET::INFINITE::BASIC (3)

.ds Aq ’

NAME

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]



CONTENTS

DESCRIPTION

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.

METHODS

    empty_set

Creates an empty_set.

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

    universal_set

Creates a set containing all possible elements.

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

    until

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.

    copy

    clone

Makes a new object from the object’s data.

    Mode functions:



    $set = $set->real;

    $set = $set->integer;



    Logic functions:



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

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

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



    Set functions:



    $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)



    Scalar functions:



    $i = $set->min;

    $i = $set->max;

    $i = $set->size; 

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



    Overloaded Perl functions:



    print   

    sort, <=>



    Global functions:



    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



    Internal functions:



    $set->fixtype;

    $set->numeric;



CAVEATS



    $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.



INTERNALS

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;



SEE ALSO



    Set::Infinite



AUTHOR



    Flavio S. Glock <fglock@gmail.com>



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


perl v5.20.3 SET::INFINITE::BASIC (3) 2010-04-26

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