pub struct DenseVector { /* private fields */ }Expand description
Dense vector — port of IpDenseVector.
Implementations§
Source§impl DenseVector
impl DenseVector
pub fn new(space: Rc<DenseVectorSpace>) -> Self
pub fn space(&self) -> &Rc<DenseVectorSpace>
pub fn is_homogeneous(&self) -> bool
pub fn scalar(&self) -> Number
pub fn is_initialized(&self) -> bool
Sourcepub fn values(&self) -> &[Number] ⓘ
pub fn values(&self) -> &[Number] ⓘ
Read-only slice into materialized values. Panics if currently
homogeneous — mirrors upstream’s DBG_ASSERT in
DenseVector::Values() const. Use expanded_values to always
get a slice.
Sourcepub fn values_mut(&mut self) -> &mut [Number] ⓘ
pub fn values_mut(&mut self) -> &mut [Number] ⓘ
Mutable slice. Materializes a homogeneous vector first and
bumps the change tag, matching upstream’s non-const Values().
Sourcepub fn expanded_values(&self) -> Vec<Number> ⓘ
pub fn expanded_values(&self) -> Vec<Number> ⓘ
Always returns a fully-materialized slice. Allocates a copy if
the vector is homogeneous (upstream caches this in
expanded_values_; we just allocate on the fly).
pub fn set_values(&mut self, x: &[Number])
Sourcepub fn copy_to_pos(&mut self, pos: Index, x: &dyn Vector)
pub fn copy_to_pos(&mut self, pos: Index, x: &dyn Vector)
Equivalent to upstream DenseVector::CopyToPos.
Sourcepub fn copy_from_pos(&mut self, pos: Index, x: &dyn Vector)
pub fn copy_from_pos(&mut self, pos: Index, x: &dyn Vector)
Equivalent to upstream DenseVector::CopyFromPos.
pub fn ensure_storage(&mut self)
Trait Implementations§
Source§impl Debug for DenseVector
impl Debug for DenseVector
Source§impl TaggedObject for DenseVector
impl TaggedObject for DenseVector
Source§impl Vector for DenseVector
impl Vector for DenseVector
fn dim(&self) -> Index
fn cache(&self) -> &VectorCache
Source§fn make_new(&self) -> Box<dyn Vector>
fn make_new(&self) -> Box<dyn Vector>
Create a new uninitialized vector belonging to the same
VectorSpace. Equivalent to Vector::MakeNew.fn as_any(&self) -> &dyn Any
fn as_any_mut(&mut self) -> &mut dyn Any
fn as_tagged(&self) -> &dyn TaggedObject
fn as_dyn_vector(&self) -> &dyn Vector
fn copy_impl(&mut self, x: &dyn Vector)
fn scal_impl(&mut self, alpha: Number)
fn axpy_impl(&mut self, alpha: Number, x: &dyn Vector)
fn dot_impl(&self, x: &dyn Vector) -> Number
fn nrm2_impl(&self) -> Number
fn asum_impl(&self) -> Number
fn amax_impl(&self) -> Number
fn set_impl(&mut self, value: Number)
fn element_wise_divide_impl(&mut self, x: &dyn Vector)
fn element_wise_multiply_impl(&mut self, x: &dyn Vector)
fn element_wise_select_impl(&mut self, x: &dyn Vector)
fn element_wise_max_impl(&mut self, x: &dyn Vector)
fn element_wise_min_impl(&mut self, x: &dyn Vector)
fn element_wise_reciprocal_impl(&mut self)
fn element_wise_abs_impl(&mut self)
fn element_wise_sqrt_impl(&mut self)
fn element_wise_sgn_impl(&mut self)
fn add_scalar_impl(&mut self, scalar: Number)
fn max_impl(&self) -> Number
fn min_impl(&self) -> Number
fn sum_impl(&self) -> Number
fn sum_logs_impl(&self) -> Number
fn frac_to_bound_impl(&self, delta: &dyn Vector, tau: Number) -> Number
Source§fn add_two_vectors_impl(
&mut self,
a: Number,
v1: &dyn Vector,
b: Number,
v2: &dyn Vector,
c: Number,
)
fn add_two_vectors_impl( &mut self, a: Number, v1: &dyn Vector, b: Number, v2: &dyn Vector, c: Number, )
Default fallback. Concrete types override for efficiency, but
the result must remain bit-identical to upstream’s
DenseVector::AddTwoVectorsImpl decision tree.fn add_vector_quotient_impl( &mut self, a: Number, z: &dyn Vector, s: &dyn Vector, c: Number, )
Source§fn has_valid_numbers_impl(&self) -> bool
fn has_valid_numbers_impl(&self) -> bool
Default uses
Asum finiteness — matches upstream
Vector::HasValidNumbersImpl.fn copy(&mut self, x: &dyn Vector)
fn make_new_copy(&self) -> Box<dyn Vector>
fn scal(&mut self, alpha: Number)
fn axpy(&mut self, alpha: Number, x: &dyn Vector)
fn dot(&self, x: &dyn Vector) -> Number
fn nrm2(&self) -> Number
fn asum(&self) -> Number
fn amax(&self) -> Number
fn set(&mut self, alpha: Number)
fn element_wise_divide(&mut self, x: &dyn Vector)
fn element_wise_multiply(&mut self, x: &dyn Vector)
fn element_wise_select(&mut self, x: &dyn Vector)
fn element_wise_max(&mut self, x: &dyn Vector)
fn element_wise_min(&mut self, x: &dyn Vector)
fn element_wise_reciprocal(&mut self)
fn element_wise_abs(&mut self)
fn element_wise_sqrt(&mut self)
fn element_wise_sgn(&mut self)
fn add_scalar(&mut self, scalar: Number)
fn max(&self) -> Number
fn min(&self) -> Number
fn sum(&self) -> Number
fn sum_logs(&self) -> Number
fn add_one_vector(&mut self, a: Number, v1: &dyn Vector, c: Number)
fn add_two_vectors( &mut self, a: Number, v1: &dyn Vector, b: Number, v2: &dyn Vector, c: Number, )
Source§fn frac_to_bound(&self, delta: &dyn Vector, tau: Number) -> Number
fn frac_to_bound(&self, delta: &dyn Vector, tau: Number) -> Number
No cache (matches upstream comment in
IpVector.hpp:820 —
caching here interferes with the quality function search).fn add_vector_quotient( &mut self, a: Number, z: &dyn Vector, s: &dyn Vector, c: Number, )
fn has_valid_numbers(&self) -> bool
Auto Trait Implementations§
impl !Freeze for DenseVector
impl !RefUnwindSafe for DenseVector
impl !Send for DenseVector
impl !Sync for DenseVector
impl Unpin for DenseVector
impl UnsafeUnpin for DenseVector
impl !UnwindSafe for DenseVector
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