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}