ndarray_einsum_beta 0.4.2

Implementation of the einsum function for the Rust ndarray crate. As popularized in numpy, einsum (Einstein summation) implements general multidimensional tensor contraction. Many linear algebra operations and generalizations of those operations can be expressed as special cases of tensor contraction.
Documentation
Current results

test bench_double_outer_product_medium         ... bench:     212,692 ns/iter (+/- 6,805)
test bench_hadamard_builtin_large              ... bench:      81,748 ns/iter (+/- 11,838)
test bench_hadamard_large                      ... bench:     106,067 ns/iter (+/- 24,837)
test bench_hadamard_transpose_builtin_large    ... bench:     125,085 ns/iter (+/- 25,970)
test bench_hadamard_transpose_large            ... bench:     151,788 ns/iter (+/- 33,684)
test bench_hadamard_transpose_large_reuse_path ... bench:     126,319 ns/iter (+/- 11,762)
test bench_multiply_builtin_large              ... bench:  10,106,621 ns/iter (+/- 442,533)
test bench_multiply_builtin_medium             ... bench:      13,592 ns/iter (+/- 2,173)
test bench_multiply_builtin_tiny               ... bench:         360 ns/iter (+/- 33)
test bench_multiply_large                      ... bench:  10,451,812 ns/iter (+/- 751,337)
test bench_multiply_medium                     ... bench:      41,025 ns/iter (+/- 7,309)
test bench_multiply_tiny                       ... bench:      26,725 ns/iter (+/- 876)
test bench_multiply_tiny_reuse_path            ... bench:       1,139 ns/iter (+/- 99)
test bench_outer_product_medium                ... bench:     206,871 ns/iter (+/- 31,692)
test bench_stacked_double_outer_product_large  ... bench:  26,380,319 ns/iter (+/- 683,131)
test bench_stacked_outer_product_medium        ... bench:     360,471 ns/iter (+/- 80,072)
test bench_sum_builtin_huge                    ... bench:   4,717,589 ns/iter (+/- 793,183)
test bench_sum_huge                            ... bench:   6,785,715 ns/iter (+/- 690,743)