Math::LP::Variable - variables used in linear programs


Math-LP documentation Contained in the Math-LP distribution.

Index


Code Index:

NAME

Top

Math::LP::Variable - variables used in linear programs

SYNOPSIS

Top

    use Math::LP::Variable;

    # make a variable named x1
    my $x1 = new Math::LP::Variable(name => 'x1');

    # make an integer variable named x2
    my $x2 = new Math::LP::Variable(name => 'x2', is_int => 1);

    # make a variable named x3 initialized to 3.1415
    my $x3 = new Math::LP::Variable(name => 'x3', value => '3.1415');

DESCRIPTION

Top

DATA FIELDS

name

a string with the name of the variable (required)

is_int

a flag indicating whether the variable can only have integer values (optional, defaults to false)

value

a number representing the value of the variable (optional)

upper_bound

an upper bound to the value, defaults to 1E24

lower_bound

a lower bound to the value, defaults to 0

col_index

an integer number holding the index of the variable in the matrix of the LP the variable is used in (optional)

METHODS

Math::LP::Variable inherits all methods from Math::SimpleVariable, without adding any new methods.

SEE ALSO

Top

More info on the base class is found in Math::SimpleVariable. The usage of Math::LP::Variables in linear programs is illustrated in Math::LP.

AUTHOR

Top

Wim Verhaegen <wimv@cpan.org>

COPYRIGHT

Top


Math-LP documentation Contained in the Math-LP distribution.

package Math::LP::Variable;
use strict;
#use Math::LP::Object;
use Math::SimpleVariable;
use base qw(Math::SimpleVariable);
use fields(
    'is_int',      # flags whether it is an integer variable, defaults to false
    'upper_bound', # defaults to +infinity
    'lower_bound', # defaults to 0, as is the convention in linear programming
    'col_index',   # column index in an LP, used by the Math::LP functions
);

sub initialize {
    my Math::LP::Variable $this = shift;
    $this->{is_int} ||= 0;
    $this->{upper_bound} = $Math::LP::Solve::DEF_INFINITE 
	unless defined($this->{upper_bound});
    $this->{lower_bound} = 0 
	unless defined($this->{lower_bound});
    $this->SUPER::initialize();
}

1;

__END__