egison-4.1.3: 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 (\_ -> 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
(\match as list integer with
| [$n, #n] -> function (x, y, z)
| _ -> 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 |] |]"