packages feed

egison-4.1.0: test/lib/math/tensor.egi

--
-- This file has been auto-generated by egison-translator.
--

assertEqual
  "Tensor product - case 1"
  ([|[|1, 1|], [|0, 1|]|]~i~j . [|[|1, 1|], [|0, 1|]|]_j_k)
  [|[|1, 2|], [|0, 1|]|]

assertEqual
  "Tensor product - case 2"
  ([|[|1, 1|], [|0, 1|]|]~i~j . [|[|1, 1|], [|0, 1|]|]_j~k . [|[|1, 1|]
  , [|0, 1|]|]_k_l)
  [|[|1, 3|], [|0, 1|]|]~i_l

assertEqual "Vector *" (V.* [|1, 1, 0|] [|10, 5, 10|]) 15

assertEqual
  "Matrix *"
  (M.* [|[|1, 1|], [|0, 1|]|] [|[|1, 1|], [|0, 1|]|])
  [|[|1, 2|], [|0, 1|]|]

assertEqual
  "Matrix determinant"
  (M.det [|[|1, 1|], [|0, 1|]|])
  1

assertEqual "Tensor '+' - case 1" (1 + [|1, 2, 3|]) [|2, 3, 4|]

assertEqual "Tensor '+' - case 2" ([|1, 2, 3|] + 1) [|2, 3, 4|]

assertEqual
  "Tensor '+' - case 3"
  ([|[|11, 12|], [|21, 22|], [|31, 32|]|]_i_j + [|100, 200, 300|]_i)
  [|[|111, 112|], [|221, 222|], [|331, 332|]|]_i_j

assertEqual
  "Tensor '+' - case 4"
  ([|100, 200, 300|]_i + [|[|11, 12|], [|21, 22|], [|31, 32|]|]_i_j)
  [|[|111, 112|], [|221, 222|], [|331, 332|]|]_i_j

assertEqual
  "Tensor '+' - case 5"
  ([|[|1, 2, 3|], [|10, 20, 30|]|]_i_j + [|100, 200, 300|]_j)
  [|[|101, 202, 303|], [|110, 220, 330|]|]_i_j

assertEqual
  "Tensor '+' - case 6"
  ([|100, 200, 300|]_j + [|[|1, 2, 3|], [|10, 20, 30|]|]_i_j)
  [|[|101, 110|], [|202, 220|], [|303, 330|]|]_j_i

assertEqual
  "append indices with ..."
  (let A := generateTensor 2#1 [2, 2]
       f %B := B..._j
    in f A_i)
  [|[|1, 1|], [|1, 1|]|]_i_j

assertEqual
  "generate_tensor by using function expr"
  (let g_i_j := (generateTensor
                  (\n m -> if n = m then function (x, y, z) else 0)
                  [3, 3])_i_j
    in show (withSymbols [i, j] d/d g_i_j x))
  "[| [| g_1_1|x, 0, 0 |], [| 0, g_2_2|x, 0 |], [| 0, 0, g_3_3|x |] |]"

assertEqual
  "define tensor having value of function expr"
  (let h_i_j := [|[|function (x, y, z), 0, 0|]
                , [|0, function (x, y, z), 0|]
                , [|0, 0, function (x, y, z)|]|]_i_j
    in show (withSymbols [i, j] d/d h_i_j x))
  "[| [| h_1_1|x, 0, 0 |], [| 0, h_2_2|x, 0 |], [| 0, 0, h_3_3|x |] |]"