pub struct AsinhCodec {
pub linear_width: f64,
pub version: StaticCodecVersion<1, 0, 0>,
}
Expand description
Asinh codec, which applies a quasi-logarithmic transformation on encoding.
For values close to zero that are within the codec’s linear_width
, the
transform is close to linear. For values of larger magnitudes, the
transform is asymptotically logarithmic. Unlike a logarithmic transform,
this codec supports all finite values, including negative values and zero.
In detail, the codec calculates
$c = w \cdot \text{asinh}\left( \frac{x}{w} \right)$
on encoding and
$d = w \cdot \text{sinh}\left( \frac{c}{w} \right)$
on decoding, where $w$
is the codec’s linear_width
.
The codec only supports finite floating point numbers.
Fields§
§linear_width: f64
The width of the close-to-zero input value range where the transform is nearly linear
version: StaticCodecVersion<1, 0, 0>
The codec’s encoding format version. Do not provide this parameter explicitly.
Trait Implementations§
Source§impl Clone for AsinhCodec
impl Clone for AsinhCodec
Source§fn clone(&self) -> AsinhCodec
fn clone(&self) -> AsinhCodec
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Codec for AsinhCodec
impl Codec for AsinhCodec
Source§fn encode(&self, data: AnyCowArray<'_>) -> Result<AnyArray, Self::Error>
fn encode(&self, data: AnyCowArray<'_>) -> Result<AnyArray, Self::Error>
data
and returns the result. Read moreSource§fn decode(&self, encoded: AnyCowArray<'_>) -> Result<AnyArray, Self::Error>
fn decode(&self, encoded: AnyCowArray<'_>) -> Result<AnyArray, Self::Error>
encoded
data and returns the result. Read moreSource§fn decode_into(
&self,
encoded: AnyArrayView<'_>,
decoded: AnyArrayViewMut<'_>,
) -> Result<(), Self::Error>
fn decode_into( &self, encoded: AnyArrayView<'_>, decoded: AnyArrayViewMut<'_>, ) -> Result<(), Self::Error>
Source§impl<'de> Deserialize<'de> for AsinhCodec
impl<'de> Deserialize<'de> for AsinhCodec
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for AsinhCodec
impl JsonSchema for AsinhCodec
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
§fn always_inline_schema() -> bool
fn always_inline_schema() -> bool
$ref
keyword. Read moreSource§impl Serialize for AsinhCodec
impl Serialize for AsinhCodec
Source§impl StaticCodec for AsinhCodec
impl StaticCodec for AsinhCodec
Source§type Config<'de> = AsinhCodec
type Config<'de> = AsinhCodec
Source§fn from_config(config: Self::Config<'_>) -> Self
fn from_config(config: Self::Config<'_>) -> Self
config
uration.Source§fn get_config(&self) -> StaticCodecConfig<'_, Self>
fn get_config(&self) -> StaticCodecConfig<'_, Self>
Auto Trait Implementations§
impl Freeze for AsinhCodec
impl RefUnwindSafe for AsinhCodec
impl Send for AsinhCodec
impl Sync for AsinhCodec
impl Unpin for AsinhCodec
impl UnwindSafe for AsinhCodec
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> DynCodec for Twhere
T: StaticCodec,
impl<T> DynCodec for Twhere
T: StaticCodec,
Source§type Type = StaticCodecType<T>
type Type = StaticCodecType<T>
Source§fn get_config<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
fn get_config<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
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