# Experimental!
# Complex product
⍤⤙≍ [¯5 10] ⩜× [1 2] [3 4]
⍤⤙≍ [¯5 0 0 10] ⩜₂× [1 2] [3 0 0 4]
⍤⤙≍ [¯5 0 0 10] ⩜₂× [1 0 0 2] [3 4]
⍤⤙≍ [0_1 0_2 ¯1_0] ⩜× [0 1] [1_0 2_0 0_1]
# Vector product
⍤⤙≍ [32 3 ¯6 3] ⩜₃× [1 2 3] [4 5 6]
# Scalar product
⍤⤙≍ [2 4 6] ⩜× 2 [1 2 3]
⍤⤙≍ [2 4 6] ⩜× [2] [1 2 3]
⍤⤙≍ [2_4_6 3_6_9] ⩜× [¤2 ¤3] [1 2 3]
# Other products
⍤⤙≍ [1 1 1 ¯1] ⩜₂× [1 1 0 0] [0 1 1 0]
⍤⤙≍ [[0 0 0 1] [0 0 0 2] [¯1 0 0 0]] ⩜₂× [0 0 0 1] [1_0 2_0 0_1]
⍤⤙≍ [[0 0 0 1] [0 0 0 2] [¯1 0 0 0]] ⩜₂× [0 0 0 1] [[1 0 0 0] [2 0 0 0] [0 0 0 1]]
# Divide
⍤⤙≍ [0 ¯1] ⩜÷ [0 1] [1 0]
⍤⤙≍ [4_0 0_¯1] ⩜÷ [0.5_0 0_1] [2_0 1_0]
# Add
⍤⤙≍ [4 5] ⩜+ 1 [3 5]
⍤⤙≍ [4 0 0 5] ⩜₂+ 1 [3 0 0 5]
⍤⤙≍ [4 0 0 5] ⩜₃+ 1 [3 0 0 5]
⍤⤙≍ [4 12] ⩜+ [1 7] [3 5]
⍤⤙≍ [4 0 0 12] ⩜₂+ [1 7] [3 0 0 5]
⍤⤙≍ [1 1 0] ⩜₃+ [0 1 0] [1 0 0]
⍤⤙≍ [1 2 3 4 0 0 0 0] ⩜+ 1 [2 3 4]
# Magnitude
⍤⤙≍ 5 ⩜⌵ [3 4]
⍤⤙≍ [1 5 13] ⩜⌵ [0_1 3_4 5_12]
⍤⤙≍ 0¯ ⩜⌵ [0 0]
⍤⤙≍ √2 ⩜⌵ [1 1]
⍤⤙≍ √3 ⩜⌵ [1 1 1]
# Normalize
⍤⤙≍ [0.6 0.8] ⩜± [3 4]
⍤⤙≍ [0.6 0 0 0.8] ⩜± [3 0 0 4]
⍤⤙≍ ⟜⩜± [0 0 0 0]
# Reverse
⍤⤙≍ [1 ¯2] ⩜¯ [1 2]
⍤⤙≍ [1 2 3 ¯4] ⩜₂¯ [1 2 3 4]
⍤⤙≍ [1 ¯2 ¯3 ¯4] ⩜¯ [1 2 3 4]
⍤⤙≍ [1 2 3 4 ¯5 ¯6 ¯7 ¯8] ⩜₃¯ [1 2 3 4 5 6 7 8]
# Dual
⍤⤙≍ [0 1] ⩜¬ [1]
⍤⤙≍ [0 3 2 1] ⩜¬ [1 2 3]
⍤⤙≍ [¯4 3 ¯2 1] ⩜₄(⊏3¬) [1 2 3 4]
⍤⤙≍ [0 0 0 0 0 0 0 0 0 0 0 5 ¯4 3 ¯2 1] ⩜¬ [1 2 3 4 5]
# Inner
⍤⤙≍ [1 1 0 0] ⩜₂↥ [1 1 0 0] [0 1 0 0]
⍤⤙≍ [1 1 1 0] ⩜₂↥ [1 1 0 0] [0 1 1 0]
⍤⤙≍ [2 2 1 0] ⩜₂↥ [1 1 0 0] [1 1 1 0]
# Wedge
⍤⤙≍ [0 ¯1 1 ¯3] ⩜↧ [1 2 ¯1] [0 1 1]
[1 4 ¯3] # 1 + 4x - 3y
[1 ¯2 1] # 1 - 2x + y
⍤⤙≍ [2 3] ⇌÷⊃↙↘¯1 ⩜₃(⊏2↧)
# Regressive
⍤⤙≍ [0 0 ¯1 2 0 0 0 0] ⩜₃∨ [0 0 0 0 1 2 1 0] [0 0 0 0 2 4 1 0]
⍤⤙≍ [¯6 5 4] ⩜₃(∨∩¬) [1 ¯2 4] [1 2 ¯1]
# Rotor
⍤⤙≍ [¯1 1 2] ⁅₉ ⩜₃(⊏1×⊃¯˜× ∠ ∩₃⌞⌝⊏1) [0 1 0] [1 0 0] [1 1 2]
⍤⤙≍ [¯1 1 2] ⁅₉ ⩜₃(⊏1×⊃¯˜× ∠) [0 1 0] [1 0 0] [1 1 2]
⍤⤙≍ ∩⁅₉ [⟜∘÷2√2 0 0] ⩜₃∠ [1 0 0] [0 1 0]
⍤⤙≍ ∩⁅₉ [⟜∘÷2√2 0 0] ⩜∠ [1 0 0] [0 1 0]
# Sandwich
⍤⤙≍ [¯2 1 3] ⁅₉ ⩜₃(↻ ±) [1 ¯1 0 0] [1 2 3]
⍤⤙≍ [2 ¯1 3] ⁅₉ ⩜₃(⌝↻±) [1 ¯1 0 0] [1 2 3]
⍤⤙≍ [¯3_2 ¯5_4 ¯7_6] ⁅₉⩜₂(⊏1 ↻∠ ∩₃⌞⌝⊏1) [0 1] [1 0] [2_3 4_5 6_7]
# Pad blades
⍤⤙≍ [1 0 0 0] ⩜₂⌝⊏ 0 [1]
⍤⤙≍ [0 1 2 0] ⩜₂⌝⊏ 1 [1 2]
⍤⤙≍ [0 0 0 1] ⩜₂⌝⊏ 2 [1]
⍤⤙≍ [1 0 0 0 0 0 0 0] ⩜₃⌝⊏ 0 [1]
⍤⤙≍ [0 1 2 3 0 0 0 0] ⩜₃⌝⊏ 1 [1 2 3]
⍤⤙≍ [0 0 0 0 1 2 3 0] ⩜₃⌝⊏ 2 [1 2 3]
⍤⤙≍ [0 0 0 0 0 0 0 1] ⩜₃⌝⊏ 3 [1]
# Extract blades
⍤⤙≍ [1] ⩜₂⊏ 0 [1 2 3 4]
⍤⤙≍ [2 3] ⩜₂⊏ 1 [1 2 3 4]
⍤⤙≍ [4] ⩜₂⊏ 2 [1 2 3 4]
⍤⤙≍ [2] ⩜₂⊏ 2 [1 2]
⍤⤙≍ [1] ⩜₃⊏ 0 [1 2 3 4 5 6 7 8]
⍤⤙≍ [2 3 4] ⩜₃⊏ 1 [1 2 3 4 5 6 7 8]
⍤⤙≍ [5 6 7] ⩜₃⊏ 2 [1 2 3 4 5 6 7 8]
⍤⤙≍ [2 3 4] ⩜₃⊏ 2 [1 2 3 4]
⍤⤙≍ [8] ⩜₃⊏ 3 [1 2 3 4 5 6 7 8]
⍤⤙≍ [1 5 6 7] ⩜₃⊏ 0_2 [1 2 3 4 5 6 7 8]
⍤⤙≍ [1 2 3 4] ⩜₃⊏ 0_1 [1 2 3 4 5 6 7 8]
⍤⤙≍ [2 3 4 5 6 7] ⩜₃⊏ 1_2 [1 2 3 4 5 6 7 8]
# PGA
⍤⤙≍ [0 14 15 1] ⩜(0_1|↻±+1±˜×⊙¯) [0 6 10 1] [0 2 5 1] [0 10 10 1]
⍤⤙≍ [0 14 15 1] ⩜(0_1|↻∠) [0 6 10 1] [0 2 5 1] [0 10 10 1]
# Sqrt
⍤⤙≍ [0_1 0_2] ⩜√ [¯1_0 ¯4_0]
⍤⤙≍ [1_1 2_2] ⁅₉ ⩜√ [0_2 0_8]
# Couple
⍤⤙≍ [1_2 1_3] ⩜⊟ 1 2_3
⍤⤙≍ [1_3 2_3] ⩜⊟ 1_2 3
⍤⤙≍ [[1_5 2_5] [3_6 4_6]] ⩜⊟ [1_2 3_4] 5_6
⍤⤙≍ [[1_3 1_4] [2_5 2_6]] ⩜⊟ 1_2 [3_4 5_6]
# Uncouple
⍤⤙≍ {1_3_5 2_4_6} {⩜°⊟} [1_2 3_4 5_6]
⍤⤙≍ {1_2_3 0_0_0} {⩜°⊟} [¤1 ¤2 ¤3]
# Unparse
⍤⤙≍ "1 + 2e₁ + 3e₂ + 4e₁₂" ⩜₂°⋕ [1 2 3 4]
⍤⤙≍ "5+2i" ⩜°⋕ [5 2]
⍤⤙≍ {"1 + 2e₁₂ + 3e₃₁ + 4e₂₃" "5 + 6e₁₂ + 7e₃₁ + 8e₂₃"} ⩜°⋕ [[1 2 3 4] [5 6 7 8]]
⍤⤙≍ "e₀₁ + 2e₂₀ + 3e₁₂" ⩜(0_1|°⋕) [0 1 2 3]