pub struct InfotheoryCtx {
pub rate_backend: RateBackend,
pub compression_backend: CompressionBackend,
}Expand description
Reusable execution context holding default rate and compression backends.
Fields§
§rate_backend: RateBackendDefault rate backend for entropy/rate metrics.
compression_backend: CompressionBackendDefault compression backend for NCD/compression primitives.
Implementations§
Source§impl InfotheoryCtx
impl InfotheoryCtx
Sourcepub fn new(
rate_backend: RateBackend,
compression_backend: CompressionBackend,
) -> Self
pub fn new( rate_backend: RateBackend, compression_backend: CompressionBackend, ) -> Self
Create a context from explicit rate and compression backends.
Sourcepub fn with_zpaq(method: impl Into<String>) -> Self
pub fn with_zpaq(method: impl Into<String>) -> Self
Create a context with ROSA+ rate backend and ZPAQ compression backend.
Sourcepub fn compress_size(&self, data: &[u8]) -> u64
pub fn compress_size(&self, data: &[u8]) -> u64
Compressed length of one byte slice under this context’s compressor.
Sourcepub fn compress_size_chain(&self, parts: &[&[u8]]) -> u64
pub fn compress_size_chain(&self, parts: &[&[u8]]) -> u64
Compressed length of chained slices under one stream.
Sourcepub fn rate_backend_session(
&self,
max_order: i64,
total_symbols: Option<u64>,
) -> Result<RateBackendSession, String>
pub fn rate_backend_session( &self, max_order: i64, total_symbols: Option<u64>, ) -> Result<RateBackendSession, String>
Create a stateful session for the active rate backend.
Sourcepub fn entropy_rate_bytes(&self, data: &[u8], max_order: i64) -> f64
pub fn entropy_rate_bytes(&self, data: &[u8], max_order: i64) -> f64
Entropy-rate estimate for data under this context’s rate backend.
Sourcepub fn biased_entropy_rate_bytes(&self, data: &[u8], max_order: i64) -> f64
pub fn biased_entropy_rate_bytes(&self, data: &[u8], max_order: i64) -> f64
Biased entropy-rate estimate (plugin variant) for data.
Sourcepub fn cross_entropy_rate_bytes(
&self,
test_data: &[u8],
train_data: &[u8],
max_order: i64,
) -> f64
pub fn cross_entropy_rate_bytes( &self, test_data: &[u8], train_data: &[u8], max_order: i64, ) -> f64
Cross entropy of test_data under model trained on train_data.
Sourcepub fn cross_entropy_bytes(
&self,
test_data: &[u8],
train_data: &[u8],
max_order: i64,
) -> f64
pub fn cross_entropy_bytes( &self, test_data: &[u8], train_data: &[u8], max_order: i64, ) -> f64
Cross entropy with order-0 fast-path fallback when max_order == 0.
Sourcepub fn joint_entropy_rate_bytes(
&self,
x: &[u8],
y: &[u8],
max_order: i64,
) -> f64
pub fn joint_entropy_rate_bytes( &self, x: &[u8], y: &[u8], max_order: i64, ) -> f64
Joint entropy-rate estimate H(X,Y) under aligned-prefix semantics.
Sourcepub fn conditional_entropy_rate_bytes(
&self,
x: &[u8],
y: &[u8],
max_order: i64,
) -> f64
pub fn conditional_entropy_rate_bytes( &self, x: &[u8], y: &[u8], max_order: i64, ) -> f64
Conditional entropy-rate estimate H(X|Y).
Sourcepub fn cross_entropy_conditional_chain(
&self,
prefix_parts: &[&[u8]],
data: &[u8],
) -> f64
pub fn cross_entropy_conditional_chain( &self, prefix_parts: &[&[u8]], data: &[u8], ) -> f64
Compute H(data | prefix_parts) by conditioning the active rate backend
on an explicit prefix chain.
Sourcepub fn generate_bytes(
&self,
prompt: &[u8],
bytes: usize,
max_order: i64,
) -> Vec<u8> ⓘ
pub fn generate_bytes( &self, prompt: &[u8], bytes: usize, max_order: i64, ) -> Vec<u8> ⓘ
Generate a continuation from prompt with GenerationConfig::default().
The default is deterministic frozen sampling with seed 42.
Sourcepub fn generate_bytes_with_config(
&self,
prompt: &[u8],
bytes: usize,
max_order: i64,
config: GenerationConfig,
) -> Vec<u8> ⓘ
pub fn generate_bytes_with_config( &self, prompt: &[u8], bytes: usize, max_order: i64, config: GenerationConfig, ) -> Vec<u8> ⓘ
Generate a continuation from prompt using an explicit generation config.
Sourcepub fn generate_bytes_conditional_chain(
&self,
prefix_parts: &[&[u8]],
bytes: usize,
max_order: i64,
) -> Vec<u8> ⓘ
pub fn generate_bytes_conditional_chain( &self, prefix_parts: &[&[u8]], bytes: usize, max_order: i64, ) -> Vec<u8> ⓘ
Generate a continuation after conditioning on an explicit chain of prefix parts.
Sourcepub fn generate_bytes_conditional_chain_with_config(
&self,
prefix_parts: &[&[u8]],
bytes: usize,
max_order: i64,
config: GenerationConfig,
) -> Vec<u8> ⓘ
pub fn generate_bytes_conditional_chain_with_config( &self, prefix_parts: &[&[u8]], bytes: usize, max_order: i64, config: GenerationConfig, ) -> Vec<u8> ⓘ
Generate a continuation after conditioning on an explicit chain of prefix parts.
Sourcepub fn ncd_bytes(&self, x: &[u8], y: &[u8], variant: NcdVariant) -> f64
pub fn ncd_bytes(&self, x: &[u8], y: &[u8], variant: NcdVariant) -> f64
NCD between byte slices using this context’s compression backend.
Sourcepub fn mutual_information_rate_bytes(
&self,
x: &[u8],
y: &[u8],
max_order: i64,
) -> f64
pub fn mutual_information_rate_bytes( &self, x: &[u8], y: &[u8], max_order: i64, ) -> f64
Rate-backend mutual information estimate.
Sourcepub fn mutual_information_bytes(
&self,
x: &[u8],
y: &[u8],
max_order: i64,
) -> f64
pub fn mutual_information_bytes( &self, x: &[u8], y: &[u8], max_order: i64, ) -> f64
Mutual information with max_order == 0 marginal fast-path.
Sourcepub fn conditional_entropy_bytes(
&self,
x: &[u8],
y: &[u8],
max_order: i64,
) -> f64
pub fn conditional_entropy_bytes( &self, x: &[u8], y: &[u8], max_order: i64, ) -> f64
Conditional entropy with aligned-prefix semantics.
Sourcepub fn ned_bytes(&self, x: &[u8], y: &[u8], max_order: i64) -> f64
pub fn ned_bytes(&self, x: &[u8], y: &[u8], max_order: i64) -> f64
Normalized entropy distance (NED) under this context.
Sourcepub fn ned_cons_bytes(&self, x: &[u8], y: &[u8], max_order: i64) -> f64
pub fn ned_cons_bytes(&self, x: &[u8], y: &[u8], max_order: i64) -> f64
Conservative NED normalization variant.
Sourcepub fn nte_bytes(&self, x: &[u8], y: &[u8], max_order: i64) -> f64
pub fn nte_bytes(&self, x: &[u8], y: &[u8], max_order: i64) -> f64
Normalized transform effort (NTE) under this context.
Sourcepub fn intrinsic_dependence_bytes(&self, data: &[u8], max_order: i64) -> f64
pub fn intrinsic_dependence_bytes(&self, data: &[u8], max_order: i64) -> f64
Intrinsic dependence score in [0,1].
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 moreSource§impl Default for InfotheoryCtx
impl Default for InfotheoryCtx
Source§fn default() -> InfotheoryCtx
fn default() -> InfotheoryCtx
Auto Trait Implementations§
impl Freeze for InfotheoryCtx
impl RefUnwindSafe for InfotheoryCtx
impl Send for InfotheoryCtx
impl Sync for InfotheoryCtx
impl Unpin 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.