diff options
author | Jonas Harsch <jonas.harsch@gmail.com> | 2017-09-01 12:01:39 +0000 |
---|---|---|
committer | Jonas Harsch <jonas.harsch@gmail.com> | 2017-09-01 12:01:39 +0000 |
commit | 810b70ad091a2d67541d26582db2c838423730e4 (patch) | |
tree | f58e72b438a1d0eb0a706b755379e4418156008d /unsupported/Eigen | |
parent | a4089991eb6bdb9e8ebfef93d81ca7b5e67ea77d (diff) | |
parent | a34fb212cd7ea96524d859a0c7f989f8657bc068 (diff) |
Merged in JonasMu/added-an-example-for-a-contraction-to-a--1504265366851 (pull request PR-1)
Added an example for a contraction to a scalar value
Diffstat (limited to 'unsupported/Eigen')
-rw-r--r-- | unsupported/Eigen/CXX11/src/Tensor/README.md | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/unsupported/Eigen/CXX11/src/Tensor/README.md b/unsupported/Eigen/CXX11/src/Tensor/README.md index 4423f81f7..30d553af7 100644 --- a/unsupported/Eigen/CXX11/src/Tensor/README.md +++ b/unsupported/Eigen/CXX11/src/Tensor/README.md @@ -1016,13 +1016,20 @@ multidimensional case. a.setValues({{1, 2}, {4, 5}, {5, 6}}); // Compute the traditional matrix product - array<IndexPair<int>, 1> product_dims = { IndexPair(1, 0) }; + Eigen::array<Eigen::IndexPair<int>, 1> product_dims = { Eigen::IndexPair(1, 0) }; Eigen::Tensor<int, 2> AB = a.contract(b, product_dims); // Compute the product of the transpose of the matrices - array<IndexPair<int>, 1> transpose_product_dims = { IndexPair(0, 1) }; + Eigen::array<Eigen::IndexPair<int>, 1> transpose_product_dims = { Eigen::IndexPair(0, 1) }; Eigen::Tensor<int, 2> AtBt = a.contract(b, transposed_product_dims); - + + // Contraction to scalar value using a ouble contraction + // First coordinate of both tensors are contracted as well as both second coordinates + Eigen::array<Eigen::IndexPair<int>, 2> double_contraction_product_dims = { Eigen::IndexPair<int>(0, 0), Eigen::IndexPair<int>(1, 1) }; + Eigen::Tensor<int, 0> AdoubleontractedA = a.contract(a, double_contraction_product_dims); + + // Extracting the scalar value of the tensor contraction for further usage + int value = AdoublecontractedA(0); ## Reduction Operations |