Skip to content

Commit

Permalink
radix and fidelity became parameters
Browse files Browse the repository at this point in the history
  • Loading branch information
ciminilorenzo committed Jan 23, 2024
1 parent 44125c4 commit 3ef2c3d
Show file tree
Hide file tree
Showing 24 changed files with 683 additions and 1,106 deletions.
3 changes: 1 addition & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,8 @@ env_logger = "0.10.1"
tempfile = "3.9.0"
epserde = "0.2.1"
mem_dbg = "0.1.3"
lender = "0.2.9"
dsi-progress-logger = "0.2.2"
thiserror = "1.0"

[dev-dependencies]
criterion = "0.5.1"
pprof = { version = "0.13.0", features = ["flamegraph", "criterion", "frame-pointer"] }
Expand Down
8 changes: 6 additions & 2 deletions examples/bench_bvgraph.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
/*
use epserde::prelude::{Deserialize, Serialize};
use webgraph::prelude::{BVComp, BVGraph, EmptyDict, RandomAccessLabelling, SequentialLabelling};
Expand All @@ -7,7 +8,7 @@ use folded_streaming_rans::bvgraph::writer::{BVGraphModelBuilder, BVGraphWriter}
use folded_streaming_rans::multi_model_ans::Prelude;
use anyhow::Result;
use folded_streaming_rans::bvgraph::mock_writers::{ANSymbolTable, EntropyMockWriter, Log2MockWriter, MockWriter};
use folded_streaming_rans::bvgraph::mock_writers::{ANSymbolTable, EntropyMockWriter, Log2MockWriter};
use folded_streaming_rans::multi_model_ans::encoder::ANSCompressorPhase;
const NODES: usize = 325557;
Expand Down Expand Up @@ -120,4 +121,7 @@ fn main() -> Result<()> {
dbg!(now.elapsed().as_nanos() / arcs as u128);
Ok(())
}
}
*/

fn main() {}
4 changes: 2 additions & 2 deletions src/ans/decoder.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
use crate::ans::model4decoder::VecFrame;
use crate::ans::{Prelude, K_LOG2};
use crate::ans::{Prelude, K_LOG2, DecoderModelEntry};
use crate::traits::folding::FoldRead;
use crate::traits::quasi::Quasi;
use crate::{DecoderModelEntry, RawSymbol, State, FASTER_RADIX, LOG2_B};
use crate::{RawSymbol, State, FASTER_RADIX, LOG2_B};
use epserde::traits::ZeroCopy;
use std::ops::Index;

Expand Down
20 changes: 16 additions & 4 deletions src/ans/mod.rs
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
use epserde::Epserde;
use epserde::prelude::ZeroCopy;
use crate::traits::folding::FoldRead;
use crate::{Freq, State};
use strength_reduce::StrengthReducedU64;
use crate::traits::quasi::Quasi;

mod decoder;
mod encoder;
mod model4decoder;
mod model4encoder;
pub mod decoder;
pub mod encoder;
pub mod model4decoder;
pub mod model4encoder;

pub const K: usize = 16;
pub const K_LOG2: usize = 4;
Expand Down Expand Up @@ -62,3 +65,12 @@ impl From<(Freq, u64, Freq)> for EncoderModelEntry {
}
}
}

#[derive(Clone, Copy, Debug, Default, Epserde)]
#[repr(C)]
#[zero_copy]
pub struct DecoderModelEntry<const RADIX: usize, T: Quasi<RADIX> + ZeroCopy + 'static> {
pub freq: Freq,
pub cumul_freq: Freq,
pub quasi_folded: T,
}
4 changes: 2 additions & 2 deletions src/ans/model4decoder.rs
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
use crate::traits::quasi::Quasi;
use crate::{DecoderModelEntry, State, Symbol};
use crate::{State, Symbol};
use epserde::prelude::*;
use std::ops::Index;
use sucds::bit_vectors::{Rank, Rank9Sel};
use sux::prelude::*;
use crate::ans::EncoderModelEntry;
use crate::ans::{DecoderModelEntry, EncoderModelEntry};

#[derive(Epserde)]
pub struct EliasFanoFrame<const RADIX: usize, T>
Expand Down
16 changes: 10 additions & 6 deletions src/bin/bvcomp.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
/*
use std::path::PathBuf;
use anyhow::Result;
use clap::{Parser};
Expand All @@ -8,7 +9,7 @@ use folded_streaming_rans::bvgraph::mock_writers::{ANSymbolTable, EntropyMockWri
use folded_streaming_rans::bvgraph::writer::{BVGraphModelBuilder, BVGraphWriter};
const FIDELITY: usize = 2;
const RADIX: usize = 4;
const RADIX: usize = 6;
#[derive(Parser, Debug)]
#[command(about = "Recompress a BVGraph", long_about = None)]
Expand Down Expand Up @@ -46,7 +47,7 @@ pub fn main() -> Result<()> {
FIDELITY,
RADIX,
Log2MockWriter<FIDELITY, RADIX>
>>::new(model_builder, 7, 2, 3, 0);
>>::new(model_builder, 16, 2, 2147483647, 0);
bvcomp.extend(seq_graph.iter())?;
Expand All @@ -67,17 +68,17 @@ pub fn main() -> Result<()> {
FIDELITY,
RADIX,
EntropyMockWriter<FIDELITY, RADIX>
>>::new(model_builder, 7, 2, 3, 0);
>>::new(model_builder, 16, 2, 2147483647, 0);
bvcomp.extend(seq_graph.iter())?;
let model4encoder = bvcomp.flush()?.build();
let mut bvcomp = BVComp::<BVGraphWriter<FIDELITY, RADIX>>::new(
BVGraphWriter::new(model4encoder, entropy_costs),
7,
16,
2,
3,
2147483647,
0
);
Expand All @@ -97,4 +98,7 @@ pub fn main() -> Result<()> {
Ok(())
}
}
*/

fn main() {}
10 changes: 4 additions & 6 deletions src/bin/bvtest.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
/*
use std::{
hint::black_box,
path::{PathBuf},
Expand All @@ -7,12 +8,6 @@ use anyhow::Result;
use clap::Parser;
use dsi_progress_logger::*;
use epserde::prelude::*;
use folded_streaming_rans::{
bvgraph::{
reader::ANSBVGraphReaderBuilder,
},
multi_model_ans::{encoder::ANSCompressorPhase, Prelude},
};
use rand::rngs::SmallRng;
use rand::Rng;
use rand::SeedableRng;
Expand Down Expand Up @@ -74,3 +69,6 @@ pub fn main() -> Result<()> {
Ok(())
}
*/

fn main() {}
Loading

0 comments on commit 3ef2c3d

Please # to comment.