Skip to main content

discover_valid_combinations

Function discover_valid_combinations 

Source
pub fn discover_valid_combinations(algebra: &Algebra) -> Vec<Vec<usize>>
Expand description

Discovers all valid grade combinations that satisfy geometric constraints.

Returns grade combinations that satisfy both:

  1. Geometric product constraint: u * ũ produces only scalar
  2. Antiproduct constraint: u ⊟ ũ̃ produces only antiscalar

§Example

use clifford_codegen::discovery::discover_valid_combinations;
use clifford_codegen::algebra::Algebra;

let algebra = Algebra::euclidean(3);
let valid = discover_valid_combinations(&algebra);

// All single grades satisfy constraints
assert!(valid.contains(&vec![0])); // Scalar
assert!(valid.contains(&vec![1])); // Vector
assert!(valid.contains(&vec![2])); // Bivector
assert!(valid.contains(&vec![3])); // Trivector

// Even and odd subalgebras satisfy
assert!(valid.contains(&vec![0, 2])); // Rotor
assert!(valid.contains(&vec![1, 3])); // Odd