Skip to main content

project_box

Function project_box 

Source
pub fn project_box(
    x: &Vector<f32>,
    lower: &Vector<f32>,
    upper: &Vector<f32>,
) -> Vector<f32>
Expand description

Projects onto box constraints: lower ≤ x ≤ upper.

§Arguments

  • x - Input vector
  • lower - Lower bounds
  • upper - Upper bounds

§Returns

Vector with components clipped to [lower, upper]

§Example

use aprender::optim::prox::project_box;
use aprender::primitives::Vector;

let x = Vector::from_slice(&[-1.0, 0.5, 2.0]);
let lower = Vector::from_slice(&[0.0, 0.0, 0.0]);
let upper = Vector::from_slice(&[1.0, 1.0, 1.0]);

let result = project_box(&x, &lower, &upper);

assert_eq!(result[0], 0.0);  // Clipped to lower
assert_eq!(result[1], 0.5);  // Within bounds
assert_eq!(result[2], 1.0);  // Clipped to upper