Math-LP
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
lib/Math/LP.pm view on Meta::CPAN
Math::LP::Solve::set_obj_fn($lprec,$this->make_coeff_array($this->{objective_function}));
if ($this->{type} == $MAX) { Math::LP::Solve::set_maxim($lprec); }
elsif($this->{type} == $MIN) { Math::LP::Solve::set_minim($lprec); }
else {
$this->croak('No objective function type ($MAX or $MIN) set for solving');
}
}
return $lprec;
}
sub update_variable_values { # copies the variable values to the variable objects
my Math::LP $this = shift;
my $lprec = shift;
# the variable values are found in the solution vector
my $solution = Math::LP::Solve::lprec_best_solution_get($lprec);
# The index offset is explained as follows
# + 1 because of the objective function value
# + nr_rows() because of the slacks
# - 1 because the 1st variable has index 1, not 0
my $offset = $this->nr_rows();
# copy the appropriate value for each variable
foreach(values %{$this->{variables}}) {
my $var_index = $_->{col_index};
$_->{value} = Math::LP::Solve::ptrvalue($solution,$offset+$var_index);
}
}
sub update_slacks {
my Math::LP $this = shift;
my $lprec = shift;
# the slacks are fetched from the solution vector
my $solution = Math::LP::Solve::lprec_best_solution_get($lprec);
# copy the appropriate slack for each constraint
foreach(@{$this->{constraints}}) {
my $row_index = $_->{row_index};
view all matches for this distributionview release on metacpan - search on metacpan
( run in 1.177 second using v1.00-cache-2.02-grep-82fe00e-cpan-4673cadbf75 )