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:
- Geometric product constraint:
u * ũproduces only scalar - 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