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: f64The 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
Source§fn inline_schema() -> bool
fn 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
configuration.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 UnsafeUnpin 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