LogMapper

Struct LogMapper 

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

Logarithmic range mapping.

Maps values logarithmically between the range endpoints. Suitable for frequency parameters where perceptual response is logarithmic.

§Panics

Panics if the range contains zero or negative values, as logarithm is undefined for non-positive numbers.

§Example

let mapper = LogMapper::new(20.0..=20000.0);
// Geometric mean is at normalized 0.5
let mid = mapper.denormalize(0.5);
assert!((mid - 632.45).abs() < 1.0); // sqrt(20 * 20000)

Implementations§

Source§

impl LogMapper

Source

pub fn new(range: RangeInclusive<f64>) -> Self

Create a new logarithmic mapper with the given range.

§Panics

Panics if:

  • The range start is not positive (log requires positive values)
  • The range end is not greater than the range start

Trait Implementations§

Source§

impl Clone for LogMapper

Source§

fn clone(&self) -> LogMapper

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for LogMapper

Source§

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

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

impl RangeMapper for LogMapper

Source§

fn normalize(&self, plain: f64) -> f64

Convert a plain value to normalized (0.0-1.0). Read more
Source§

fn denormalize(&self, normalized: f64) -> f64

Convert a normalized value (0.0-1.0) to plain. Read more
Source§

fn range(&self) -> (f64, f64)

Get the plain value range as (min, max).
Source§

fn default_normalized(&self, plain_default: f64) -> f64

Get the default normalized value for a given plain default.

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.