Skip to main content

CompressionOracle

Trait CompressionOracle 

Source
pub trait CompressionOracle: Send + Sync {
    // Required methods
    fn ncd_sym(
        &self,
        left: &[u8],
        right: &[u8],
    ) -> Result<f64, CompressionError>;
    fn compression_distance(
        &self,
        left: &[u8],
        right: &[u8],
    ) -> Result<f64, CompressionError>;
    fn intrinsic_dependence(
        &self,
        data: &[u8],
        max_order: i64,
    ) -> Result<f64, CompressionError>;

    // Provided methods
    fn batch_compression_distance(
        &self,
        target: &[u8],
        candidates: &[Vec<u8>],
    ) -> Result<Vec<f64>, CompressionError> { ... }
    fn batch_ncd_sym(
        &self,
        target: &[u8],
        candidates: &[Vec<u8>],
    ) -> Result<Vec<f64>, CompressionError> { ... }
}
Expand description

Compression capability (intentionally abstracted from router process).

Required Methods§

Source

fn ncd_sym(&self, left: &[u8], right: &[u8]) -> Result<f64, CompressionError>

Symmetric NCD-like distance.

Source

fn compression_distance( &self, left: &[u8], right: &[u8], ) -> Result<f64, CompressionError>

CMR Section 3.2 compression distance from spec: C(XY)-C(X) + C(YX)-C(Y).

Source

fn intrinsic_dependence( &self, data: &[u8], max_order: i64, ) -> Result<f64, CompressionError>

Intrinsic dependence.

Provided Methods§

Source

fn batch_compression_distance( &self, target: &[u8], candidates: &[Vec<u8>], ) -> Result<Vec<f64>, CompressionError>

Batch CMR distance, defaulting to repeated scalar calls.

Source

fn batch_ncd_sym( &self, target: &[u8], candidates: &[Vec<u8>], ) -> Result<Vec<f64>, CompressionError>

Batch NCD, defaulting to repeated scalar calls.

Implementors§