category

constrained_optimization_solver

Shared numeric, objective-direction, and validation predicates for constrained optimization solvers and their internal problem wrappers.

Availability:
logtalk_load(constrained_optimization(loader))
Author: Paulo Moura
Version: 1:0:0
Date: 2026-09-04
Compilation flags:
static
Uses:
Remarks:
(none)
Inherited public predicates:
(none)

Public predicates

(no local declarations; see entity ancestors if any)

Protected predicates

abs_max/2

Infinity norm: max_i abs(Vec_i), 0.0 for an empty vector.

Compilation flags:
static
Template:
abs_max(Vec,Max)
Mode and number of proofs:
abs_max(+list(number),-number) - one

positive_max/2

Infinity norm of the positive part: max_i max(0, Vec_i), 0.0 for an empty vector.

Compilation flags:
static
Template:
positive_max(Vec,Max)
Mode and number of proofs:
positive_max(+list(number),-number) - one

direction_sign/2

Converts an objective direction into its numeric sign.

Compilation flags:
static
Template:
direction_sign(Direction,Sign)
Mode and number of proofs:
direction_sign(+atom,-number) - one

objective_direction/2

Converts an objective numeric sign into its direction.

Compilation flags:
static
Template:
objective_direction(Sign,Direction)
Mode and number of proofs:
objective_direction(+number,-atom) - one

build_inner/3

Constructs a parametric inner solver object from its class atom and problem object.

Compilation flags:
static
Template:
build_inner(InnerSolver,Problem,Solver)
Mode and number of proofs:
build_inner(+atom,+nonvar,-nonvar) - one

update_penalty/6

Scales a penalty when the constraint violation does not decrease by the required factor.

Compilation flags:
static
Template:
update_penalty(OldViolation,NewViolation,RequiredDecrease,OldPenalty,Scale,NewPenalty)
Mode and number of proofs:
update_penalty(+number,+number,+number,+number,+number,-number) - one

abs_sum/2

Computes the sum of the absolute values of a numeric list.

Compilation flags:
static
Template:
abs_sum(Values,Sum)
Mode and number of proofs:
abs_sum(+list(number),-number) - one

validate_numeric_vector/2

Checks that a vector is a list of numbers.

Compilation flags:
static
Template:
validate_numeric_vector(Vector,Domain)
Mode and number of proofs:
validate_numeric_vector(+list,+atom) - one_or_error
Exceptions:
Vector is not a numeric vector:
domain_error(Domain,Vector)

validate_constraint_data/4

Checks that constraint values are numeric and that the Jacobian has one numeric row per constraint and one column per point component.

Compilation flags:
static
Template:
validate_constraint_data(Point,Values,Jacobian,Domain)
Mode and number of proofs:
validate_constraint_data(+list(number),+list,+list,+atom) - one_or_error
Exceptions:
Values is not a numeric vector:
domain_error(Domain,Values)
Jacobian does not have one numeric row per constraint and one column per point component:
domain_error(Domain,Jacobian)

Private predicates

(no local declarations; see entity ancestors if any)

Operators

(none)