From 0693e52f370c66a8713594d80635e344559b19ee Mon Sep 17 00:00:00 2001 From: Kavi Gupta Date: Thu, 31 Jul 2025 19:40:15 -0400 Subject: [PATCH 1/8] regression test weights --- src/test_utils.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/test_utils.rs b/src/test_utils.rs index f602fbb5..ead145c3 100644 --- a/src/test_utils.rs +++ b/src/test_utils.rs @@ -4,12 +4,16 @@ use crate::{multistep_compression, Input, MultistepCompressionConfig}; pub fn run_compression_testing(inputs: &Input, cfg: &MultistepCompressionConfig) -> Value { + run_compression_testing_weighted(inputs, cfg, None) +} + +pub fn run_compression_testing_weighted(inputs: &Input, cfg: &MultistepCompressionConfig, weights: Option>) -> Value { multistep_compression( &inputs.train_programs, inputs.tasks.clone(), - None, + weights, inputs.name_mapping.clone(), None, cfg, - ).1 + ).1 } From bd134c511ebfe971cd50aedf3503dead1513a12b Mon Sep 17 00:00:00 2001 From: Kavi Gupta Date: Thu, 31 Jul 2025 22:37:48 -0400 Subject: [PATCH 2/8] add test. does not work --- tests/fuzz_symbol_weighting_test.rs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/tests/fuzz_symbol_weighting_test.rs b/tests/fuzz_symbol_weighting_test.rs index bc8348c6..e762373e 100644 --- a/tests/fuzz_symbol_weighting_test.rs +++ b/tests/fuzz_symbol_weighting_test.rs @@ -62,13 +62,13 @@ fn generate_random_weights(selected_symbols: &[&String], rng: &mut impl Rng) -> cost_prims } -fn run_fuzz_compression(input: &Input, cost_prims: &serde_json::Value, test_file: &std::path::Path) { +fn run_fuzz_compression(input: &Input, cost_prims: &serde_json::Value, test_file: &std::path::Path, weights: Option>) { let cost_prims_str = cost_prims.to_string(); let args = vec!["compress", "-i1", "-a3", "--verbose-best", "--cost-prim", &cost_prims_str]; println!("Running fuzz test with command: {}", args.join(" ")); println!("Test file: {}", test_file.display()); let cfg = MultistepCompressionConfig::parse_from(args); - let _output = run_compression_testing(input, &cfg); + let _output = run_compression_testing_weighted(input, &cfg, weights); } #[test_matrix(1..=100)] @@ -85,9 +85,15 @@ fn fuzz_test_symbol_weighting(seed: u64) { let selected_symbols = select_random_symbols(&symbols_vec, 3, &mut rng); let cost_prims = generate_random_weights(&selected_symbols, &mut rng); + let weights = if rng.gen_bool(0.5) { + Some(input.train_programs.iter().map(|_| rng.gen_range(0..=2) as f32).collect()) + } else { + None + }; + let (tx, rx) = mpsc::channel(); thread::spawn(move || { - run_fuzz_compression(&input, &cost_prims, &test_file); + run_fuzz_compression(&input, &cost_prims, &test_file, weights); tx.send(()).unwrap(); }); From 8c01d8f25c092c7274fa3fef99bb77f01721ea15 Mon Sep 17 00:00:00 2001 From: Maddy Bowers Date: Mon, 11 Aug 2025 18:50:20 -0400 Subject: [PATCH 3/8] fixed upper bound computation for weights --- src/compression.rs | 45 +++++++++++++++++++++++++++++++-------------- 1 file changed, 31 insertions(+), 14 deletions(-) diff --git a/src/compression.rs b/src/compression.rs index c2b2c231..e1d7dd86 100644 --- a/src/compression.rs +++ b/src/compression.rs @@ -428,7 +428,7 @@ impl CostConfig { impl Pattern { /// create a single hole pattern `??` //#[inline(never)] - fn single_hole(corpus_span: &Span, cost_of_node_sym: &[Cost], cost_of_node_all: &[Cost], num_paths_to_node: &[Cost], tdfa_global_annotations: &Option, set: &ExprSet, cfg: &CompressionStepConfig) -> Self { + fn single_hole(corpus_span: &Span, root_idxs_of_task: &[Vec], weight_by_root_idx: &[f32], num_paths_to_node_by_root_idx: &[Vec], analyzed_cost: &AnalyzedExpr, cost_fn: &ExprCost, tdfa_global_annotations: &Option, set: &ExprSet, cfg: &CompressionStepConfig) -> Self { let body_utility = 0; let mut match_locations: Vec = corpus_span.clone().collect(); match_locations.sort(); // we assume match_locations is always sorted @@ -494,7 +494,7 @@ impl Pattern { match_locations.retain(|node| expands_to_of_node(&set[*node]).is_lam()); } - let utility_upper_bound = utility_upper_bound(&match_locations, body_utility, cost_of_node_sym, cost_of_node_all, num_paths_to_node, cfg); + let utility_upper_bound = utility_upper_bound(&match_locations, body_utility, root_idxs_of_task, weight_by_root_idx, num_paths_to_node_by_root_idx, analyzed_cost, cost_fn, cfg); Pattern { holes: vec![EMPTY_ZID], // (zid 0 is the empty zipper) pattern_args: PatternArgs::default(), @@ -981,7 +981,7 @@ fn stitch_search( let body_utility = original_pattern.body_utility + expands_to.local_expansion_utility(&shared); // update the upper bound - let util_upper_bound: Cost = utility_upper_bound(&locs, body_utility, &shared.cost_of_node_sym, &shared.cost_of_node_all, &shared.num_paths_to_node, &shared.cfg); + let util_upper_bound: Cost = utility_upper_bound(&locs, body_utility, &shared.root_idxs_of_task, &shared.weight_by_root_idx, &shared.num_paths_to_node_by_root_idx, &shared.analyzed_cost, &shared.cost_fn, &shared.cfg); assert!(util_upper_bound <= original_pattern.utility_upper_bound); // Pruning (UPPER BOUND): if the upper bound is less than the best invention we've found so far (our cutoff), we can discard this pattern @@ -1445,12 +1445,14 @@ impl fmt::Display for CompressionStepResult { fn utility_upper_bound( match_locations: &[Idx], body_utility_lower_bound: Cost, - cost_of_node_sym: &[Cost], - cost_of_node_all: &[Cost], - num_paths_to_node: &[Cost], + root_idxs_of_task: &[Vec], + weight_by_root_idx: &[f32], + num_paths_to_node_by_root_idx: &[Vec], + analyzed_cost: &AnalyzedExpr, + cost_fn: &ExprCost, cfg: &CompressionStepConfig, ) -> Cost { - compressive_utility_upper_bound(match_locations, cost_of_node_sym, cost_of_node_all, num_paths_to_node) + compressive_utility_upper_bound(match_locations, root_idxs_of_task, weight_by_root_idx, num_paths_to_node_by_root_idx, analyzed_cost, cost_fn) + noncompressive_utility_upper_bound(body_utility_lower_bound, cfg) } @@ -1474,13 +1476,28 @@ fn noncompressive_utility( //#[inline(never)] fn compressive_utility_upper_bound( match_locations: &[Idx], - cost_of_node_sym: &[Cost], - cost_of_node_all: &[Cost], - num_paths_to_node: &[Cost], + root_idxs_of_task: &[Vec], + weight_by_root_idx: &[f32], + num_paths_to_node_by_root_idx: &[Vec], + analyzed_cost: &AnalyzedExpr, + cost_fn: &ExprCost, ) -> Cost { - match_locations.iter().map(|node| - cost_of_node_all[*node] - - num_paths_to_node[*node] * cost_of_node_sym[*node]).sum::() + // sum over tasks + // of max over root_idxs + // of sum over match locations + // of upper bound for that match location within that root idx, weighted by the root idx weight + root_idxs_of_task.iter().map(|root_idxs| + match_locations.iter().map(|node| + root_idxs.iter().map(|idx| + weight_by_root_idx[*idx] * (num_paths_to_node_by_root_idx[*idx][*node] * + (analyzed_cost[*node] as Cost - cost_fn.compute_cost_new_prim() as Cost)) as f32 + ).sum::() + ).fold(0.0, |acc, x| f32::max(acc, x)) + ).sum::() as Cost + + // match_locations.iter().map(|node| + // cost_of_node_all[*node] + // - num_paths_to_node[*node] * cost_of_node_sym[*node]).sum::() // shared.init_cost - shared.root_idxs_of_task.iter().map(|root_idxs| // root_idxs.iter().map(|idx| shared.init_cost_by_root_idx[*idx] - adjusted_util_by_root_idx[*idx]).min().unwrap() @@ -1957,7 +1974,7 @@ pub fn construct_shared( let tdfa_global_annotations = TDFAGlobalAnnotations::new(cfg, &set, &roots, prev_results, &sym_var_info); - let single_hole = Pattern::single_hole(&corpus_span, &cost_of_node_sym, &cost_of_node_all, &num_paths_to_node, &tdfa_global_annotations, &set, cfg); + let single_hole = Pattern::single_hole(&corpus_span, &root_idxs_of_task, &weights, &num_paths_to_node_by_root_idx, &analyzed_cost, &cost_fn, &tdfa_global_annotations, &set, cfg); let mut azero_pruning_cutoff = 0; From 081de9e6a35053f26d97119bafc14951b1f1091b Mon Sep 17 00:00:00 2001 From: Maddy Bowers Date: Mon, 11 Aug 2025 18:58:42 -0400 Subject: [PATCH 4/8] reorder to fix --- src/compression.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/compression.rs b/src/compression.rs index e1d7dd86..8cd8269c 100644 --- a/src/compression.rs +++ b/src/compression.rs @@ -1483,17 +1483,17 @@ fn compressive_utility_upper_bound( cost_fn: &ExprCost, ) -> Cost { // sum over tasks - // of max over root_idxs // of sum over match locations + // of max over root_idxs // of upper bound for that match location within that root idx, weighted by the root idx weight root_idxs_of_task.iter().map(|root_idxs| match_locations.iter().map(|node| root_idxs.iter().map(|idx| weight_by_root_idx[*idx] * (num_paths_to_node_by_root_idx[*idx][*node] * (analyzed_cost[*node] as Cost - cost_fn.compute_cost_new_prim() as Cost)) as f32 - ).sum::() - ).fold(0.0, |acc, x| f32::max(acc, x)) - ).sum::() as Cost + ).fold(0.0, |acc, x| f32::max(acc, x)) + ).sum::() + ).sum::().ceil() as Cost // match_locations.iter().map(|node| // cost_of_node_all[*node] From 80ea1521d997586971d1368f194886501d0956f3 Mon Sep 17 00:00:00 2001 From: Maddy Bowers Date: Mon, 11 Aug 2025 19:59:13 -0400 Subject: [PATCH 5/8] add max(0, _) --- src/compression.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/compression.rs b/src/compression.rs index 8cd8269c..c49a70dc 100644 --- a/src/compression.rs +++ b/src/compression.rs @@ -1489,8 +1489,10 @@ fn compressive_utility_upper_bound( root_idxs_of_task.iter().map(|root_idxs| match_locations.iter().map(|node| root_idxs.iter().map(|idx| - weight_by_root_idx[*idx] * (num_paths_to_node_by_root_idx[*idx][*node] * - (analyzed_cost[*node] as Cost - cost_fn.compute_cost_new_prim() as Cost)) as f32 + f32::max(0., + weight_by_root_idx[*idx] * (num_paths_to_node_by_root_idx[*idx][*node] * + (analyzed_cost[*node] as Cost - cost_fn.compute_cost_new_prim() as Cost)) as f32 + ) ).fold(0.0, |acc, x| f32::max(acc, x)) ).sum::() ).sum::().ceil() as Cost From 20675599018f18bed2f0230637eec913e3bd0b96 Mon Sep 17 00:00:00 2001 From: Maddy Bowers Date: Mon, 11 Aug 2025 20:00:47 -0400 Subject: [PATCH 6/8] porting over change from main --- data/expected_outputs/nuts-bolts-a3-i10.json | 813 ++++++++++--------- 1 file changed, 417 insertions(+), 396 deletions(-) diff --git a/data/expected_outputs/nuts-bolts-a3-i10.json b/data/expected_outputs/nuts-bolts-a3-i10.json index c4f29733..3a743656 100644 --- a/data/expected_outputs/nuts-bolts-a3-i10.json +++ b/data/expected_outputs/nuts-bolts-a3-i10.json @@ -1,5 +1,5 @@ { - "cmd": "/home/kavi/mit/stitch/target/debug/deps/integration_tests-70c02753e92550f2 nuts_bolts_a3_i10", + "cmd": "/Users/maddy/proj/rust/stitch/target/release/deps/integration_tests-49a51eaa9472ff68", "args": { "iterations": 10, "abstraction_prefix": "fn_", @@ -26,7 +26,7 @@ "cost_var": 100, "cost_ivar": 100, "cost_prim_default": 100, - "cost_prim": "" + "cost_prim": "{}" }, "no_mismatch_check": false, "follow": null, @@ -52,6 +52,17 @@ "quiet": false, "fused_lambda_tags": { "tags": null + }, + "tdfa": { + "tdfa_json_path": null, + "tdfa_root": null, + "valid_metavars": null, + "valid_roots": null, + "tdfa_non_eta_long_states": null, + "tdfa_split": null + }, + "symvar": { + "symvar_prefix": null } } }, @@ -324,44 +335,44 @@ "(fn_4 2 8)", "(fn_4 1 8)", "(fn_3 1 (fn_0 4 8))", - "(fn_5 3 4 (C (fn_2 4) (fn_2 2)))", - "(fn_5 1.5 4 (C (fn_2 4) (fn_2 1)))", - "(fn_5 1.5 6 (C (fn_2 4) (fn_2 1)))", - "(fn_5 1.5 8 (C (fn_2 4) (fn_2 1)))", - "(fn_6 3 4 (fn_7 2 (fn_2 4)))", - "(fn_6 1.5 4 (fn_7 1 (fn_2 4)))", - "(fn_6 1.5 8 (fn_7 1 (fn_2 4)))", - "(fn_5 1.5 2 (fn_7 1 (fn_2 4)))", - "(fn_6 3 6 (fn_3 2 (fn_2 4)))", - "(fn_6 1.5 8 (fn_3 1 (fn_2 4)))", - "(fn_5 1.5 6 (fn_3 1 (fn_2 4)))", - "(fn_6 1.5 6 (fn_8 1 6))", - "(fn_5 3 6 (fn_4 2 6))", - "(fn_5 3 8 (fn_4 2 6))", - "(fn_5 1.5 6 (fn_4 1 6))", - "(fn_5 3 4 (fn_3 2 (fn_0 4 6)))", - "(fn_6 1.5 4 (fn_3 1 (fn_0 4 6)))", - "(fn_6 1.5 6 (fn_3 1 (fn_0 4 6)))", - "(fn_6 1.5 8 (fn_3 1 (fn_0 4 6)))", - "(fn_5 1.5 4 (fn_3 1 (fn_0 4 6)))", - "(fn_5 1.5 6 (fn_3 1 (fn_0 4 6)))", - "(fn_6 3 6 (fn_8 2 8))", - "(fn_6 1.5 2 (fn_8 1 8))", - "(fn_6 1.5 4 (fn_8 1 8))", - "(fn_6 1.5 6 (fn_8 1 8))", - "(fn_6 3 4 (fn_4 2 8))", - "(fn_6 1.5 4 (fn_4 1 8))", - "(fn_5 1.5 4 (fn_4 1 8))", - "(fn_6 3 8 (fn_3 2 (fn_0 4 8)))", - "(fn_6 1.5 2 (fn_3 1 (fn_0 4 8)))", - "(fn_5 1.5 2 (fn_3 1 (fn_0 4 8)))", - "(fn_6 3 6 (C fn_9 (fn_2 2)))", - "(fn_6 1.5 6 (C fn_9 (fn_2 1)))", - "(fn_5 1.5 2 (C fn_9 (fn_2 1)))", - "(fn_5 1.5 4 (C fn_9 (fn_2 1)))", - "(fn_6 3 2 (fn_7 2 fn_9))", - "(fn_6 3 6 (fn_7 2 fn_9))", - "(fn_5 1.5 6 (fn_7 1 fn_9))", + "(fn_6 r 4 (C (fn_2 4) (fn_2 2)))", + "(fn_5 r 4 (C (fn_2 4) (fn_2 1)))", + "(fn_5 r 6 (C (fn_2 4) (fn_2 1)))", + "(fn_5 r 8 (C (fn_2 4) (fn_2 1)))", + "(fn_6 c 4 (fn_7 2 (fn_2 4)))", + "(fn_5 c 4 (fn_7 1 (fn_2 4)))", + "(fn_5 c 8 (fn_7 1 (fn_2 4)))", + "(fn_5 r 2 (fn_7 1 (fn_2 4)))", + "(fn_6 c 6 (fn_3 2 (fn_2 4)))", + "(fn_5 c 8 (fn_3 1 (fn_2 4)))", + "(fn_5 r 6 (fn_3 1 (fn_2 4)))", + "(fn_5 c 6 (fn_8 1 6))", + "(fn_6 r 6 (fn_4 2 6))", + "(fn_6 r 8 (fn_4 2 6))", + "(fn_5 r 6 (fn_4 1 6))", + "(fn_6 r 4 (fn_3 2 (fn_0 4 6)))", + "(fn_5 c 4 (fn_3 1 (fn_0 4 6)))", + "(fn_5 c 6 (fn_3 1 (fn_0 4 6)))", + "(fn_5 c 8 (fn_3 1 (fn_0 4 6)))", + "(fn_5 r 4 (fn_3 1 (fn_0 4 6)))", + "(fn_5 r 6 (fn_3 1 (fn_0 4 6)))", + "(fn_6 c 6 (fn_8 2 8))", + "(fn_5 c 2 (fn_8 1 8))", + "(fn_5 c 4 (fn_8 1 8))", + "(fn_5 c 6 (fn_8 1 8))", + "(fn_6 c 4 (fn_4 2 8))", + "(fn_5 c 4 (fn_4 1 8))", + "(fn_5 r 4 (fn_4 1 8))", + "(fn_6 c 8 (fn_3 2 (fn_0 4 8)))", + "(fn_5 c 2 (fn_3 1 (fn_0 4 8)))", + "(fn_5 r 2 (fn_3 1 (fn_0 4 8)))", + "(fn_6 c 6 (C fn_9 (fn_2 2)))", + "(fn_5 c 6 (C fn_9 (fn_2 1)))", + "(fn_5 r 2 (C fn_9 (fn_2 1)))", + "(fn_5 r 4 (C fn_9 (fn_2 1)))", + "(fn_6 c 2 (fn_7 2 fn_9))", + "(fn_6 c 6 (fn_7 2 fn_9))", + "(fn_5 r 6 (fn_7 1 fn_9))", "(C (fn_2 2) (fn_2 1))", "(C (fn_2 2) (fn_2 0.5))", "(fn_7 1 (fn_2 2))", @@ -410,158 +421,158 @@ "(fn_8 2 8)", "(fn_8 1 8)", "(fn_3 2 (fn_0 4 8))", - "(fn_6 3 2 (C (fn_2 4) (fn_2 2)))", - "(fn_6 3 4 (C (fn_2 4) (fn_2 2)))", - "(fn_6 3 6 (C (fn_2 4) (fn_2 2)))", - "(fn_6 3 8 (C (fn_2 4) (fn_2 2)))", - "(fn_5 3 2 (C (fn_2 4) (fn_2 2)))", - "(fn_5 3 6 (C (fn_2 4) (fn_2 2)))", - "(fn_5 3 8 (C (fn_2 4) (fn_2 2)))", - "(fn_6 1.5 2 (C (fn_2 4) (fn_2 1)))", - "(fn_6 1.5 4 (C (fn_2 4) (fn_2 1)))", - "(fn_6 1.5 6 (C (fn_2 4) (fn_2 1)))", - "(fn_6 1.5 8 (C (fn_2 4) (fn_2 1)))", - "(fn_5 1.5 2 (C (fn_2 4) (fn_2 1)))", - "(fn_6 3 2 (fn_7 2 (fn_2 4)))", - "(fn_6 3 6 (fn_7 2 (fn_2 4)))", - "(fn_6 3 8 (fn_7 2 (fn_2 4)))", - "(fn_5 3 2 (fn_7 2 (fn_2 4)))", - "(fn_5 3 4 (fn_7 2 (fn_2 4)))", - "(fn_5 3 6 (fn_7 2 (fn_2 4)))", - "(fn_5 3 8 (fn_7 2 (fn_2 4)))", - "(fn_6 1.5 2 (fn_7 1 (fn_2 4)))", - "(fn_6 1.5 6 (fn_7 1 (fn_2 4)))", - "(fn_5 1.5 4 (fn_7 1 (fn_2 4)))", - "(fn_5 1.5 6 (fn_7 1 (fn_2 4)))", - "(fn_5 1.5 8 (fn_7 1 (fn_2 4)))", - "(fn_6 3 2 (fn_3 2 (fn_2 4)))", - "(fn_6 3 4 (fn_3 2 (fn_2 4)))", - "(fn_6 3 8 (fn_3 2 (fn_2 4)))", - "(fn_5 3 2 (fn_3 2 (fn_2 4)))", - "(fn_5 3 4 (fn_3 2 (fn_2 4)))", - "(fn_5 3 6 (fn_3 2 (fn_2 4)))", - "(fn_5 3 8 (fn_3 2 (fn_2 4)))", - "(fn_6 1.5 2 (fn_3 1 (fn_2 4)))", - "(fn_6 1.5 4 (fn_3 1 (fn_2 4)))", - "(fn_6 1.5 6 (fn_3 1 (fn_2 4)))", - "(fn_5 1.5 2 (fn_3 1 (fn_2 4)))", - "(fn_5 1.5 4 (fn_3 1 (fn_2 4)))", - "(fn_5 1.5 8 (fn_3 1 (fn_2 4)))", - "(fn_6 3 2 (fn_8 2 6))", - "(fn_6 3 4 (fn_8 2 6))", - "(fn_6 3 6 (fn_8 2 6))", - "(fn_6 3 8 (fn_8 2 6))", - "(fn_5 3 2 (fn_8 2 6))", - "(fn_5 3 4 (fn_8 2 6))", - "(fn_5 3 6 (fn_8 2 6))", - "(fn_5 3 8 (fn_8 2 6))", - "(fn_6 1.5 2 (fn_8 1 6))", - "(fn_6 1.5 4 (fn_8 1 6))", - "(fn_6 1.5 8 (fn_8 1 6))", - "(fn_5 1.5 2 (fn_8 1 6))", - "(fn_5 1.5 4 (fn_8 1 6))", - "(fn_5 1.5 6 (fn_8 1 6))", - "(fn_5 1.5 8 (fn_8 1 6))", - "(fn_6 3 2 (fn_4 2 6))", - "(fn_6 3 4 (fn_4 2 6))", - "(fn_6 3 6 (fn_4 2 6))", - "(fn_6 3 8 (fn_4 2 6))", - "(fn_5 3 2 (fn_4 2 6))", - "(fn_5 3 4 (fn_4 2 6))", - "(fn_6 1.5 2 (fn_4 1 6))", - "(fn_6 1.5 4 (fn_4 1 6))", - "(fn_6 1.5 6 (fn_4 1 6))", - "(fn_6 1.5 8 (fn_4 1 6))", - "(fn_5 1.5 2 (fn_4 1 6))", - "(fn_5 1.5 4 (fn_4 1 6))", - "(fn_5 1.5 8 (fn_4 1 6))", - "(fn_6 3 2 (fn_3 2 (fn_0 4 6)))", - "(fn_6 3 4 (fn_3 2 (fn_0 4 6)))", - "(fn_6 3 6 (fn_3 2 (fn_0 4 6)))", - "(fn_6 3 8 (fn_3 2 (fn_0 4 6)))", - "(fn_5 3 2 (fn_3 2 (fn_0 4 6)))", - "(fn_5 3 6 (fn_3 2 (fn_0 4 6)))", - "(fn_5 3 8 (fn_3 2 (fn_0 4 6)))", - "(fn_6 1.5 2 (fn_3 1 (fn_0 4 6)))", - "(fn_5 1.5 2 (fn_3 1 (fn_0 4 6)))", - "(fn_5 1.5 8 (fn_3 1 (fn_0 4 6)))", - "(fn_6 3 2 (fn_8 2 8))", - "(fn_6 3 4 (fn_8 2 8))", - "(fn_6 3 8 (fn_8 2 8))", - "(fn_5 3 2 (fn_8 2 8))", - "(fn_5 3 4 (fn_8 2 8))", - "(fn_5 3 6 (fn_8 2 8))", - "(fn_5 3 8 (fn_8 2 8))", - "(fn_6 1.5 8 (fn_8 1 8))", - "(fn_5 1.5 2 (fn_8 1 8))", - "(fn_5 1.5 4 (fn_8 1 8))", - "(fn_5 1.5 6 (fn_8 1 8))", - "(fn_5 1.5 8 (fn_8 1 8))", - "(fn_6 3 2 (fn_4 2 8))", - "(fn_6 3 6 (fn_4 2 8))", - "(fn_6 3 8 (fn_4 2 8))", - "(fn_5 3 2 (fn_4 2 8))", - "(fn_5 3 4 (fn_4 2 8))", - "(fn_5 3 6 (fn_4 2 8))", - "(fn_5 3 8 (fn_4 2 8))", - "(fn_6 1.5 2 (fn_4 1 8))", - "(fn_6 1.5 6 (fn_4 1 8))", - "(fn_6 1.5 8 (fn_4 1 8))", - "(fn_5 1.5 2 (fn_4 1 8))", - "(fn_5 1.5 6 (fn_4 1 8))", - "(fn_5 1.5 8 (fn_4 1 8))", - "(fn_6 3 2 (fn_3 2 (fn_0 4 8)))", - "(fn_6 3 4 (fn_3 2 (fn_0 4 8)))", - "(fn_6 3 6 (fn_3 2 (fn_0 4 8)))", - "(fn_5 3 2 (fn_3 2 (fn_0 4 8)))", - "(fn_5 3 4 (fn_3 2 (fn_0 4 8)))", - "(fn_5 3 6 (fn_3 2 (fn_0 4 8)))", - "(fn_5 3 8 (fn_3 2 (fn_0 4 8)))", - "(fn_6 1.5 4 (fn_3 1 (fn_0 4 8)))", - "(fn_6 1.5 6 (fn_3 1 (fn_0 4 8)))", - "(fn_6 1.5 8 (fn_3 1 (fn_0 4 8)))", - "(fn_5 1.5 4 (fn_3 1 (fn_0 4 8)))", - "(fn_5 1.5 6 (fn_3 1 (fn_0 4 8)))", - "(fn_5 1.5 8 (fn_3 1 (fn_0 4 8)))", - "(fn_6 3 2 (C fn_9 (fn_2 2)))", - "(fn_6 3 4 (C fn_9 (fn_2 2)))", - "(fn_6 3 8 (C fn_9 (fn_2 2)))", - "(fn_5 3 2 (C fn_9 (fn_2 2)))", - "(fn_5 3 4 (C fn_9 (fn_2 2)))", - "(fn_5 3 6 (C fn_9 (fn_2 2)))", - "(fn_5 3 8 (C fn_9 (fn_2 2)))", - "(fn_6 1.5 2 (C fn_9 (fn_2 1)))", - "(fn_6 1.5 4 (C fn_9 (fn_2 1)))", - "(fn_6 1.5 8 (C fn_9 (fn_2 1)))", - "(fn_5 1.5 6 (C fn_9 (fn_2 1)))", - "(fn_5 1.5 8 (C fn_9 (fn_2 1)))", - "(fn_6 3 4 (fn_7 2 fn_9))", - "(fn_6 3 8 (fn_7 2 fn_9))", - "(fn_5 3 2 (fn_7 2 fn_9))", - "(fn_5 3 4 (fn_7 2 fn_9))", - "(fn_5 3 6 (fn_7 2 fn_9))", - "(fn_5 3 8 (fn_7 2 fn_9))", - "(fn_6 1.5 2 (fn_7 1 fn_9))", - "(fn_6 1.5 4 (fn_7 1 fn_9))", - "(fn_6 1.5 6 (fn_7 1 fn_9))", - "(fn_6 1.5 8 (fn_7 1 fn_9))", - "(fn_5 1.5 2 (fn_7 1 fn_9))", - "(fn_5 1.5 4 (fn_7 1 fn_9))", - "(fn_5 1.5 8 (fn_7 1 fn_9))", - "(fn_6 3 2 (fn_3 2 fn_9))", - "(fn_6 3 4 (fn_3 2 fn_9))", - "(fn_6 3 8 (fn_3 2 fn_9))", - "(fn_5 3 2 (fn_3 2 fn_9))", - "(fn_5 3 4 (fn_3 2 fn_9))", - "(fn_5 3 6 (fn_3 2 fn_9))", - "(fn_5 3 8 (fn_3 2 fn_9))", - "(fn_6 1.5 2 (fn_3 1 fn_9))", - "(fn_6 1.5 4 (fn_3 1 fn_9))", - "(fn_6 1.5 6 (fn_3 1 fn_9))", - "(fn_6 1.5 8 (fn_3 1 fn_9))", - "(fn_5 1.5 2 (fn_3 1 fn_9))", - "(fn_5 1.5 4 (fn_3 1 fn_9))", - "(fn_5 1.5 6 (fn_3 1 fn_9))" + "(fn_6 c 2 (C (fn_2 4) (fn_2 2)))", + "(fn_6 c 4 (C (fn_2 4) (fn_2 2)))", + "(fn_6 c 6 (C (fn_2 4) (fn_2 2)))", + "(fn_6 c 8 (C (fn_2 4) (fn_2 2)))", + "(fn_6 r 2 (C (fn_2 4) (fn_2 2)))", + "(fn_6 r 6 (C (fn_2 4) (fn_2 2)))", + "(fn_6 r 8 (C (fn_2 4) (fn_2 2)))", + "(fn_5 c 2 (C (fn_2 4) (fn_2 1)))", + "(fn_5 c 4 (C (fn_2 4) (fn_2 1)))", + "(fn_5 c 6 (C (fn_2 4) (fn_2 1)))", + "(fn_5 c 8 (C (fn_2 4) (fn_2 1)))", + "(fn_5 r 2 (C (fn_2 4) (fn_2 1)))", + "(fn_6 c 2 (fn_7 2 (fn_2 4)))", + "(fn_6 c 6 (fn_7 2 (fn_2 4)))", + "(fn_6 c 8 (fn_7 2 (fn_2 4)))", + "(fn_6 r 2 (fn_7 2 (fn_2 4)))", + "(fn_6 r 4 (fn_7 2 (fn_2 4)))", + "(fn_6 r 6 (fn_7 2 (fn_2 4)))", + "(fn_6 r 8 (fn_7 2 (fn_2 4)))", + "(fn_5 c 2 (fn_7 1 (fn_2 4)))", + "(fn_5 c 6 (fn_7 1 (fn_2 4)))", + "(fn_5 r 4 (fn_7 1 (fn_2 4)))", + "(fn_5 r 6 (fn_7 1 (fn_2 4)))", + "(fn_5 r 8 (fn_7 1 (fn_2 4)))", + "(fn_6 c 2 (fn_3 2 (fn_2 4)))", + "(fn_6 c 4 (fn_3 2 (fn_2 4)))", + "(fn_6 c 8 (fn_3 2 (fn_2 4)))", + "(fn_6 r 2 (fn_3 2 (fn_2 4)))", + "(fn_6 r 4 (fn_3 2 (fn_2 4)))", + "(fn_6 r 6 (fn_3 2 (fn_2 4)))", + "(fn_6 r 8 (fn_3 2 (fn_2 4)))", + "(fn_5 c 2 (fn_3 1 (fn_2 4)))", + "(fn_5 c 4 (fn_3 1 (fn_2 4)))", + "(fn_5 c 6 (fn_3 1 (fn_2 4)))", + "(fn_5 r 2 (fn_3 1 (fn_2 4)))", + "(fn_5 r 4 (fn_3 1 (fn_2 4)))", + "(fn_5 r 8 (fn_3 1 (fn_2 4)))", + "(fn_6 c 2 (fn_8 2 6))", + "(fn_6 c 4 (fn_8 2 6))", + "(fn_6 c 6 (fn_8 2 6))", + "(fn_6 c 8 (fn_8 2 6))", + "(fn_6 r 2 (fn_8 2 6))", + "(fn_6 r 4 (fn_8 2 6))", + "(fn_6 r 6 (fn_8 2 6))", + "(fn_6 r 8 (fn_8 2 6))", + "(fn_5 c 2 (fn_8 1 6))", + "(fn_5 c 4 (fn_8 1 6))", + "(fn_5 c 8 (fn_8 1 6))", + "(fn_5 r 2 (fn_8 1 6))", + "(fn_5 r 4 (fn_8 1 6))", + "(fn_5 r 6 (fn_8 1 6))", + "(fn_5 r 8 (fn_8 1 6))", + "(fn_6 c 2 (fn_4 2 6))", + "(fn_6 c 4 (fn_4 2 6))", + "(fn_6 c 6 (fn_4 2 6))", + "(fn_6 c 8 (fn_4 2 6))", + "(fn_6 r 2 (fn_4 2 6))", + "(fn_6 r 4 (fn_4 2 6))", + "(fn_5 c 2 (fn_4 1 6))", + "(fn_5 c 4 (fn_4 1 6))", + "(fn_5 c 6 (fn_4 1 6))", + "(fn_5 c 8 (fn_4 1 6))", + "(fn_5 r 2 (fn_4 1 6))", + "(fn_5 r 4 (fn_4 1 6))", + "(fn_5 r 8 (fn_4 1 6))", + "(fn_6 c 2 (fn_3 2 (fn_0 4 6)))", + "(fn_6 c 4 (fn_3 2 (fn_0 4 6)))", + "(fn_6 c 6 (fn_3 2 (fn_0 4 6)))", + "(fn_6 c 8 (fn_3 2 (fn_0 4 6)))", + "(fn_6 r 2 (fn_3 2 (fn_0 4 6)))", + "(fn_6 r 6 (fn_3 2 (fn_0 4 6)))", + "(fn_6 r 8 (fn_3 2 (fn_0 4 6)))", + "(fn_5 c 2 (fn_3 1 (fn_0 4 6)))", + "(fn_5 r 2 (fn_3 1 (fn_0 4 6)))", + "(fn_5 r 8 (fn_3 1 (fn_0 4 6)))", + "(fn_6 c 2 (fn_8 2 8))", + "(fn_6 c 4 (fn_8 2 8))", + "(fn_6 c 8 (fn_8 2 8))", + "(fn_6 r 2 (fn_8 2 8))", + "(fn_6 r 4 (fn_8 2 8))", + "(fn_6 r 6 (fn_8 2 8))", + "(fn_6 r 8 (fn_8 2 8))", + "(fn_5 c 8 (fn_8 1 8))", + "(fn_5 r 2 (fn_8 1 8))", + "(fn_5 r 4 (fn_8 1 8))", + "(fn_5 r 6 (fn_8 1 8))", + "(fn_5 r 8 (fn_8 1 8))", + "(fn_6 c 2 (fn_4 2 8))", + "(fn_6 c 6 (fn_4 2 8))", + "(fn_6 c 8 (fn_4 2 8))", + "(fn_6 r 2 (fn_4 2 8))", + "(fn_6 r 4 (fn_4 2 8))", + "(fn_6 r 6 (fn_4 2 8))", + "(fn_6 r 8 (fn_4 2 8))", + "(fn_5 c 2 (fn_4 1 8))", + "(fn_5 c 6 (fn_4 1 8))", + "(fn_5 c 8 (fn_4 1 8))", + "(fn_5 r 2 (fn_4 1 8))", + "(fn_5 r 6 (fn_4 1 8))", + "(fn_5 r 8 (fn_4 1 8))", + "(fn_6 c 2 (fn_3 2 (fn_0 4 8)))", + "(fn_6 c 4 (fn_3 2 (fn_0 4 8)))", + "(fn_6 c 6 (fn_3 2 (fn_0 4 8)))", + "(fn_6 r 2 (fn_3 2 (fn_0 4 8)))", + "(fn_6 r 4 (fn_3 2 (fn_0 4 8)))", + "(fn_6 r 6 (fn_3 2 (fn_0 4 8)))", + "(fn_6 r 8 (fn_3 2 (fn_0 4 8)))", + "(fn_5 c 4 (fn_3 1 (fn_0 4 8)))", + "(fn_5 c 6 (fn_3 1 (fn_0 4 8)))", + "(fn_5 c 8 (fn_3 1 (fn_0 4 8)))", + "(fn_5 r 4 (fn_3 1 (fn_0 4 8)))", + "(fn_5 r 6 (fn_3 1 (fn_0 4 8)))", + "(fn_5 r 8 (fn_3 1 (fn_0 4 8)))", + "(fn_6 c 2 (C fn_9 (fn_2 2)))", + "(fn_6 c 4 (C fn_9 (fn_2 2)))", + "(fn_6 c 8 (C fn_9 (fn_2 2)))", + "(fn_6 r 2 (C fn_9 (fn_2 2)))", + "(fn_6 r 4 (C fn_9 (fn_2 2)))", + "(fn_6 r 6 (C fn_9 (fn_2 2)))", + "(fn_6 r 8 (C fn_9 (fn_2 2)))", + "(fn_5 c 2 (C fn_9 (fn_2 1)))", + "(fn_5 c 4 (C fn_9 (fn_2 1)))", + "(fn_5 c 8 (C fn_9 (fn_2 1)))", + "(fn_5 r 6 (C fn_9 (fn_2 1)))", + "(fn_5 r 8 (C fn_9 (fn_2 1)))", + "(fn_6 c 4 (fn_7 2 fn_9))", + "(fn_6 c 8 (fn_7 2 fn_9))", + "(fn_6 r 2 (fn_7 2 fn_9))", + "(fn_6 r 4 (fn_7 2 fn_9))", + "(fn_6 r 6 (fn_7 2 fn_9))", + "(fn_6 r 8 (fn_7 2 fn_9))", + "(fn_5 c 2 (fn_7 1 fn_9))", + "(fn_5 c 4 (fn_7 1 fn_9))", + "(fn_5 c 6 (fn_7 1 fn_9))", + "(fn_5 c 8 (fn_7 1 fn_9))", + "(fn_5 r 2 (fn_7 1 fn_9))", + "(fn_5 r 4 (fn_7 1 fn_9))", + "(fn_5 r 8 (fn_7 1 fn_9))", + "(fn_6 c 2 (fn_3 2 fn_9))", + "(fn_6 c 4 (fn_3 2 fn_9))", + "(fn_6 c 8 (fn_3 2 fn_9))", + "(fn_6 r 2 (fn_3 2 fn_9))", + "(fn_6 r 4 (fn_3 2 fn_9))", + "(fn_6 r 6 (fn_3 2 fn_9))", + "(fn_6 r 8 (fn_3 2 fn_9))", + "(fn_5 c 2 (fn_3 1 fn_9))", + "(fn_5 c 4 (fn_3 1 fn_9))", + "(fn_5 c 6 (fn_3 1 fn_9))", + "(fn_5 c 8 (fn_3 1 fn_9))", + "(fn_5 r 2 (fn_3 1 fn_9))", + "(fn_5 r 4 (fn_3 1 fn_9))", + "(fn_5 r 6 (fn_3 1 fn_9))" ], "rewritten_dreamcoder": null, "abstractions": [ @@ -603,7 +614,8 @@ "fn_0 4 8": "(T (repeat (T l (M 1 0 -0.5 (/ 0.5 (tan (/ pi 8))))) 8 (M 1 (/ (* 2 pi) 8) 0 0)) (M 4 0 0 0))" } ], - "dc_comparison_millis": null + "dc_comparison_millis": null, + "tdfa_annotation": null }, { "body": "(repeat (T (T #2 (M 0.5 0 0 0)) (M 1 0 (* #1 (cos (/ pi 4))) (* #1 (sin (/ pi 4))))) #0 (M 1 (/ (* 2 pi) #0) 0 0))", @@ -667,7 +679,8 @@ "fn_1 8 3 r": "(repeat (T (T r (M 0.5 0 0 0)) (M 1 0 (* 3 (cos (/ pi 4))) (* 3 (sin (/ pi 4))))) 8 (M 1 (/ (* 2 pi) 8) 0 0))" } ], - "dc_comparison_millis": null + "dc_comparison_millis": null, + "tdfa_annotation": null }, { "body": "(T (T c (M 2 0 0 0)) (M #0 0 0 0))", @@ -701,7 +714,8 @@ "fn_2 4.25": "(T (T c (M 2 0 0 0)) (M 4.25 0 0 0))" } ], - "dc_comparison_millis": null + "dc_comparison_millis": null, + "tdfa_annotation": null }, { "body": "(C #1 (T r (M #0 0 0 0)))", @@ -777,7 +791,8 @@ "fn_3 2 (fn_2 4)": "(C (fn_2 4) (T r (M 2 0 0 0)))" } ], - "dc_comparison_millis": null + "dc_comparison_millis": null, + "tdfa_annotation": null }, { "body": "(C (fn_0 4 #1) (fn_0 #0 6))", @@ -808,11 +823,12 @@ "fn_4 2 8": "(C (fn_0 4 8) (fn_0 2 6))" } ], - "dc_comparison_millis": null + "dc_comparison_millis": null, + "tdfa_annotation": null }, { - "body": "(C #2 (fn_1 #1 #0 r))", - "dreamcoder": "#(lambda (lambda (lambda (C $0 (#(lambda (lambda (lambda (repeat (T (T $0 (M 0.5 0 0 0)) (M 1 0 (* $1 (cos (/ pi 4))) (* $1 (sin (/ pi 4))))) $2 (M 1 (/ (* 2 pi) $2) 0 0))))) $1 $2 r)))))", + "body": "(C #2 (fn_1 #1 1.5 #0))", + "dreamcoder": "#(lambda (lambda (lambda (C $0 (#(lambda (lambda (lambda (repeat (T (T $0 (M 0.5 0 0 0)) (M 1 0 (* $1 (cos (/ pi 4))) (* $1 (sin (/ pi 4))))) $2 (M 1 (/ (* 2 pi) $2) 0 0))))) $1 1.5 $2)))))", "arity": 3, "name": "fn_5", "utility": 18885, @@ -824,296 +840,297 @@ "rewritten_dreamcoder": null, "uses": [ { - "fn_5 1.5 2 (C (fn_0 4 6) (fn_2 1))": "(C (C (fn_0 4 6) (fn_2 1)) (fn_1 2 1.5 r))" + "fn_5 c 2 (C (fn_0 4 6) (fn_2 1))": "(C (C (fn_0 4 6) (fn_2 1)) (fn_1 2 1.5 c))" }, { - "fn_5 1.5 4 (C (fn_0 4 6) (fn_2 1))": "(C (C (fn_0 4 6) (fn_2 1)) (fn_1 4 1.5 r))" + "fn_5 r 2 (C (fn_0 4 6) (fn_2 1))": "(C (C (fn_0 4 6) (fn_2 1)) (fn_1 2 1.5 r))" }, { - "fn_5 1.5 6 (C (fn_0 4 6) (fn_2 1))": "(C (C (fn_0 4 6) (fn_2 1)) (fn_1 6 1.5 r))" + "fn_5 c 4 (C (fn_0 4 6) (fn_2 1))": "(C (C (fn_0 4 6) (fn_2 1)) (fn_1 4 1.5 c))" }, { - "fn_5 1.5 8 (C (fn_0 4 6) (fn_2 1))": "(C (C (fn_0 4 6) (fn_2 1)) (fn_1 8 1.5 r))" + "fn_5 r 4 (C (fn_0 4 6) (fn_2 1))": "(C (C (fn_0 4 6) (fn_2 1)) (fn_1 4 1.5 r))" }, { - "fn_5 3 2 (C (fn_0 4 6) (fn_2 2))": "(C (C (fn_0 4 6) (fn_2 2)) (fn_1 2 3 r))" + "fn_5 c 6 (C (fn_0 4 6) (fn_2 1))": "(C (C (fn_0 4 6) (fn_2 1)) (fn_1 6 1.5 c))" }, { - "fn_5 3 4 (C (fn_0 4 6) (fn_2 2))": "(C (C (fn_0 4 6) (fn_2 2)) (fn_1 4 3 r))" + "fn_5 r 6 (C (fn_0 4 6) (fn_2 1))": "(C (C (fn_0 4 6) (fn_2 1)) (fn_1 6 1.5 r))" }, { - "fn_5 3 6 (C (fn_0 4 6) (fn_2 2))": "(C (C (fn_0 4 6) (fn_2 2)) (fn_1 6 3 r))" + "fn_5 c 8 (C (fn_0 4 6) (fn_2 1))": "(C (C (fn_0 4 6) (fn_2 1)) (fn_1 8 1.5 c))" }, { - "fn_5 3 8 (C (fn_0 4 6) (fn_2 2))": "(C (C (fn_0 4 6) (fn_2 2)) (fn_1 8 3 r))" + "fn_5 r 8 (C (fn_0 4 6) (fn_2 1))": "(C (C (fn_0 4 6) (fn_2 1)) (fn_1 8 1.5 r))" }, { - "fn_5 1.5 2 (C (fn_0 4 8) (fn_2 1))": "(C (C (fn_0 4 8) (fn_2 1)) (fn_1 2 1.5 r))" + "fn_5 c 2 (C (fn_0 4 8) (fn_2 1))": "(C (C (fn_0 4 8) (fn_2 1)) (fn_1 2 1.5 c))" }, { - "fn_5 1.5 4 (C (fn_0 4 8) (fn_2 1))": "(C (C (fn_0 4 8) (fn_2 1)) (fn_1 4 1.5 r))" + "fn_5 r 2 (C (fn_0 4 8) (fn_2 1))": "(C (C (fn_0 4 8) (fn_2 1)) (fn_1 2 1.5 r))" }, { - "fn_5 1.5 6 (C (fn_0 4 8) (fn_2 1))": "(C (C (fn_0 4 8) (fn_2 1)) (fn_1 6 1.5 r))" + "fn_5 c 4 (C (fn_0 4 8) (fn_2 1))": "(C (C (fn_0 4 8) (fn_2 1)) (fn_1 4 1.5 c))" }, { - "fn_5 1.5 8 (C (fn_0 4 8) (fn_2 1))": "(C (C (fn_0 4 8) (fn_2 1)) (fn_1 8 1.5 r))" + "fn_5 r 4 (C (fn_0 4 8) (fn_2 1))": "(C (C (fn_0 4 8) (fn_2 1)) (fn_1 4 1.5 r))" }, { - "fn_5 3 2 (C (fn_0 4 8) (fn_2 2))": "(C (C (fn_0 4 8) (fn_2 2)) (fn_1 2 3 r))" + "fn_5 c 6 (C (fn_0 4 8) (fn_2 1))": "(C (C (fn_0 4 8) (fn_2 1)) (fn_1 6 1.5 c))" }, { - "fn_5 3 4 (C (fn_0 4 8) (fn_2 2))": "(C (C (fn_0 4 8) (fn_2 2)) (fn_1 4 3 r))" + "fn_5 r 6 (C (fn_0 4 8) (fn_2 1))": "(C (C (fn_0 4 8) (fn_2 1)) (fn_1 6 1.5 r))" }, { - "fn_5 3 6 (C (fn_0 4 8) (fn_2 2))": "(C (C (fn_0 4 8) (fn_2 2)) (fn_1 6 3 r))" + "fn_5 c 8 (C (fn_0 4 8) (fn_2 1))": "(C (C (fn_0 4 8) (fn_2 1)) (fn_1 8 1.5 c))" }, { - "fn_5 3 8 (C (fn_0 4 8) (fn_2 2))": "(C (C (fn_0 4 8) (fn_2 2)) (fn_1 8 3 r))" + "fn_5 r 8 (C (fn_0 4 8) (fn_2 1))": "(C (C (fn_0 4 8) (fn_2 1)) (fn_1 8 1.5 r))" }, { - "fn_5 1.5 2 (C (fn_2 4) (fn_0 1 6))": "(C (C (fn_2 4) (fn_0 1 6)) (fn_1 2 1.5 r))" + "fn_5 c 2 (C (fn_2 4) (fn_0 1 6))": "(C (C (fn_2 4) (fn_0 1 6)) (fn_1 2 1.5 c))" }, { - "fn_5 1.5 4 (C (fn_2 4) (fn_0 1 6))": "(C (C (fn_2 4) (fn_0 1 6)) (fn_1 4 1.5 r))" + "fn_5 r 2 (C (fn_2 4) (fn_0 1 6))": "(C (C (fn_2 4) (fn_0 1 6)) (fn_1 2 1.5 r))" }, { - "fn_5 1.5 6 (C (fn_2 4) (fn_0 1 6))": "(C (C (fn_2 4) (fn_0 1 6)) (fn_1 6 1.5 r))" + "fn_5 c 4 (C (fn_2 4) (fn_0 1 6))": "(C (C (fn_2 4) (fn_0 1 6)) (fn_1 4 1.5 c))" }, { - "fn_5 1.5 8 (C (fn_2 4) (fn_0 1 6))": "(C (C (fn_2 4) (fn_0 1 6)) (fn_1 8 1.5 r))" + "fn_5 r 4 (C (fn_2 4) (fn_0 1 6))": "(C (C (fn_2 4) (fn_0 1 6)) (fn_1 4 1.5 r))" }, { - "fn_5 3 2 (C (fn_2 4) (fn_0 2 6))": "(C (C (fn_2 4) (fn_0 2 6)) (fn_1 2 3 r))" + "fn_5 c 6 (C (fn_2 4) (fn_0 1 6))": "(C (C (fn_2 4) (fn_0 1 6)) (fn_1 6 1.5 c))" }, { - "fn_5 3 4 (C (fn_2 4) (fn_0 2 6))": "(C (C (fn_2 4) (fn_0 2 6)) (fn_1 4 3 r))" + "fn_5 r 6 (C (fn_2 4) (fn_0 1 6))": "(C (C (fn_2 4) (fn_0 1 6)) (fn_1 6 1.5 r))" }, { - "fn_5 3 6 (C (fn_2 4) (fn_0 2 6))": "(C (C (fn_2 4) (fn_0 2 6)) (fn_1 6 3 r))" + "fn_5 c 8 (C (fn_2 4) (fn_0 1 6))": "(C (C (fn_2 4) (fn_0 1 6)) (fn_1 8 1.5 c))" }, { - "fn_5 3 8 (C (fn_2 4) (fn_0 2 6))": "(C (C (fn_2 4) (fn_0 2 6)) (fn_1 8 3 r))" + "fn_5 r 8 (C (fn_2 4) (fn_0 1 6))": "(C (C (fn_2 4) (fn_0 1 6)) (fn_1 8 1.5 r))" }, { - "fn_5 1.5 2 (C (fn_2 4) (fn_2 1))": "(C (C (fn_2 4) (fn_2 1)) (fn_1 2 1.5 r))" + "fn_5 c 2 (C (fn_2 4) (fn_2 1))": "(C (C (fn_2 4) (fn_2 1)) (fn_1 2 1.5 c))" }, { - "fn_5 1.5 4 (C (fn_2 4) (fn_2 1))": "(C (C (fn_2 4) (fn_2 1)) (fn_1 4 1.5 r))" + "fn_5 r 2 (C (fn_2 4) (fn_2 1))": "(C (C (fn_2 4) (fn_2 1)) (fn_1 2 1.5 r))" }, { - "fn_5 1.5 6 (C (fn_2 4) (fn_2 1))": "(C (C (fn_2 4) (fn_2 1)) (fn_1 6 1.5 r))" + "fn_5 c 4 (C (fn_2 4) (fn_2 1))": "(C (C (fn_2 4) (fn_2 1)) (fn_1 4 1.5 c))" }, { - "fn_5 1.5 8 (C (fn_2 4) (fn_2 1))": "(C (C (fn_2 4) (fn_2 1)) (fn_1 8 1.5 r))" + "fn_5 r 4 (C (fn_2 4) (fn_2 1))": "(C (C (fn_2 4) (fn_2 1)) (fn_1 4 1.5 r))" }, { - "fn_5 3 2 (C (fn_2 4) (fn_2 2))": "(C (C (fn_2 4) (fn_2 2)) (fn_1 2 3 r))" + "fn_5 c 6 (C (fn_2 4) (fn_2 1))": "(C (C (fn_2 4) (fn_2 1)) (fn_1 6 1.5 c))" }, { - "fn_5 3 4 (C (fn_2 4) (fn_2 2))": "(C (C (fn_2 4) (fn_2 2)) (fn_1 4 3 r))" + "fn_5 r 6 (C (fn_2 4) (fn_2 1))": "(C (C (fn_2 4) (fn_2 1)) (fn_1 6 1.5 r))" }, { - "fn_5 3 6 (C (fn_2 4) (fn_2 2))": "(C (C (fn_2 4) (fn_2 2)) (fn_1 6 3 r))" + "fn_5 c 8 (C (fn_2 4) (fn_2 1))": "(C (C (fn_2 4) (fn_2 1)) (fn_1 8 1.5 c))" }, { - "fn_5 3 8 (C (fn_2 4) (fn_2 2))": "(C (C (fn_2 4) (fn_2 2)) (fn_1 8 3 r))" + "fn_5 r 8 (C (fn_2 4) (fn_2 1))": "(C (C (fn_2 4) (fn_2 1)) (fn_1 8 1.5 r))" }, { - "fn_5 1.5 2 (C (fn_4 4.25 6) (fn_0 1 6))": "(C (C (fn_4 4.25 6) (fn_0 1 6)) (fn_1 2 1.5 r))" + "fn_5 c 2 (C (fn_4 4.25 6) (fn_0 1 6))": "(C (C (fn_4 4.25 6) (fn_0 1 6)) (fn_1 2 1.5 c))" }, { - "fn_5 1.5 4 (C (fn_4 4.25 6) (fn_0 1 6))": "(C (C (fn_4 4.25 6) (fn_0 1 6)) (fn_1 4 1.5 r))" + "fn_5 r 2 (C (fn_4 4.25 6) (fn_0 1 6))": "(C (C (fn_4 4.25 6) (fn_0 1 6)) (fn_1 2 1.5 r))" }, { - "fn_5 1.5 6 (C (fn_4 4.25 6) (fn_0 1 6))": "(C (C (fn_4 4.25 6) (fn_0 1 6)) (fn_1 6 1.5 r))" + "fn_5 c 4 (C (fn_4 4.25 6) (fn_0 1 6))": "(C (C (fn_4 4.25 6) (fn_0 1 6)) (fn_1 4 1.5 c))" }, { - "fn_5 1.5 8 (C (fn_4 4.25 6) (fn_0 1 6))": "(C (C (fn_4 4.25 6) (fn_0 1 6)) (fn_1 8 1.5 r))" + "fn_5 r 4 (C (fn_4 4.25 6) (fn_0 1 6))": "(C (C (fn_4 4.25 6) (fn_0 1 6)) (fn_1 4 1.5 r))" }, { - "fn_5 3 2 (C (fn_4 4.25 6) (fn_0 2 6))": "(C (C (fn_4 4.25 6) (fn_0 2 6)) (fn_1 2 3 r))" + "fn_5 c 6 (C (fn_4 4.25 6) (fn_0 1 6))": "(C (C (fn_4 4.25 6) (fn_0 1 6)) (fn_1 6 1.5 c))" }, { - "fn_5 3 4 (C (fn_4 4.25 6) (fn_0 2 6))": "(C (C (fn_4 4.25 6) (fn_0 2 6)) (fn_1 4 3 r))" + "fn_5 r 6 (C (fn_4 4.25 6) (fn_0 1 6))": "(C (C (fn_4 4.25 6) (fn_0 1 6)) (fn_1 6 1.5 r))" }, { - "fn_5 3 6 (C (fn_4 4.25 6) (fn_0 2 6))": "(C (C (fn_4 4.25 6) (fn_0 2 6)) (fn_1 6 3 r))" + "fn_5 c 8 (C (fn_4 4.25 6) (fn_0 1 6))": "(C (C (fn_4 4.25 6) (fn_0 1 6)) (fn_1 8 1.5 c))" }, { - "fn_5 3 8 (C (fn_4 4.25 6) (fn_0 2 6))": "(C (C (fn_4 4.25 6) (fn_0 2 6)) (fn_1 8 3 r))" + "fn_5 r 8 (C (fn_4 4.25 6) (fn_0 1 6))": "(C (C (fn_4 4.25 6) (fn_0 1 6)) (fn_1 8 1.5 r))" }, { - "fn_5 1.5 2 (C (fn_4 4.25 6) (fn_2 1))": "(C (C (fn_4 4.25 6) (fn_2 1)) (fn_1 2 1.5 r))" + "fn_5 c 2 (C (fn_4 4.25 6) (fn_2 1))": "(C (C (fn_4 4.25 6) (fn_2 1)) (fn_1 2 1.5 c))" }, { - "fn_5 1.5 4 (C (fn_4 4.25 6) (fn_2 1))": "(C (C (fn_4 4.25 6) (fn_2 1)) (fn_1 4 1.5 r))" + "fn_5 r 2 (C (fn_4 4.25 6) (fn_2 1))": "(C (C (fn_4 4.25 6) (fn_2 1)) (fn_1 2 1.5 r))" }, { - "fn_5 1.5 6 (C (fn_4 4.25 6) (fn_2 1))": "(C (C (fn_4 4.25 6) (fn_2 1)) (fn_1 6 1.5 r))" + "fn_5 c 4 (C (fn_4 4.25 6) (fn_2 1))": "(C (C (fn_4 4.25 6) (fn_2 1)) (fn_1 4 1.5 c))" }, { - "fn_5 1.5 8 (C (fn_4 4.25 6) (fn_2 1))": "(C (C (fn_4 4.25 6) (fn_2 1)) (fn_1 8 1.5 r))" + "fn_5 r 4 (C (fn_4 4.25 6) (fn_2 1))": "(C (C (fn_4 4.25 6) (fn_2 1)) (fn_1 4 1.5 r))" }, { - "fn_5 3 2 (C (fn_4 4.25 6) (fn_2 2))": "(C (C (fn_4 4.25 6) (fn_2 2)) (fn_1 2 3 r))" + "fn_5 c 6 (C (fn_4 4.25 6) (fn_2 1))": "(C (C (fn_4 4.25 6) (fn_2 1)) (fn_1 6 1.5 c))" }, { - "fn_5 3 4 (C (fn_4 4.25 6) (fn_2 2))": "(C (C (fn_4 4.25 6) (fn_2 2)) (fn_1 4 3 r))" + "fn_5 r 6 (C (fn_4 4.25 6) (fn_2 1))": "(C (C (fn_4 4.25 6) (fn_2 1)) (fn_1 6 1.5 r))" }, { - "fn_5 3 6 (C (fn_4 4.25 6) (fn_2 2))": "(C (C (fn_4 4.25 6) (fn_2 2)) (fn_1 6 3 r))" + "fn_5 c 8 (C (fn_4 4.25 6) (fn_2 1))": "(C (C (fn_4 4.25 6) (fn_2 1)) (fn_1 8 1.5 c))" }, { - "fn_5 3 8 (C (fn_4 4.25 6) (fn_2 2))": "(C (C (fn_4 4.25 6) (fn_2 2)) (fn_1 8 3 r))" + "fn_5 r 8 (C (fn_4 4.25 6) (fn_2 1))": "(C (C (fn_4 4.25 6) (fn_2 1)) (fn_1 8 1.5 r))" }, { - "fn_5 1.5 2 (fn_3 1 (fn_0 4 6))": "(C (fn_3 1 (fn_0 4 6)) (fn_1 2 1.5 r))" + "fn_5 c 2 (fn_3 1 (fn_0 4 6))": "(C (fn_3 1 (fn_0 4 6)) (fn_1 2 1.5 c))" }, { - "fn_5 1.5 4 (fn_3 1 (fn_0 4 6))": "(C (fn_3 1 (fn_0 4 6)) (fn_1 4 1.5 r))" + "fn_5 r 2 (fn_3 1 (fn_0 4 6))": "(C (fn_3 1 (fn_0 4 6)) (fn_1 2 1.5 r))" }, { - "fn_5 1.5 6 (fn_3 1 (fn_0 4 6))": "(C (fn_3 1 (fn_0 4 6)) (fn_1 6 1.5 r))" + "fn_5 c 4 (fn_3 1 (fn_0 4 6))": "(C (fn_3 1 (fn_0 4 6)) (fn_1 4 1.5 c))" }, { - "fn_5 1.5 8 (fn_3 1 (fn_0 4 6))": "(C (fn_3 1 (fn_0 4 6)) (fn_1 8 1.5 r))" + "fn_5 r 4 (fn_3 1 (fn_0 4 6))": "(C (fn_3 1 (fn_0 4 6)) (fn_1 4 1.5 r))" }, { - "fn_5 1.5 2 (fn_3 1 (fn_0 4 8))": "(C (fn_3 1 (fn_0 4 8)) (fn_1 2 1.5 r))" + "fn_5 c 6 (fn_3 1 (fn_0 4 6))": "(C (fn_3 1 (fn_0 4 6)) (fn_1 6 1.5 c))" }, { - "fn_5 1.5 4 (fn_3 1 (fn_0 4 8))": "(C (fn_3 1 (fn_0 4 8)) (fn_1 4 1.5 r))" + "fn_5 r 6 (fn_3 1 (fn_0 4 6))": "(C (fn_3 1 (fn_0 4 6)) (fn_1 6 1.5 r))" }, { - "fn_5 1.5 6 (fn_3 1 (fn_0 4 8))": "(C (fn_3 1 (fn_0 4 8)) (fn_1 6 1.5 r))" + "fn_5 c 8 (fn_3 1 (fn_0 4 6))": "(C (fn_3 1 (fn_0 4 6)) (fn_1 8 1.5 c))" }, { - "fn_5 1.5 8 (fn_3 1 (fn_0 4 8))": "(C (fn_3 1 (fn_0 4 8)) (fn_1 8 1.5 r))" + "fn_5 r 8 (fn_3 1 (fn_0 4 6))": "(C (fn_3 1 (fn_0 4 6)) (fn_1 8 1.5 r))" }, { - "fn_5 1.5 2 (fn_3 1 (fn_2 4))": "(C (fn_3 1 (fn_2 4)) (fn_1 2 1.5 r))" + "fn_5 c 2 (fn_3 1 (fn_0 4 8))": "(C (fn_3 1 (fn_0 4 8)) (fn_1 2 1.5 c))" }, { - "fn_5 1.5 4 (fn_3 1 (fn_2 4))": "(C (fn_3 1 (fn_2 4)) (fn_1 4 1.5 r))" + "fn_5 r 2 (fn_3 1 (fn_0 4 8))": "(C (fn_3 1 (fn_0 4 8)) (fn_1 2 1.5 r))" }, { - "fn_5 1.5 6 (fn_3 1 (fn_2 4))": "(C (fn_3 1 (fn_2 4)) (fn_1 6 1.5 r))" + "fn_5 c 4 (fn_3 1 (fn_0 4 8))": "(C (fn_3 1 (fn_0 4 8)) (fn_1 4 1.5 c))" }, { - "fn_5 1.5 8 (fn_3 1 (fn_2 4))": "(C (fn_3 1 (fn_2 4)) (fn_1 8 1.5 r))" + "fn_5 r 4 (fn_3 1 (fn_0 4 8))": "(C (fn_3 1 (fn_0 4 8)) (fn_1 4 1.5 r))" }, { - "fn_5 1.5 2 (fn_3 1 (fn_4 4.25 6))": "(C (fn_3 1 (fn_4 4.25 6)) (fn_1 2 1.5 r))" + "fn_5 c 6 (fn_3 1 (fn_0 4 8))": "(C (fn_3 1 (fn_0 4 8)) (fn_1 6 1.5 c))" }, { - "fn_5 1.5 4 (fn_3 1 (fn_4 4.25 6))": "(C (fn_3 1 (fn_4 4.25 6)) (fn_1 4 1.5 r))" + "fn_5 r 6 (fn_3 1 (fn_0 4 8))": "(C (fn_3 1 (fn_0 4 8)) (fn_1 6 1.5 r))" }, { - "fn_5 1.5 6 (fn_3 1 (fn_4 4.25 6))": "(C (fn_3 1 (fn_4 4.25 6)) (fn_1 6 1.5 r))" + "fn_5 c 8 (fn_3 1 (fn_0 4 8))": "(C (fn_3 1 (fn_0 4 8)) (fn_1 8 1.5 c))" }, { - "fn_5 3 2 (fn_3 2 (fn_0 4 6))": "(C (fn_3 2 (fn_0 4 6)) (fn_1 2 3 r))" + "fn_5 r 8 (fn_3 1 (fn_0 4 8))": "(C (fn_3 1 (fn_0 4 8)) (fn_1 8 1.5 r))" }, { - "fn_5 3 4 (fn_3 2 (fn_0 4 6))": "(C (fn_3 2 (fn_0 4 6)) (fn_1 4 3 r))" + "fn_5 c 2 (fn_3 1 (fn_2 4))": "(C (fn_3 1 (fn_2 4)) (fn_1 2 1.5 c))" }, { - "fn_5 3 6 (fn_3 2 (fn_0 4 6))": "(C (fn_3 2 (fn_0 4 6)) (fn_1 6 3 r))" + "fn_5 r 2 (fn_3 1 (fn_2 4))": "(C (fn_3 1 (fn_2 4)) (fn_1 2 1.5 r))" }, { - "fn_5 3 8 (fn_3 2 (fn_0 4 6))": "(C (fn_3 2 (fn_0 4 6)) (fn_1 8 3 r))" + "fn_5 c 4 (fn_3 1 (fn_2 4))": "(C (fn_3 1 (fn_2 4)) (fn_1 4 1.5 c))" }, { - "fn_5 3 2 (fn_3 2 (fn_0 4 8))": "(C (fn_3 2 (fn_0 4 8)) (fn_1 2 3 r))" + "fn_5 r 4 (fn_3 1 (fn_2 4))": "(C (fn_3 1 (fn_2 4)) (fn_1 4 1.5 r))" }, { - "fn_5 3 4 (fn_3 2 (fn_0 4 8))": "(C (fn_3 2 (fn_0 4 8)) (fn_1 4 3 r))" + "fn_5 c 6 (fn_3 1 (fn_2 4))": "(C (fn_3 1 (fn_2 4)) (fn_1 6 1.5 c))" }, { - "fn_5 3 6 (fn_3 2 (fn_0 4 8))": "(C (fn_3 2 (fn_0 4 8)) (fn_1 6 3 r))" + "fn_5 r 6 (fn_3 1 (fn_2 4))": "(C (fn_3 1 (fn_2 4)) (fn_1 6 1.5 r))" }, { - "fn_5 3 8 (fn_3 2 (fn_0 4 8))": "(C (fn_3 2 (fn_0 4 8)) (fn_1 8 3 r))" + "fn_5 c 8 (fn_3 1 (fn_2 4))": "(C (fn_3 1 (fn_2 4)) (fn_1 8 1.5 c))" }, { - "fn_5 3 2 (fn_3 2 (fn_2 4))": "(C (fn_3 2 (fn_2 4)) (fn_1 2 3 r))" + "fn_5 r 8 (fn_3 1 (fn_2 4))": "(C (fn_3 1 (fn_2 4)) (fn_1 8 1.5 r))" }, { - "fn_5 3 4 (fn_3 2 (fn_2 4))": "(C (fn_3 2 (fn_2 4)) (fn_1 4 3 r))" + "fn_5 c 2 (fn_3 1 (fn_4 4.25 6))": "(C (fn_3 1 (fn_4 4.25 6)) (fn_1 2 1.5 c))" }, { - "fn_5 3 6 (fn_3 2 (fn_2 4))": "(C (fn_3 2 (fn_2 4)) (fn_1 6 3 r))" + "fn_5 r 2 (fn_3 1 (fn_4 4.25 6))": "(C (fn_3 1 (fn_4 4.25 6)) (fn_1 2 1.5 r))" }, { - "fn_5 3 8 (fn_3 2 (fn_2 4))": "(C (fn_3 2 (fn_2 4)) (fn_1 8 3 r))" + "fn_5 c 4 (fn_3 1 (fn_4 4.25 6))": "(C (fn_3 1 (fn_4 4.25 6)) (fn_1 4 1.5 c))" }, { - "fn_5 3 2 (fn_3 2 (fn_4 4.25 6))": "(C (fn_3 2 (fn_4 4.25 6)) (fn_1 2 3 r))" + "fn_5 r 4 (fn_3 1 (fn_4 4.25 6))": "(C (fn_3 1 (fn_4 4.25 6)) (fn_1 4 1.5 r))" }, { - "fn_5 3 4 (fn_3 2 (fn_4 4.25 6))": "(C (fn_3 2 (fn_4 4.25 6)) (fn_1 4 3 r))" + "fn_5 c 6 (fn_3 1 (fn_4 4.25 6))": "(C (fn_3 1 (fn_4 4.25 6)) (fn_1 6 1.5 c))" }, { - "fn_5 3 6 (fn_3 2 (fn_4 4.25 6))": "(C (fn_3 2 (fn_4 4.25 6)) (fn_1 6 3 r))" + "fn_5 r 6 (fn_3 1 (fn_4 4.25 6))": "(C (fn_3 1 (fn_4 4.25 6)) (fn_1 6 1.5 r))" }, { - "fn_5 3 8 (fn_3 2 (fn_4 4.25 6))": "(C (fn_3 2 (fn_4 4.25 6)) (fn_1 8 3 r))" + "fn_5 c 8 (fn_3 1 (fn_4 4.25 6))": "(C (fn_3 1 (fn_4 4.25 6)) (fn_1 8 1.5 c))" }, { - "fn_5 1.5 2 (fn_4 1 6)": "(C (fn_4 1 6) (fn_1 2 1.5 r))" + "fn_5 c 2 (fn_4 1 6)": "(C (fn_4 1 6) (fn_1 2 1.5 c))" }, { - "fn_5 1.5 4 (fn_4 1 6)": "(C (fn_4 1 6) (fn_1 4 1.5 r))" + "fn_5 r 2 (fn_4 1 6)": "(C (fn_4 1 6) (fn_1 2 1.5 r))" }, { - "fn_5 1.5 6 (fn_4 1 6)": "(C (fn_4 1 6) (fn_1 6 1.5 r))" + "fn_5 c 4 (fn_4 1 6)": "(C (fn_4 1 6) (fn_1 4 1.5 c))" }, { - "fn_5 1.5 8 (fn_4 1 6)": "(C (fn_4 1 6) (fn_1 8 1.5 r))" + "fn_5 r 4 (fn_4 1 6)": "(C (fn_4 1 6) (fn_1 4 1.5 r))" }, { - "fn_5 1.5 2 (fn_4 1 8)": "(C (fn_4 1 8) (fn_1 2 1.5 r))" + "fn_5 c 6 (fn_4 1 6)": "(C (fn_4 1 6) (fn_1 6 1.5 c))" }, { - "fn_5 1.5 4 (fn_4 1 8)": "(C (fn_4 1 8) (fn_1 4 1.5 r))" + "fn_5 r 6 (fn_4 1 6)": "(C (fn_4 1 6) (fn_1 6 1.5 r))" }, { - "fn_5 1.5 6 (fn_4 1 8)": "(C (fn_4 1 8) (fn_1 6 1.5 r))" + "fn_5 c 8 (fn_4 1 6)": "(C (fn_4 1 6) (fn_1 8 1.5 c))" }, { - "fn_5 1.5 8 (fn_4 1 8)": "(C (fn_4 1 8) (fn_1 8 1.5 r))" + "fn_5 r 8 (fn_4 1 6)": "(C (fn_4 1 6) (fn_1 8 1.5 r))" }, { - "fn_5 3 2 (fn_4 2 6)": "(C (fn_4 2 6) (fn_1 2 3 r))" + "fn_5 c 2 (fn_4 1 8)": "(C (fn_4 1 8) (fn_1 2 1.5 c))" }, { - "fn_5 3 4 (fn_4 2 6)": "(C (fn_4 2 6) (fn_1 4 3 r))" + "fn_5 r 2 (fn_4 1 8)": "(C (fn_4 1 8) (fn_1 2 1.5 r))" }, { - "fn_5 3 6 (fn_4 2 6)": "(C (fn_4 2 6) (fn_1 6 3 r))" + "fn_5 c 4 (fn_4 1 8)": "(C (fn_4 1 8) (fn_1 4 1.5 c))" }, { - "fn_5 3 8 (fn_4 2 6)": "(C (fn_4 2 6) (fn_1 8 3 r))" + "fn_5 r 4 (fn_4 1 8)": "(C (fn_4 1 8) (fn_1 4 1.5 r))" }, { - "fn_5 3 2 (fn_4 2 8)": "(C (fn_4 2 8) (fn_1 2 3 r))" + "fn_5 c 6 (fn_4 1 8)": "(C (fn_4 1 8) (fn_1 6 1.5 c))" }, { - "fn_5 3 4 (fn_4 2 8)": "(C (fn_4 2 8) (fn_1 4 3 r))" + "fn_5 r 6 (fn_4 1 8)": "(C (fn_4 1 8) (fn_1 6 1.5 r))" }, { - "fn_5 3 6 (fn_4 2 8)": "(C (fn_4 2 8) (fn_1 6 3 r))" + "fn_5 c 8 (fn_4 1 8)": "(C (fn_4 1 8) (fn_1 8 1.5 c))" }, { - "fn_5 3 8 (fn_4 2 8)": "(C (fn_4 2 8) (fn_1 8 3 r))" + "fn_5 r 8 (fn_4 1 8)": "(C (fn_4 1 8) (fn_1 8 1.5 r))" } ], - "dc_comparison_millis": null + "dc_comparison_millis": null, + "tdfa_annotation": null }, { - "body": "(C #2 (fn_1 #1 #0 c))", - "dreamcoder": "#(lambda (lambda (lambda (C $0 (#(lambda (lambda (lambda (repeat (T (T $0 (M 0.5 0 0 0)) (M 1 0 (* $1 (cos (/ pi 4))) (* $1 (sin (/ pi 4))))) $2 (M 1 (/ (* 2 pi) $2) 0 0))))) $1 $2 c)))))", + "body": "(C #2 (fn_1 #1 3 #0))", + "dreamcoder": "#(lambda (lambda (lambda (C $0 (#(lambda (lambda (lambda (repeat (T (T $0 (M 0.5 0 0 0)) (M 1 0 (* $1 (cos (/ pi 4))) (* $1 (sin (/ pi 4))))) $2 (M 1 (/ (* 2 pi) $2) 0 0))))) $1 3 $2)))))", "arity": 3, "name": "fn_6", "utility": 18885, @@ -1125,292 +1142,293 @@ "rewritten_dreamcoder": null, "uses": [ { - "fn_6 1.5 2 (C (fn_0 4 6) (fn_2 1))": "(C (C (fn_0 4 6) (fn_2 1)) (fn_1 2 1.5 c))" + "fn_6 c 2 (C (fn_0 4 6) (fn_2 2))": "(C (C (fn_0 4 6) (fn_2 2)) (fn_1 2 3 c))" }, { - "fn_6 1.5 4 (C (fn_0 4 6) (fn_2 1))": "(C (C (fn_0 4 6) (fn_2 1)) (fn_1 4 1.5 c))" + "fn_6 r 2 (C (fn_0 4 6) (fn_2 2))": "(C (C (fn_0 4 6) (fn_2 2)) (fn_1 2 3 r))" }, { - "fn_6 1.5 6 (C (fn_0 4 6) (fn_2 1))": "(C (C (fn_0 4 6) (fn_2 1)) (fn_1 6 1.5 c))" + "fn_6 c 4 (C (fn_0 4 6) (fn_2 2))": "(C (C (fn_0 4 6) (fn_2 2)) (fn_1 4 3 c))" }, { - "fn_6 1.5 8 (C (fn_0 4 6) (fn_2 1))": "(C (C (fn_0 4 6) (fn_2 1)) (fn_1 8 1.5 c))" + "fn_6 r 4 (C (fn_0 4 6) (fn_2 2))": "(C (C (fn_0 4 6) (fn_2 2)) (fn_1 4 3 r))" }, { - "fn_6 3 2 (C (fn_0 4 6) (fn_2 2))": "(C (C (fn_0 4 6) (fn_2 2)) (fn_1 2 3 c))" + "fn_6 c 6 (C (fn_0 4 6) (fn_2 2))": "(C (C (fn_0 4 6) (fn_2 2)) (fn_1 6 3 c))" }, { - "fn_6 3 4 (C (fn_0 4 6) (fn_2 2))": "(C (C (fn_0 4 6) (fn_2 2)) (fn_1 4 3 c))" + "fn_6 r 6 (C (fn_0 4 6) (fn_2 2))": "(C (C (fn_0 4 6) (fn_2 2)) (fn_1 6 3 r))" }, { - "fn_6 3 6 (C (fn_0 4 6) (fn_2 2))": "(C (C (fn_0 4 6) (fn_2 2)) (fn_1 6 3 c))" + "fn_6 c 8 (C (fn_0 4 6) (fn_2 2))": "(C (C (fn_0 4 6) (fn_2 2)) (fn_1 8 3 c))" }, { - "fn_6 3 8 (C (fn_0 4 6) (fn_2 2))": "(C (C (fn_0 4 6) (fn_2 2)) (fn_1 8 3 c))" + "fn_6 r 8 (C (fn_0 4 6) (fn_2 2))": "(C (C (fn_0 4 6) (fn_2 2)) (fn_1 8 3 r))" }, { - "fn_6 1.5 2 (C (fn_0 4 8) (fn_2 1))": "(C (C (fn_0 4 8) (fn_2 1)) (fn_1 2 1.5 c))" + "fn_6 c 2 (C (fn_0 4 8) (fn_2 2))": "(C (C (fn_0 4 8) (fn_2 2)) (fn_1 2 3 c))" }, { - "fn_6 1.5 4 (C (fn_0 4 8) (fn_2 1))": "(C (C (fn_0 4 8) (fn_2 1)) (fn_1 4 1.5 c))" + "fn_6 r 2 (C (fn_0 4 8) (fn_2 2))": "(C (C (fn_0 4 8) (fn_2 2)) (fn_1 2 3 r))" }, { - "fn_6 1.5 6 (C (fn_0 4 8) (fn_2 1))": "(C (C (fn_0 4 8) (fn_2 1)) (fn_1 6 1.5 c))" + "fn_6 c 4 (C (fn_0 4 8) (fn_2 2))": "(C (C (fn_0 4 8) (fn_2 2)) (fn_1 4 3 c))" }, { - "fn_6 1.5 8 (C (fn_0 4 8) (fn_2 1))": "(C (C (fn_0 4 8) (fn_2 1)) (fn_1 8 1.5 c))" + "fn_6 r 4 (C (fn_0 4 8) (fn_2 2))": "(C (C (fn_0 4 8) (fn_2 2)) (fn_1 4 3 r))" }, { - "fn_6 3 2 (C (fn_0 4 8) (fn_2 2))": "(C (C (fn_0 4 8) (fn_2 2)) (fn_1 2 3 c))" + "fn_6 c 6 (C (fn_0 4 8) (fn_2 2))": "(C (C (fn_0 4 8) (fn_2 2)) (fn_1 6 3 c))" }, { - "fn_6 3 4 (C (fn_0 4 8) (fn_2 2))": "(C (C (fn_0 4 8) (fn_2 2)) (fn_1 4 3 c))" + "fn_6 r 6 (C (fn_0 4 8) (fn_2 2))": "(C (C (fn_0 4 8) (fn_2 2)) (fn_1 6 3 r))" }, { - "fn_6 3 6 (C (fn_0 4 8) (fn_2 2))": "(C (C (fn_0 4 8) (fn_2 2)) (fn_1 6 3 c))" + "fn_6 c 8 (C (fn_0 4 8) (fn_2 2))": "(C (C (fn_0 4 8) (fn_2 2)) (fn_1 8 3 c))" }, { - "fn_6 3 8 (C (fn_0 4 8) (fn_2 2))": "(C (C (fn_0 4 8) (fn_2 2)) (fn_1 8 3 c))" + "fn_6 r 8 (C (fn_0 4 8) (fn_2 2))": "(C (C (fn_0 4 8) (fn_2 2)) (fn_1 8 3 r))" }, { - "fn_6 1.5 2 (C (fn_2 4) (fn_0 1 6))": "(C (C (fn_2 4) (fn_0 1 6)) (fn_1 2 1.5 c))" + "fn_6 c 2 (C (fn_2 4) (fn_0 2 6))": "(C (C (fn_2 4) (fn_0 2 6)) (fn_1 2 3 c))" }, { - "fn_6 1.5 4 (C (fn_2 4) (fn_0 1 6))": "(C (C (fn_2 4) (fn_0 1 6)) (fn_1 4 1.5 c))" + "fn_6 r 2 (C (fn_2 4) (fn_0 2 6))": "(C (C (fn_2 4) (fn_0 2 6)) (fn_1 2 3 r))" }, { - "fn_6 1.5 6 (C (fn_2 4) (fn_0 1 6))": "(C (C (fn_2 4) (fn_0 1 6)) (fn_1 6 1.5 c))" + "fn_6 c 4 (C (fn_2 4) (fn_0 2 6))": "(C (C (fn_2 4) (fn_0 2 6)) (fn_1 4 3 c))" }, { - "fn_6 1.5 8 (C (fn_2 4) (fn_0 1 6))": "(C (C (fn_2 4) (fn_0 1 6)) (fn_1 8 1.5 c))" + "fn_6 r 4 (C (fn_2 4) (fn_0 2 6))": "(C (C (fn_2 4) (fn_0 2 6)) (fn_1 4 3 r))" }, { - "fn_6 3 2 (C (fn_2 4) (fn_0 2 6))": "(C (C (fn_2 4) (fn_0 2 6)) (fn_1 2 3 c))" + "fn_6 c 6 (C (fn_2 4) (fn_0 2 6))": "(C (C (fn_2 4) (fn_0 2 6)) (fn_1 6 3 c))" }, { - "fn_6 3 4 (C (fn_2 4) (fn_0 2 6))": "(C (C (fn_2 4) (fn_0 2 6)) (fn_1 4 3 c))" + "fn_6 r 6 (C (fn_2 4) (fn_0 2 6))": "(C (C (fn_2 4) (fn_0 2 6)) (fn_1 6 3 r))" }, { - "fn_6 3 6 (C (fn_2 4) (fn_0 2 6))": "(C (C (fn_2 4) (fn_0 2 6)) (fn_1 6 3 c))" + "fn_6 c 8 (C (fn_2 4) (fn_0 2 6))": "(C (C (fn_2 4) (fn_0 2 6)) (fn_1 8 3 c))" }, { - "fn_6 3 8 (C (fn_2 4) (fn_0 2 6))": "(C (C (fn_2 4) (fn_0 2 6)) (fn_1 8 3 c))" + "fn_6 r 8 (C (fn_2 4) (fn_0 2 6))": "(C (C (fn_2 4) (fn_0 2 6)) (fn_1 8 3 r))" }, { - "fn_6 1.5 2 (C (fn_2 4) (fn_2 1))": "(C (C (fn_2 4) (fn_2 1)) (fn_1 2 1.5 c))" + "fn_6 c 2 (C (fn_2 4) (fn_2 2))": "(C (C (fn_2 4) (fn_2 2)) (fn_1 2 3 c))" }, { - "fn_6 1.5 4 (C (fn_2 4) (fn_2 1))": "(C (C (fn_2 4) (fn_2 1)) (fn_1 4 1.5 c))" + "fn_6 r 2 (C (fn_2 4) (fn_2 2))": "(C (C (fn_2 4) (fn_2 2)) (fn_1 2 3 r))" }, { - "fn_6 1.5 6 (C (fn_2 4) (fn_2 1))": "(C (C (fn_2 4) (fn_2 1)) (fn_1 6 1.5 c))" + "fn_6 c 4 (C (fn_2 4) (fn_2 2))": "(C (C (fn_2 4) (fn_2 2)) (fn_1 4 3 c))" }, { - "fn_6 1.5 8 (C (fn_2 4) (fn_2 1))": "(C (C (fn_2 4) (fn_2 1)) (fn_1 8 1.5 c))" + "fn_6 r 4 (C (fn_2 4) (fn_2 2))": "(C (C (fn_2 4) (fn_2 2)) (fn_1 4 3 r))" }, { - "fn_6 3 2 (C (fn_2 4) (fn_2 2))": "(C (C (fn_2 4) (fn_2 2)) (fn_1 2 3 c))" + "fn_6 c 6 (C (fn_2 4) (fn_2 2))": "(C (C (fn_2 4) (fn_2 2)) (fn_1 6 3 c))" }, { - "fn_6 3 4 (C (fn_2 4) (fn_2 2))": "(C (C (fn_2 4) (fn_2 2)) (fn_1 4 3 c))" + "fn_6 r 6 (C (fn_2 4) (fn_2 2))": "(C (C (fn_2 4) (fn_2 2)) (fn_1 6 3 r))" }, { - "fn_6 3 6 (C (fn_2 4) (fn_2 2))": "(C (C (fn_2 4) (fn_2 2)) (fn_1 6 3 c))" + "fn_6 c 8 (C (fn_2 4) (fn_2 2))": "(C (C (fn_2 4) (fn_2 2)) (fn_1 8 3 c))" }, { - "fn_6 3 8 (C (fn_2 4) (fn_2 2))": "(C (C (fn_2 4) (fn_2 2)) (fn_1 8 3 c))" + "fn_6 r 8 (C (fn_2 4) (fn_2 2))": "(C (C (fn_2 4) (fn_2 2)) (fn_1 8 3 r))" }, { - "fn_6 1.5 2 (C (fn_4 4.25 6) (fn_0 1 6))": "(C (C (fn_4 4.25 6) (fn_0 1 6)) (fn_1 2 1.5 c))" + "fn_6 c 2 (C (fn_4 4.25 6) (fn_0 2 6))": "(C (C (fn_4 4.25 6) (fn_0 2 6)) (fn_1 2 3 c))" }, { - "fn_6 1.5 4 (C (fn_4 4.25 6) (fn_0 1 6))": "(C (C (fn_4 4.25 6) (fn_0 1 6)) (fn_1 4 1.5 c))" + "fn_6 r 2 (C (fn_4 4.25 6) (fn_0 2 6))": "(C (C (fn_4 4.25 6) (fn_0 2 6)) (fn_1 2 3 r))" }, { - "fn_6 1.5 6 (C (fn_4 4.25 6) (fn_0 1 6))": "(C (C (fn_4 4.25 6) (fn_0 1 6)) (fn_1 6 1.5 c))" + "fn_6 c 4 (C (fn_4 4.25 6) (fn_0 2 6))": "(C (C (fn_4 4.25 6) (fn_0 2 6)) (fn_1 4 3 c))" }, { - "fn_6 1.5 8 (C (fn_4 4.25 6) (fn_0 1 6))": "(C (C (fn_4 4.25 6) (fn_0 1 6)) (fn_1 8 1.5 c))" + "fn_6 r 4 (C (fn_4 4.25 6) (fn_0 2 6))": "(C (C (fn_4 4.25 6) (fn_0 2 6)) (fn_1 4 3 r))" }, { - "fn_6 3 2 (C (fn_4 4.25 6) (fn_0 2 6))": "(C (C (fn_4 4.25 6) (fn_0 2 6)) (fn_1 2 3 c))" + "fn_6 c 6 (C (fn_4 4.25 6) (fn_0 2 6))": "(C (C (fn_4 4.25 6) (fn_0 2 6)) (fn_1 6 3 c))" }, { - "fn_6 3 4 (C (fn_4 4.25 6) (fn_0 2 6))": "(C (C (fn_4 4.25 6) (fn_0 2 6)) (fn_1 4 3 c))" + "fn_6 r 6 (C (fn_4 4.25 6) (fn_0 2 6))": "(C (C (fn_4 4.25 6) (fn_0 2 6)) (fn_1 6 3 r))" }, { - "fn_6 3 6 (C (fn_4 4.25 6) (fn_0 2 6))": "(C (C (fn_4 4.25 6) (fn_0 2 6)) (fn_1 6 3 c))" + "fn_6 c 8 (C (fn_4 4.25 6) (fn_0 2 6))": "(C (C (fn_4 4.25 6) (fn_0 2 6)) (fn_1 8 3 c))" }, { - "fn_6 3 8 (C (fn_4 4.25 6) (fn_0 2 6))": "(C (C (fn_4 4.25 6) (fn_0 2 6)) (fn_1 8 3 c))" + "fn_6 r 8 (C (fn_4 4.25 6) (fn_0 2 6))": "(C (C (fn_4 4.25 6) (fn_0 2 6)) (fn_1 8 3 r))" }, { - "fn_6 1.5 2 (C (fn_4 4.25 6) (fn_2 1))": "(C (C (fn_4 4.25 6) (fn_2 1)) (fn_1 2 1.5 c))" + "fn_6 c 2 (C (fn_4 4.25 6) (fn_2 2))": "(C (C (fn_4 4.25 6) (fn_2 2)) (fn_1 2 3 c))" }, { - "fn_6 1.5 4 (C (fn_4 4.25 6) (fn_2 1))": "(C (C (fn_4 4.25 6) (fn_2 1)) (fn_1 4 1.5 c))" + "fn_6 r 2 (C (fn_4 4.25 6) (fn_2 2))": "(C (C (fn_4 4.25 6) (fn_2 2)) (fn_1 2 3 r))" }, { - "fn_6 1.5 6 (C (fn_4 4.25 6) (fn_2 1))": "(C (C (fn_4 4.25 6) (fn_2 1)) (fn_1 6 1.5 c))" + "fn_6 c 4 (C (fn_4 4.25 6) (fn_2 2))": "(C (C (fn_4 4.25 6) (fn_2 2)) (fn_1 4 3 c))" }, { - "fn_6 1.5 8 (C (fn_4 4.25 6) (fn_2 1))": "(C (C (fn_4 4.25 6) (fn_2 1)) (fn_1 8 1.5 c))" + "fn_6 r 4 (C (fn_4 4.25 6) (fn_2 2))": "(C (C (fn_4 4.25 6) (fn_2 2)) (fn_1 4 3 r))" }, { - "fn_6 3 2 (C (fn_4 4.25 6) (fn_2 2))": "(C (C (fn_4 4.25 6) (fn_2 2)) (fn_1 2 3 c))" + "fn_6 c 6 (C (fn_4 4.25 6) (fn_2 2))": "(C (C (fn_4 4.25 6) (fn_2 2)) (fn_1 6 3 c))" }, { - "fn_6 3 4 (C (fn_4 4.25 6) (fn_2 2))": "(C (C (fn_4 4.25 6) (fn_2 2)) (fn_1 4 3 c))" + "fn_6 r 6 (C (fn_4 4.25 6) (fn_2 2))": "(C (C (fn_4 4.25 6) (fn_2 2)) (fn_1 6 3 r))" }, { - "fn_6 3 6 (C (fn_4 4.25 6) (fn_2 2))": "(C (C (fn_4 4.25 6) (fn_2 2)) (fn_1 6 3 c))" + "fn_6 c 8 (C (fn_4 4.25 6) (fn_2 2))": "(C (C (fn_4 4.25 6) (fn_2 2)) (fn_1 8 3 c))" }, { - "fn_6 3 8 (C (fn_4 4.25 6) (fn_2 2))": "(C (C (fn_4 4.25 6) (fn_2 2)) (fn_1 8 3 c))" + "fn_6 r 8 (C (fn_4 4.25 6) (fn_2 2))": "(C (C (fn_4 4.25 6) (fn_2 2)) (fn_1 8 3 r))" }, { - "fn_6 1.5 2 (fn_3 1 (fn_0 4 6))": "(C (fn_3 1 (fn_0 4 6)) (fn_1 2 1.5 c))" + "fn_6 c 2 (fn_3 2 (fn_0 4 6))": "(C (fn_3 2 (fn_0 4 6)) (fn_1 2 3 c))" }, { - "fn_6 1.5 4 (fn_3 1 (fn_0 4 6))": "(C (fn_3 1 (fn_0 4 6)) (fn_1 4 1.5 c))" + "fn_6 r 2 (fn_3 2 (fn_0 4 6))": "(C (fn_3 2 (fn_0 4 6)) (fn_1 2 3 r))" }, { - "fn_6 1.5 6 (fn_3 1 (fn_0 4 6))": "(C (fn_3 1 (fn_0 4 6)) (fn_1 6 1.5 c))" + "fn_6 c 4 (fn_3 2 (fn_0 4 6))": "(C (fn_3 2 (fn_0 4 6)) (fn_1 4 3 c))" }, { - "fn_6 1.5 8 (fn_3 1 (fn_0 4 6))": "(C (fn_3 1 (fn_0 4 6)) (fn_1 8 1.5 c))" + "fn_6 r 4 (fn_3 2 (fn_0 4 6))": "(C (fn_3 2 (fn_0 4 6)) (fn_1 4 3 r))" }, { - "fn_6 1.5 2 (fn_3 1 (fn_0 4 8))": "(C (fn_3 1 (fn_0 4 8)) (fn_1 2 1.5 c))" + "fn_6 c 6 (fn_3 2 (fn_0 4 6))": "(C (fn_3 2 (fn_0 4 6)) (fn_1 6 3 c))" }, { - "fn_6 1.5 4 (fn_3 1 (fn_0 4 8))": "(C (fn_3 1 (fn_0 4 8)) (fn_1 4 1.5 c))" + "fn_6 r 6 (fn_3 2 (fn_0 4 6))": "(C (fn_3 2 (fn_0 4 6)) (fn_1 6 3 r))" }, { - "fn_6 1.5 6 (fn_3 1 (fn_0 4 8))": "(C (fn_3 1 (fn_0 4 8)) (fn_1 6 1.5 c))" + "fn_6 c 8 (fn_3 2 (fn_0 4 6))": "(C (fn_3 2 (fn_0 4 6)) (fn_1 8 3 c))" }, { - "fn_6 1.5 8 (fn_3 1 (fn_0 4 8))": "(C (fn_3 1 (fn_0 4 8)) (fn_1 8 1.5 c))" + "fn_6 r 8 (fn_3 2 (fn_0 4 6))": "(C (fn_3 2 (fn_0 4 6)) (fn_1 8 3 r))" }, { - "fn_6 1.5 2 (fn_3 1 (fn_2 4))": "(C (fn_3 1 (fn_2 4)) (fn_1 2 1.5 c))" + "fn_6 c 2 (fn_3 2 (fn_0 4 8))": "(C (fn_3 2 (fn_0 4 8)) (fn_1 2 3 c))" }, { - "fn_6 1.5 4 (fn_3 1 (fn_2 4))": "(C (fn_3 1 (fn_2 4)) (fn_1 4 1.5 c))" + "fn_6 r 2 (fn_3 2 (fn_0 4 8))": "(C (fn_3 2 (fn_0 4 8)) (fn_1 2 3 r))" }, { - "fn_6 1.5 6 (fn_3 1 (fn_2 4))": "(C (fn_3 1 (fn_2 4)) (fn_1 6 1.5 c))" + "fn_6 c 4 (fn_3 2 (fn_0 4 8))": "(C (fn_3 2 (fn_0 4 8)) (fn_1 4 3 c))" }, { - "fn_6 1.5 8 (fn_3 1 (fn_2 4))": "(C (fn_3 1 (fn_2 4)) (fn_1 8 1.5 c))" + "fn_6 r 4 (fn_3 2 (fn_0 4 8))": "(C (fn_3 2 (fn_0 4 8)) (fn_1 4 3 r))" }, { - "fn_6 1.5 2 (fn_3 1 (fn_4 4.25 6))": "(C (fn_3 1 (fn_4 4.25 6)) (fn_1 2 1.5 c))" + "fn_6 c 6 (fn_3 2 (fn_0 4 8))": "(C (fn_3 2 (fn_0 4 8)) (fn_1 6 3 c))" }, { - "fn_6 1.5 4 (fn_3 1 (fn_4 4.25 6))": "(C (fn_3 1 (fn_4 4.25 6)) (fn_1 4 1.5 c))" + "fn_6 r 6 (fn_3 2 (fn_0 4 8))": "(C (fn_3 2 (fn_0 4 8)) (fn_1 6 3 r))" }, { - "fn_6 1.5 6 (fn_3 1 (fn_4 4.25 6))": "(C (fn_3 1 (fn_4 4.25 6)) (fn_1 6 1.5 c))" + "fn_6 c 8 (fn_3 2 (fn_0 4 8))": "(C (fn_3 2 (fn_0 4 8)) (fn_1 8 3 c))" }, { - "fn_6 1.5 8 (fn_3 1 (fn_4 4.25 6))": "(C (fn_3 1 (fn_4 4.25 6)) (fn_1 8 1.5 c))" + "fn_6 r 8 (fn_3 2 (fn_0 4 8))": "(C (fn_3 2 (fn_0 4 8)) (fn_1 8 3 r))" }, { - "fn_6 3 2 (fn_3 2 (fn_0 4 6))": "(C (fn_3 2 (fn_0 4 6)) (fn_1 2 3 c))" + "fn_6 c 2 (fn_3 2 (fn_2 4))": "(C (fn_3 2 (fn_2 4)) (fn_1 2 3 c))" }, { - "fn_6 3 4 (fn_3 2 (fn_0 4 6))": "(C (fn_3 2 (fn_0 4 6)) (fn_1 4 3 c))" + "fn_6 r 2 (fn_3 2 (fn_2 4))": "(C (fn_3 2 (fn_2 4)) (fn_1 2 3 r))" }, { - "fn_6 3 6 (fn_3 2 (fn_0 4 6))": "(C (fn_3 2 (fn_0 4 6)) (fn_1 6 3 c))" + "fn_6 c 4 (fn_3 2 (fn_2 4))": "(C (fn_3 2 (fn_2 4)) (fn_1 4 3 c))" }, { - "fn_6 3 8 (fn_3 2 (fn_0 4 6))": "(C (fn_3 2 (fn_0 4 6)) (fn_1 8 3 c))" + "fn_6 r 4 (fn_3 2 (fn_2 4))": "(C (fn_3 2 (fn_2 4)) (fn_1 4 3 r))" }, { - "fn_6 3 2 (fn_3 2 (fn_0 4 8))": "(C (fn_3 2 (fn_0 4 8)) (fn_1 2 3 c))" + "fn_6 c 6 (fn_3 2 (fn_2 4))": "(C (fn_3 2 (fn_2 4)) (fn_1 6 3 c))" }, { - "fn_6 3 4 (fn_3 2 (fn_0 4 8))": "(C (fn_3 2 (fn_0 4 8)) (fn_1 4 3 c))" + "fn_6 r 6 (fn_3 2 (fn_2 4))": "(C (fn_3 2 (fn_2 4)) (fn_1 6 3 r))" }, { - "fn_6 3 6 (fn_3 2 (fn_0 4 8))": "(C (fn_3 2 (fn_0 4 8)) (fn_1 6 3 c))" + "fn_6 c 8 (fn_3 2 (fn_2 4))": "(C (fn_3 2 (fn_2 4)) (fn_1 8 3 c))" }, { - "fn_6 3 8 (fn_3 2 (fn_0 4 8))": "(C (fn_3 2 (fn_0 4 8)) (fn_1 8 3 c))" + "fn_6 r 8 (fn_3 2 (fn_2 4))": "(C (fn_3 2 (fn_2 4)) (fn_1 8 3 r))" }, { - "fn_6 3 2 (fn_3 2 (fn_2 4))": "(C (fn_3 2 (fn_2 4)) (fn_1 2 3 c))" + "fn_6 c 2 (fn_3 2 (fn_4 4.25 6))": "(C (fn_3 2 (fn_4 4.25 6)) (fn_1 2 3 c))" }, { - "fn_6 3 4 (fn_3 2 (fn_2 4))": "(C (fn_3 2 (fn_2 4)) (fn_1 4 3 c))" + "fn_6 r 2 (fn_3 2 (fn_4 4.25 6))": "(C (fn_3 2 (fn_4 4.25 6)) (fn_1 2 3 r))" }, { - "fn_6 3 6 (fn_3 2 (fn_2 4))": "(C (fn_3 2 (fn_2 4)) (fn_1 6 3 c))" + "fn_6 c 4 (fn_3 2 (fn_4 4.25 6))": "(C (fn_3 2 (fn_4 4.25 6)) (fn_1 4 3 c))" }, { - "fn_6 3 8 (fn_3 2 (fn_2 4))": "(C (fn_3 2 (fn_2 4)) (fn_1 8 3 c))" + "fn_6 r 4 (fn_3 2 (fn_4 4.25 6))": "(C (fn_3 2 (fn_4 4.25 6)) (fn_1 4 3 r))" }, { - "fn_6 3 2 (fn_3 2 (fn_4 4.25 6))": "(C (fn_3 2 (fn_4 4.25 6)) (fn_1 2 3 c))" + "fn_6 r 6 (fn_3 2 (fn_4 4.25 6))": "(C (fn_3 2 (fn_4 4.25 6)) (fn_1 6 3 r))" }, { - "fn_6 3 4 (fn_3 2 (fn_4 4.25 6))": "(C (fn_3 2 (fn_4 4.25 6)) (fn_1 4 3 c))" + "fn_6 c 8 (fn_3 2 (fn_4 4.25 6))": "(C (fn_3 2 (fn_4 4.25 6)) (fn_1 8 3 c))" }, { - "fn_6 3 8 (fn_3 2 (fn_4 4.25 6))": "(C (fn_3 2 (fn_4 4.25 6)) (fn_1 8 3 c))" + "fn_6 r 8 (fn_3 2 (fn_4 4.25 6))": "(C (fn_3 2 (fn_4 4.25 6)) (fn_1 8 3 r))" }, { - "fn_6 1.5 2 (fn_4 1 6)": "(C (fn_4 1 6) (fn_1 2 1.5 c))" + "fn_6 c 2 (fn_4 2 6)": "(C (fn_4 2 6) (fn_1 2 3 c))" }, { - "fn_6 1.5 4 (fn_4 1 6)": "(C (fn_4 1 6) (fn_1 4 1.5 c))" + "fn_6 r 2 (fn_4 2 6)": "(C (fn_4 2 6) (fn_1 2 3 r))" }, { - "fn_6 1.5 6 (fn_4 1 6)": "(C (fn_4 1 6) (fn_1 6 1.5 c))" + "fn_6 c 4 (fn_4 2 6)": "(C (fn_4 2 6) (fn_1 4 3 c))" }, { - "fn_6 1.5 8 (fn_4 1 6)": "(C (fn_4 1 6) (fn_1 8 1.5 c))" + "fn_6 r 4 (fn_4 2 6)": "(C (fn_4 2 6) (fn_1 4 3 r))" }, { - "fn_6 1.5 2 (fn_4 1 8)": "(C (fn_4 1 8) (fn_1 2 1.5 c))" + "fn_6 c 6 (fn_4 2 6)": "(C (fn_4 2 6) (fn_1 6 3 c))" }, { - "fn_6 1.5 4 (fn_4 1 8)": "(C (fn_4 1 8) (fn_1 4 1.5 c))" + "fn_6 r 6 (fn_4 2 6)": "(C (fn_4 2 6) (fn_1 6 3 r))" }, { - "fn_6 1.5 6 (fn_4 1 8)": "(C (fn_4 1 8) (fn_1 6 1.5 c))" + "fn_6 c 8 (fn_4 2 6)": "(C (fn_4 2 6) (fn_1 8 3 c))" }, { - "fn_6 1.5 8 (fn_4 1 8)": "(C (fn_4 1 8) (fn_1 8 1.5 c))" + "fn_6 r 8 (fn_4 2 6)": "(C (fn_4 2 6) (fn_1 8 3 r))" }, { - "fn_6 3 2 (fn_4 2 6)": "(C (fn_4 2 6) (fn_1 2 3 c))" + "fn_6 c 2 (fn_4 2 8)": "(C (fn_4 2 8) (fn_1 2 3 c))" }, { - "fn_6 3 4 (fn_4 2 6)": "(C (fn_4 2 6) (fn_1 4 3 c))" + "fn_6 r 2 (fn_4 2 8)": "(C (fn_4 2 8) (fn_1 2 3 r))" }, { - "fn_6 3 6 (fn_4 2 6)": "(C (fn_4 2 6) (fn_1 6 3 c))" + "fn_6 c 4 (fn_4 2 8)": "(C (fn_4 2 8) (fn_1 4 3 c))" }, { - "fn_6 3 8 (fn_4 2 6)": "(C (fn_4 2 6) (fn_1 8 3 c))" + "fn_6 r 4 (fn_4 2 8)": "(C (fn_4 2 8) (fn_1 4 3 r))" }, { - "fn_6 3 2 (fn_4 2 8)": "(C (fn_4 2 8) (fn_1 2 3 c))" + "fn_6 c 6 (fn_4 2 8)": "(C (fn_4 2 8) (fn_1 6 3 c))" }, { - "fn_6 3 4 (fn_4 2 8)": "(C (fn_4 2 8) (fn_1 4 3 c))" + "fn_6 r 6 (fn_4 2 8)": "(C (fn_4 2 8) (fn_1 6 3 r))" }, { - "fn_6 3 6 (fn_4 2 8)": "(C (fn_4 2 8) (fn_1 6 3 c))" + "fn_6 c 8 (fn_4 2 8)": "(C (fn_4 2 8) (fn_1 8 3 c))" }, { - "fn_6 3 8 (fn_4 2 8)": "(C (fn_4 2 8) (fn_1 8 3 c))" + "fn_6 r 8 (fn_4 2 8)": "(C (fn_4 2 8) (fn_1 8 3 r))" } ], - "dc_comparison_millis": null + "dc_comparison_millis": null, + "tdfa_annotation": null }, { "body": "(C #1 (fn_0 #0 6))", @@ -1477,7 +1495,8 @@ "fn_7 2 (fn_4 4.25 6)": "(C (fn_4 4.25 6) (fn_0 2 6))" } ], - "dc_comparison_millis": null + "dc_comparison_millis": null, + "tdfa_annotation": null }, { "body": "(C (fn_0 4 #1) (fn_2 #0))", @@ -1505,7 +1524,8 @@ "fn_8 2 8": "(C (fn_0 4 8) (fn_2 2))" } ], - "dc_comparison_millis": null + "dc_comparison_millis": null, + "tdfa_annotation": null }, { "body": "(fn_4 4.25 6)", @@ -1524,7 +1544,8 @@ "fn_9 ": "(fn_4 4.25 6)" } ], - "dc_comparison_millis": null + "dc_comparison_millis": null, + "tdfa_annotation": null } ] } \ No newline at end of file From 28c4d3e79c3852305ac53900a042424bed5f9601 Mon Sep 17 00:00:00 2001 From: Maddy Bowers Date: Mon, 11 Aug 2025 20:20:52 -0400 Subject: [PATCH 7/8] floating point weights --- tests/fuzz_symbol_weighting_test.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/fuzz_symbol_weighting_test.rs b/tests/fuzz_symbol_weighting_test.rs index e762373e..3f3043f3 100644 --- a/tests/fuzz_symbol_weighting_test.rs +++ b/tests/fuzz_symbol_weighting_test.rs @@ -86,7 +86,7 @@ fn fuzz_test_symbol_weighting(seed: u64) { let cost_prims = generate_random_weights(&selected_symbols, &mut rng); let weights = if rng.gen_bool(0.5) { - Some(input.train_programs.iter().map(|_| rng.gen_range(0..=2) as f32).collect()) + Some(input.train_programs.iter().map(|_| rng.gen_range(0.0..=2.0) as f32).collect()) } else { None }; From b6ad5d27bfd64e22045fddac3b09e1bdd57479c8 Mon Sep 17 00:00:00 2001 From: Maddy Bowers Date: Mon, 11 Aug 2025 20:37:14 -0400 Subject: [PATCH 8/8] crashing occasionally (3 of 100 tests) due to off-by-one from floating point rounding --- tests/fuzz_symbol_weighting_test.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/fuzz_symbol_weighting_test.rs b/tests/fuzz_symbol_weighting_test.rs index 3f3043f3..e0e7c71b 100644 --- a/tests/fuzz_symbol_weighting_test.rs +++ b/tests/fuzz_symbol_weighting_test.rs @@ -86,7 +86,7 @@ fn fuzz_test_symbol_weighting(seed: u64) { let cost_prims = generate_random_weights(&selected_symbols, &mut rng); let weights = if rng.gen_bool(0.5) { - Some(input.train_programs.iter().map(|_| rng.gen_range(0.0..=2.0) as f32).collect()) + Some(input.train_programs.iter().map(|_| if rng.gen_bool(0.5) { rng.gen_range(0.0..=10.0) } else { rng.gen_range(0.0..=1.0) }).collect()) } else { None };