pub struct Dimensionless(/* private fields */);Expand description
Dimensionless quantity (ratios, pure numbers).
Implementations§
Source§impl Dimensionless
impl Dimensionless
Source§impl Dimensionless
impl Dimensionless
Sourcepub fn from_ex(ex: impl IntoEx) -> Self
pub fn from_ex(ex: impl IntoEx) -> Self
Create from a symbolic expression (or anything that implements IntoEx).
Sourcepub fn checked_from_ex(ex: impl IntoEx, dims: &DimMap) -> Result<Self, String>
pub fn checked_from_ex(ex: impl IntoEx, dims: &DimMap) -> Result<Self, String>
Create from a symbolic expression with runtime dimension validation.
Checks that the expression’s inferred dimension matches this type’s
dimension using the provided DimMap. Returns an error if the
dimensions don’t match.
Use this instead of from_ex when you want runtime validation
of dimensional correctness (e.g., in tests or debug builds).
Sourcepub fn symbol(ctx: &Context, name: &str) -> Self
pub fn symbol(ctx: &Context, name: &str) -> Self
Create a named symbolic variable with this dimension.
Sourcepub fn into_inner(self) -> Ex
pub fn into_inner(self) -> Ex
Escape hatch: drop dimension, return raw Ex.
Sourcepub fn as_qty(self) -> Qty<DimensionlessDim>
pub fn as_qty(self) -> Qty<DimensionlessDim>
Convert to generic Qty<D>.
Sourcepub fn dim_name_str() -> &'static str
pub fn dim_name_str() -> &'static str
Runtime dimension name.
Sourcepub fn dim_symbol_str() -> &'static str
pub fn dim_symbol_str() -> &'static str
Runtime dimension symbol.
Sourcepub fn simplify_full(&self) -> Self
pub fn simplify_full(&self) -> Self
Full multi-pass simplification, preserving dimension.
Sourcepub fn simplify_trig(&self) -> Self
pub fn simplify_trig(&self) -> Self
Trigonometric simplification, preserving dimension.
Sourcepub fn simplify_powers(&self) -> Self
pub fn simplify_powers(&self) -> Self
Power/exponent simplification, preserving dimension.
Sourcepub fn simplify_rational(&self) -> Self
pub fn simplify_rational(&self) -> Self
Rational simplification, preserving dimension.
Sourcepub fn expand_trig(&self) -> Self
pub fn expand_trig(&self) -> Self
Expand trigonometric identities, preserving dimension.
Sourcepub fn expand_log(&self) -> Self
pub fn expand_log(&self) -> Self
Expand logarithms where the identities hold (Ex::expand_log), preserving dimension.
Sourcepub fn log_combine(&self) -> Self
pub fn log_combine(&self) -> Self
Combine logarithms where the identities hold (Ex::log_combine), preserving dimension.
Sourcepub fn trig_combine(&self) -> Self
pub fn trig_combine(&self) -> Self
Combine trigonometric terms, preserving dimension.
Sourcepub fn factor(&self, var: &impl AsRef<Ex>) -> Self
pub fn factor(&self, var: &impl AsRef<Ex>) -> Self
Factor with respect to a variable, preserving dimension.
Sourcepub fn collect(&self, var: &impl AsRef<Ex>) -> Self
pub fn collect(&self, var: &impl AsRef<Ex>) -> Self
Collect terms with respect to a variable, preserving dimension.
Sourcepub fn together(&self) -> Self
pub fn together(&self) -> Self
Combine fractions over a common denominator, preserving dimension.
Sourcepub fn partial_fractions(&self, var: &impl AsRef<Ex>) -> Self
pub fn partial_fractions(&self, var: &impl AsRef<Ex>) -> Self
Partial-fraction decomposition with respect to a variable, preserving dimension.
Sourcepub fn rationalize_denom(&self) -> Self
pub fn rationalize_denom(&self) -> Self
Rationalize the denominator, preserving dimension.
Sourcepub fn diff(&self, var: &impl AsRef<Ex>) -> Ex
pub fn diff(&self, var: &impl AsRef<Ex>) -> Ex
Differentiate with respect to a variable. Returns raw Ex.
Wrap result in the correct output type: Acceleration::from_ex(v.diff(&t)).
A converted variable (Time::minutes(τ)) is handled by the chain rule.
Sourcepub fn integrate(&self, var: &impl AsRef<Ex>) -> Ex
pub fn integrate(&self, var: &impl AsRef<Ex>) -> Ex
Integrate with respect to a variable. Returns raw Ex. A converted variable is integrated by substitution.
Sourcepub fn free_symbols(&self) -> Vec<Ex> ⓘ
pub fn free_symbols(&self) -> Vec<Ex> ⓘ
Free symbols in the expression.
Sourcepub fn contains(&self, other: &impl AsRef<Ex>) -> bool
pub fn contains(&self, other: &impl AsRef<Ex>) -> bool
Whether the expression contains a given sub-expression.
Sourcepub fn term_count(&self) -> usize
pub fn term_count(&self) -> usize
Number of top-level additive terms.
Sourcepub fn is_zero(&self) -> bool
pub fn is_zero(&self) -> bool
Is this quantity proved zero? false means “not proved”:
it may still be zero. try_is_zero gives
the three-valued answer.
Sourcepub fn try_is_zero(&self) -> Option<bool>
pub fn try_is_zero(&self) -> Option<bool>
Is this quantity zero? Some(true) proved zero, Some(false)
proved nonzero, None undecided (Ex::is_zero).
Sourcepub fn equals(&self, other: &Self) -> bool
pub fn equals(&self, other: &Self) -> bool
Is this quantity proved equal to other? false means “not
proved”: the two may still be equal.
try_equals gives the three-valued answer.
Sourcepub fn try_equals(&self, other: &Self) -> Option<bool>
pub fn try_equals(&self, other: &Self) -> Option<bool>
Is this quantity equal to other? Some(true) proved equal,
Some(false) proved different, None undecided
(Ex::equals).
Sourcepub fn eval_f64(&self) -> Result<f64, SymplexError>
pub fn eval_f64(&self) -> Result<f64, SymplexError>
Evaluate to f64.
Sourcepub fn eval_f64_with(&self, subs: &[(&Ex, i64)]) -> Result<f64, SymplexError>
pub fn eval_f64_with(&self, subs: &[(&Ex, i64)]) -> Result<f64, SymplexError>
Substitute integer values and evaluate to f64.
Sourcepub fn eval_decimal(&self, digits: u32) -> Result<String, SymplexError>
pub fn eval_decimal(&self, digits: u32) -> Result<String, SymplexError>
Evaluate to a decimal string with the given number of digits.
Trait Implementations§
Source§impl Add for Dimensionless
impl Add for Dimensionless
Source§type Output = Dimensionless
type Output = Dimensionless
+ operator.Source§fn add(self, rhs: Dimensionless) -> Dimensionless
fn add(self, rhs: Dimensionless) -> Dimensionless
+ operation. Read moreSource§impl Add<&Dimensionless> for &Dimensionless
impl Add<&Dimensionless> for &Dimensionless
Source§type Output = Dimensionless
type Output = Dimensionless
+ operator.Source§fn add(self, rhs: &Dimensionless) -> Dimensionless
fn add(self, rhs: &Dimensionless) -> Dimensionless
+ operation. Read moreSource§impl Add<&Dimensionless> for Dimensionless
impl Add<&Dimensionless> for Dimensionless
Source§type Output = Dimensionless
type Output = Dimensionless
+ operator.Source§fn add(self, rhs: &Dimensionless) -> Dimensionless
fn add(self, rhs: &Dimensionless) -> Dimensionless
+ operation. Read moreSource§impl Add<Dimensionless> for &Dimensionless
impl Add<Dimensionless> for &Dimensionless
Source§type Output = Dimensionless
type Output = Dimensionless
+ operator.Source§fn add(self, rhs: Dimensionless) -> Dimensionless
fn add(self, rhs: Dimensionless) -> Dimensionless
+ operation. Read moreSource§impl Clone for Dimensionless
impl Clone for Dimensionless
Source§impl Debug for Dimensionless
impl Debug for Dimensionless
Source§impl Display for Dimensionless
impl Display for Dimensionless
Source§impl Div<i64> for Dimensionless
impl Div<i64> for Dimensionless
Source§type Output = Dimensionless
type Output = Dimensionless
/ operator.Source§impl From<Dimensionless> for Qty<DimensionlessDim>
impl From<Dimensionless> for Qty<DimensionlessDim>
Source§fn from(q: Dimensionless) -> Qty<DimensionlessDim>
fn from(q: Dimensionless) -> Qty<DimensionlessDim>
Source§impl From<Qty<Dim<Z0, Z0, Z0, Z0, Z0, Z0, Z0>>> for Dimensionless
impl From<Qty<Dim<Z0, Z0, Z0, Z0, Z0, Z0, Z0>>> for Dimensionless
Source§fn from(q: Qty<DimensionlessDim>) -> Dimensionless
fn from(q: Qty<DimensionlessDim>) -> Dimensionless
Source§impl FromDimExpr<Dim<Z0, Z0, Z0, Z0, Z0, Z0, Z0>> for Dimensionless
impl FromDimExpr<Dim<Z0, Z0, Z0, Z0, Z0, Z0, Z0>> for Dimensionless
Source§fn from_dim_expr(qty: Qty<DimensionlessDim>) -> Self
fn from_dim_expr(qty: Qty<DimensionlessDim>) -> Self
Source§impl Mul<&Dimensionless> for i64
impl Mul<&Dimensionless> for i64
Source§type Output = Dimensionless
type Output = Dimensionless
* operator.Source§fn mul(self, rhs: &Dimensionless) -> Dimensionless
fn mul(self, rhs: &Dimensionless) -> Dimensionless
* operation. Read moreSource§impl Mul<&Expr<Numeric>> for Dimensionless
impl Mul<&Expr<Numeric>> for Dimensionless
Source§type Output = Dimensionless
type Output = Dimensionless
* operator.Source§impl Mul<&Expr<Numeric>> for &Dimensionless
impl Mul<&Expr<Numeric>> for &Dimensionless
Source§type Output = Dimensionless
type Output = Dimensionless
* operator.Source§impl Mul<Dimensionless> for i64
impl Mul<Dimensionless> for i64
Source§type Output = Dimensionless
type Output = Dimensionless
* operator.Source§fn mul(self, rhs: Dimensionless) -> Dimensionless
fn mul(self, rhs: Dimensionless) -> Dimensionless
* operation. Read moreSource§impl Mul<Dimensionless> for &Ex
impl Mul<Dimensionless> for &Ex
Source§type Output = Dimensionless
type Output = Dimensionless
* operator.Source§fn mul(self, rhs: Dimensionless) -> Dimensionless
fn mul(self, rhs: Dimensionless) -> Dimensionless
* operation. Read moreSource§impl Mul<i64> for Dimensionless
impl Mul<i64> for Dimensionless
Source§type Output = Dimensionless
type Output = Dimensionless
* operator.Source§impl Mul<i64> for &Dimensionless
impl Mul<i64> for &Dimensionless
Source§type Output = Dimensionless
type Output = Dimensionless
* operator.Source§impl Neg for Dimensionless
impl Neg for Dimensionless
Source§type Output = Dimensionless
type Output = Dimensionless
- operator.Source§fn neg(self) -> Dimensionless
fn neg(self) -> Dimensionless
- operation. Read moreSource§impl Neg for &Dimensionless
impl Neg for &Dimensionless
Source§type Output = Dimensionless
type Output = Dimensionless
- operator.Source§fn neg(self) -> Dimensionless
fn neg(self) -> Dimensionless
- operation. Read moreSource§impl Sub for Dimensionless
impl Sub for Dimensionless
Source§type Output = Dimensionless
type Output = Dimensionless
- operator.Source§fn sub(self, rhs: Dimensionless) -> Dimensionless
fn sub(self, rhs: Dimensionless) -> Dimensionless
- operation. Read moreSource§impl Sub<&Dimensionless> for &Dimensionless
impl Sub<&Dimensionless> for &Dimensionless
Source§type Output = Dimensionless
type Output = Dimensionless
- operator.Source§fn sub(self, rhs: &Dimensionless) -> Dimensionless
fn sub(self, rhs: &Dimensionless) -> Dimensionless
- operation. Read moreAuto Trait Implementations§
impl !RefUnwindSafe for Dimensionless
impl !UnwindSafe for Dimensionless
impl Freeze for Dimensionless
impl Send for Dimensionless
impl Sync for Dimensionless
impl Unpin for Dimensionless
impl UnsafeUnpin for Dimensionless
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more