Skip to main content

DenseVector

Struct DenseVector 

Source
pub struct DenseVector { /* private fields */ }
Expand description

Dense vector — port of IpDenseVector.

Implementations§

Source§

impl DenseVector

Source

pub fn new(space: Rc<DenseVectorSpace>) -> Self

Source

pub fn space(&self) -> &Rc<DenseVectorSpace>

Source

pub fn is_homogeneous(&self) -> bool

Source

pub fn scalar(&self) -> Number

Source

pub fn is_initialized(&self) -> bool

Source

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.

Source

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().

Source

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).

Source

pub fn set_values(&mut self, x: &[Number])

Source

pub fn copy_to_pos(&mut self, pos: Index, x: &dyn Vector)

Equivalent to upstream DenseVector::CopyToPos.

Source

pub fn copy_from_pos(&mut self, pos: Index, x: &dyn Vector)

Equivalent to upstream DenseVector::CopyFromPos.

Source

pub fn ensure_storage(&mut self)

Trait Implementations§

Source§

impl Debug for DenseVector

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl TaggedObject for DenseVector

Source§

fn get_tag(&self) -> Tag

Source§

impl Vector for DenseVector

Source§

fn dim(&self) -> Index

Source§

fn cache(&self) -> &VectorCache

Source§

fn make_new(&self) -> Box<dyn Vector>

Create a new uninitialized vector belonging to the same VectorSpace. Equivalent to Vector::MakeNew.
Source§

fn as_any(&self) -> &dyn Any

Source§

fn as_any_mut(&mut self) -> &mut dyn Any

Source§

fn as_tagged(&self) -> &dyn TaggedObject

Source§

fn as_dyn_vector(&self) -> &dyn Vector

Source§

fn copy_impl(&mut self, x: &dyn Vector)

Source§

fn scal_impl(&mut self, alpha: Number)

Source§

fn axpy_impl(&mut self, alpha: Number, x: &dyn Vector)

Source§

fn dot_impl(&self, x: &dyn Vector) -> Number

Source§

fn nrm2_impl(&self) -> Number

Source§

fn asum_impl(&self) -> Number

Source§

fn amax_impl(&self) -> Number

Source§

fn set_impl(&mut self, value: Number)

Source§

fn element_wise_divide_impl(&mut self, x: &dyn Vector)

Source§

fn element_wise_multiply_impl(&mut self, x: &dyn Vector)

Source§

fn element_wise_select_impl(&mut self, x: &dyn Vector)

Source§

fn element_wise_max_impl(&mut self, x: &dyn Vector)

Source§

fn element_wise_min_impl(&mut self, x: &dyn Vector)

Source§

fn element_wise_reciprocal_impl(&mut self)

Source§

fn element_wise_abs_impl(&mut self)

Source§

fn element_wise_sqrt_impl(&mut self)

Source§

fn element_wise_sgn_impl(&mut self)

Source§

fn add_scalar_impl(&mut self, scalar: Number)

Source§

fn max_impl(&self) -> Number

Source§

fn min_impl(&self) -> Number

Source§

fn sum_impl(&self) -> Number

Source§

fn sum_logs_impl(&self) -> Number

Source§

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, )

Default fallback. Concrete types override for efficiency, but the result must remain bit-identical to upstream’s DenseVector::AddTwoVectorsImpl decision tree.
Source§

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

Default uses Asum finiteness — matches upstream Vector::HasValidNumbersImpl.
Source§

fn copy(&mut self, x: &dyn Vector)

Source§

fn make_new_copy(&self) -> Box<dyn Vector>

Source§

fn scal(&mut self, alpha: Number)

Source§

fn axpy(&mut self, alpha: Number, x: &dyn Vector)

Source§

fn dot(&self, x: &dyn Vector) -> Number

Source§

fn nrm2(&self) -> Number

Source§

fn asum(&self) -> Number

Source§

fn amax(&self) -> Number

Source§

fn set(&mut self, alpha: Number)

Source§

fn element_wise_divide(&mut self, x: &dyn Vector)

Source§

fn element_wise_multiply(&mut self, x: &dyn Vector)

Source§

fn element_wise_select(&mut self, x: &dyn Vector)

Source§

fn element_wise_max(&mut self, x: &dyn Vector)

Source§

fn element_wise_min(&mut self, x: &dyn Vector)

Source§

fn element_wise_reciprocal(&mut self)

Source§

fn element_wise_abs(&mut self)

Source§

fn element_wise_sqrt(&mut self)

Source§

fn element_wise_sgn(&mut self)

Source§

fn add_scalar(&mut self, scalar: Number)

Source§

fn max(&self) -> Number

Source§

fn min(&self) -> Number

Source§

fn sum(&self) -> Number

Source§

fn sum_logs(&self) -> Number

Source§

fn add_one_vector(&mut self, a: Number, v1: &dyn Vector, c: Number)

Source§

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

No cache (matches upstream comment in IpVector.hpp:820 — caching here interferes with the quality function search).
Source§

fn add_vector_quotient( &mut self, a: Number, z: &dyn Vector, s: &dyn Vector, c: Number, )

Source§

fn has_valid_numbers(&self) -> bool

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.