packages feed

egison-5.0.0: sample/math/geometry/wedge-product.egi

--
-- Wedge Product
--

declare symbol x, y, z: MathExpr

def N : Integer := 3

def params : Vector MathExpr := [|x, y, z|]

def g : Matrix Integer := [|[|1, 0, 0|], [|0, 1, 0|], [|0, 0, 1|]|]

def dx : DiffForm Integer := [|1, 0, 0|]
def dy : DiffForm Integer := [|0, 1, 0|]
def dz : DiffForm Integer := [|0, 0, 1|]

assertEqual "dx ∧ dy"
  (dx ∧ dy)
  [| [| 0, 1, 0 |], [| 0, 0, 0 |], [| 0, 0, 0 |] |]

assertEqual "dx ∧ dy (normalized)"
  (dfNormalize (dx ∧ dy))
  [| [| 0, 1 / 2, 0 |], [| -1 / 2, 0, 0 |], [| 0, 0, 0 |] |]

assertEqual "dz ∧ dz"
  (dz ∧ dz)
  [| [| 0, 0, 0 |], [| 0, 0, 0 |], [| 0, 0, 1 |] |]

assertEqual "dz ∧ dz (normalized) = 0"
  (dfNormalize (dz ∧ dz))
  [| [| 0, 0, 0 |], [| 0, 0, 0 |], [| 0, 0, 0 |] |]