yoneda/
yoneda.rs

1use std::sync::Arc;
2
3use algebra::module::Module;
4use ext::{
5    chain_complex::{ChainComplex, FreeChainComplex},
6    utils,
7    yoneda::yoneda_representative_element,
8};
9use sseq::coordinates::Bidegree;
10
11fn main() -> anyhow::Result<()> {
12    ext::utils::init_logging()?;
13
14    let resolution = Arc::new(utils::query_module_only("Module", None, false)?);
15
16    let b = Bidegree::n_s(
17        query::raw("n of Ext class", str::parse),
18        query::raw("s of Ext class", str::parse),
19    );
20
21    resolution.compute_through_stem(b);
22
23    let class: Vec<u32> =
24        query::vector("Input Ext class", resolution.number_of_gens_in_bidegree(b));
25
26    let yoneda = Arc::new(yoneda_representative_element(
27        Arc::clone(&resolution),
28        b,
29        &class,
30    ));
31
32    for s in 0..=b.s() {
33        println!(
34            "Dimension of {s}th module is {}",
35            yoneda.module(s).total_dimension()
36        );
37    }
38
39    Ok(())
40}