pub struct InfotheoryCtx {
pub rate_backend: CompiledRateBackend,
pub compression_backend: CompiledCompressionBackend,
}Expand description
Reusable execution context holding default rate and compression backends.
Fields§
§rate_backend: CompiledRateBackendDefault rate backend for entropy/rate metrics.
compression_backend: CompiledCompressionBackendDefault compression backend for NCD/compression primitives.
Implementations§
Source§impl InfotheoryCtx
impl InfotheoryCtx
Sourcepub fn try_default() -> InfotheoryResult<Self>
pub fn try_default() -> InfotheoryResult<Self>
Create the current build’s implicit default context.
Sourcepub fn new(
rate_backend: CompiledRateBackend,
compression_backend: CompiledCompressionBackend,
) -> Self
pub fn new( rate_backend: CompiledRateBackend, compression_backend: CompiledCompressionBackend, ) -> Self
Create a context from explicit rate and compression backends.
Sourcepub fn from_specs(
rate_backend: RateBackend,
compression_backend: CompressionBackend,
) -> InfotheoryResult<Self>
pub fn from_specs( rate_backend: RateBackend, compression_backend: CompressionBackend, ) -> InfotheoryResult<Self>
Create a context from wrapper backend specs.
Sourcepub fn try_with_zpaq(
method: impl Into<ZpaqMethodSpec>,
) -> InfotheoryResult<Self>
pub fn try_with_zpaq( method: impl Into<ZpaqMethodSpec>, ) -> InfotheoryResult<Self>
Create a context with adaptive ROSA+ rate backend and ZPAQ compression backend.
Sourcepub fn try_compress_size(&self, data: &[u8]) -> InfotheoryResult<u64>
pub fn try_compress_size(&self, data: &[u8]) -> InfotheoryResult<u64>
Compressed length of one byte slice under this context’s compressor.
Sourcepub fn try_compress_size_chain(&self, parts: &[&[u8]]) -> InfotheoryResult<u64>
pub fn try_compress_size_chain(&self, parts: &[&[u8]]) -> InfotheoryResult<u64>
Compressed length of chained slices under one stream.
Sourcepub fn rate_backend_session(
&self,
total_symbols: Option<u64>,
) -> InfotheoryResult<RateBackendSession>
pub fn rate_backend_session( &self, total_symbols: Option<u64>, ) -> InfotheoryResult<RateBackendSession>
Create a stateful session for the active rate backend.
Sourcepub fn rate_backend_bit_session(
&self,
total_bits: Option<u64>,
semantics: BitStreamSemantics,
) -> InfotheoryResult<RateBackendBitSession>
pub fn rate_backend_bit_session( &self, total_bits: Option<u64>, semantics: BitStreamSemantics, ) -> InfotheoryResult<RateBackendBitSession>
Create a stateful bit-level session for the active rate backend.
Sourcepub fn try_entropy_rate_bytes(&self, data: &[u8]) -> InfotheoryResult<f64>
pub fn try_entropy_rate_bytes(&self, data: &[u8]) -> InfotheoryResult<f64>
Fallible entropy-rate estimate for data under this context’s rate backend.
Sourcepub fn try_biased_entropy_rate_bytes(
&self,
data: &[u8],
) -> InfotheoryResult<f64>
pub fn try_biased_entropy_rate_bytes( &self, data: &[u8], ) -> InfotheoryResult<f64>
Fallible biased entropy-rate estimate (plugin variant) for data.
Sourcepub fn try_cross_entropy_rate_bytes(
&self,
test_data: &[u8],
train_data: &[u8],
) -> InfotheoryResult<f64>
pub fn try_cross_entropy_rate_bytes( &self, test_data: &[u8], train_data: &[u8], ) -> InfotheoryResult<f64>
Fallible cross entropy of test_data under model trained on train_data.
Sourcepub fn try_cross_entropy_bytes(
&self,
test_data: &[u8],
train_data: &[u8],
) -> InfotheoryResult<f64>
pub fn try_cross_entropy_bytes( &self, test_data: &[u8], train_data: &[u8], ) -> InfotheoryResult<f64>
Cross entropy under the active rate backend.
Sourcepub fn try_joint_entropy_rate_bytes(
&self,
x: &[u8],
y: &[u8],
) -> InfotheoryResult<f64>
pub fn try_joint_entropy_rate_bytes( &self, x: &[u8], y: &[u8], ) -> InfotheoryResult<f64>
Fallible joint entropy-rate estimate H(X,Y) under aligned-prefix semantics.
Sourcepub fn try_conditional_entropy_rate_bytes(
&self,
x: &[u8],
y: &[u8],
) -> InfotheoryResult<f64>
pub fn try_conditional_entropy_rate_bytes( &self, x: &[u8], y: &[u8], ) -> InfotheoryResult<f64>
Fallible conditional entropy-rate estimate H(X|Y).
Sourcepub fn try_cross_entropy_conditional_chain(
&self,
prefix_parts: &[&[u8]],
data: &[u8],
) -> InfotheoryResult<f64>
pub fn try_cross_entropy_conditional_chain( &self, prefix_parts: &[&[u8]], data: &[u8], ) -> InfotheoryResult<f64>
Fallible H(data | prefix_parts) by conditioning the active rate backend
on an explicit prefix chain.
Sourcepub fn try_generate_bytes(
&self,
prompt: &[u8],
bytes: usize,
) -> InfotheoryResult<Vec<u8>>
pub fn try_generate_bytes( &self, prompt: &[u8], bytes: usize, ) -> InfotheoryResult<Vec<u8>>
Generate a continuation from prompt with GenerationConfig::default().
Sourcepub fn try_generate_bytes_with_config(
&self,
prompt: &[u8],
bytes: usize,
config: GenerationConfig,
) -> InfotheoryResult<Vec<u8>>
pub fn try_generate_bytes_with_config( &self, prompt: &[u8], bytes: usize, config: GenerationConfig, ) -> InfotheoryResult<Vec<u8>>
Fallible continuation generation from prompt using an explicit config.
Sourcepub fn try_generate_bytes_conditional_chain(
&self,
prefix_parts: &[&[u8]],
bytes: usize,
) -> InfotheoryResult<Vec<u8>>
pub fn try_generate_bytes_conditional_chain( &self, prefix_parts: &[&[u8]], bytes: usize, ) -> InfotheoryResult<Vec<u8>>
Generate a continuation after conditioning on an explicit chain of prefix parts.
Sourcepub fn try_generate_bytes_conditional_chain_with_config(
&self,
prefix_parts: &[&[u8]],
bytes: usize,
config: GenerationConfig,
) -> InfotheoryResult<Vec<u8>>
pub fn try_generate_bytes_conditional_chain_with_config( &self, prefix_parts: &[&[u8]], bytes: usize, config: GenerationConfig, ) -> InfotheoryResult<Vec<u8>>
Fallible continuation generation after conditioning on an explicit chain of prefix parts.
Sourcepub fn try_ncd_bytes(
&self,
x: &[u8],
y: &[u8],
variant: NcdVariant,
) -> InfotheoryResult<f64>
pub fn try_ncd_bytes( &self, x: &[u8], y: &[u8], variant: NcdVariant, ) -> InfotheoryResult<f64>
NCD between byte slices using this context’s compression backend.
Sourcepub fn try_mutual_information_rate_bytes(
&self,
x: &[u8],
y: &[u8],
) -> InfotheoryResult<f64>
pub fn try_mutual_information_rate_bytes( &self, x: &[u8], y: &[u8], ) -> InfotheoryResult<f64>
Rate-backend mutual information estimate.
Sourcepub fn try_mutual_information_bytes(
&self,
x: &[u8],
y: &[u8],
) -> InfotheoryResult<f64>
pub fn try_mutual_information_bytes( &self, x: &[u8], y: &[u8], ) -> InfotheoryResult<f64>
Mutual information under the active rate backend.
Sourcepub fn try_conditional_entropy_bytes(
&self,
x: &[u8],
y: &[u8],
) -> InfotheoryResult<f64>
pub fn try_conditional_entropy_bytes( &self, x: &[u8], y: &[u8], ) -> InfotheoryResult<f64>
Conditional entropy H(X|Y) under the active rate backend.
Sourcepub fn try_ned_bytes(&self, x: &[u8], y: &[u8]) -> InfotheoryResult<f64>
pub fn try_ned_bytes(&self, x: &[u8], y: &[u8]) -> InfotheoryResult<f64>
Normalized entropy distance (NED) under this context’s rate backend.
Sourcepub fn try_ned_cons_bytes(&self, x: &[u8], y: &[u8]) -> InfotheoryResult<f64>
pub fn try_ned_cons_bytes(&self, x: &[u8], y: &[u8]) -> InfotheoryResult<f64>
Conservative NED normalization variant under this context’s rate backend.
Sourcepub fn try_nte_bytes(&self, x: &[u8], y: &[u8]) -> InfotheoryResult<f64>
pub fn try_nte_bytes(&self, x: &[u8], y: &[u8]) -> InfotheoryResult<f64>
Normalized transform effort (NTE) under this context’s rate backend.
Sourcepub fn try_intrinsic_dependence_bytes(
&self,
data: &[u8],
) -> InfotheoryResult<f64>
pub fn try_intrinsic_dependence_bytes( &self, data: &[u8], ) -> InfotheoryResult<f64>
Intrinsic dependence score in [0,1] driven by (H₀(X) - Ĥ(X)) / H₀(X),
where H₀ is the order-0 / empirical entropy and Ĥ is the entropy rate
produced by this context’s rate backend.
Sourcepub fn try_resistance_to_transformation_bytes(
&self,
x: &[u8],
tx: &[u8],
) -> InfotheoryResult<f64>
pub fn try_resistance_to_transformation_bytes( &self, x: &[u8], tx: &[u8], ) -> InfotheoryResult<f64>
Resistance-to-transformation ratio I(X;T(X))/H(X) in [0,1] under this context’s rate backend.
Trait Implementations§
Source§impl Clone for InfotheoryCtx
impl Clone for InfotheoryCtx
Source§fn clone(&self) -> InfotheoryCtx
fn clone(&self) -> InfotheoryCtx
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for InfotheoryCtx
impl RefUnwindSafe for InfotheoryCtx
impl Send for InfotheoryCtx
impl Sync for InfotheoryCtx
impl Unpin for InfotheoryCtx
impl UnsafeUnpin for InfotheoryCtx
impl UnwindSafe for InfotheoryCtx
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,
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
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§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.