pub struct AgmBound;Expand description
Coarse AGM-style upper bound for equi-joins.
Returns min(product, |R_min| * |R_max|) when at least one equality
predicate exists, otherwise falls back to ProductBound. This is a
placeholder approximation; the true AGM / LpBound bound requires
fractional edge cover / LP relaxation — see LpJoinBound (under the
lp_solver feature) for the principled construction.
§Examples
use samkhya_core::lpbound::{AgmBound, ProductBound, UpperBound};
let r = [1_000u64, 1_000_000];
let bound = AgmBound.ceiling(&r, &[(0, 1)]);
// AGM is always at least as tight as the cartesian product.
assert!(bound <= ProductBound.ceiling(&r, &[]));Trait Implementations§
Auto Trait Implementations§
impl Freeze for AgmBound
impl RefUnwindSafe for AgmBound
impl Send for AgmBound
impl Sync for AgmBound
impl Unpin for AgmBound
impl UnsafeUnpin for AgmBound
impl UnwindSafe for AgmBound
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more