[INFO] cloning repository https://github.com/PP6464/tensor_math
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/PP6464/tensor_math" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPP6464%2Ftensor_math", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPP6464%2Ftensor_math'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 2292090a25ed7d94e4127ffea4d1c24c19013116
[INFO] checking PP6464/tensor_math against 3154cc1a3e6424e44f438a95007d043ed5ceaaf6 for pr-133502-30
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPP6464%2Ftensor_math" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/PP6464/tensor_math
[INFO] removed 0 missing tests
[INFO] finished tweaking git repo https://github.com/PP6464/tensor_math
[INFO] tweaked toml for git repo https://github.com/PP6464/tensor_math written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/PP6464/tensor_math on toolchain 3154cc1a3e6424e44f438a95007d043ed5ceaaf6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/PP6464/tensor_math already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 74d7fe9232fa27ee7b7d4b99fea0510f081645764b2a7f7bd9a12ccddda3aed8
[INFO] running `Command { std: "docker" "start" "74d7fe9232fa27ee7b7d4b99fea0510f081645764b2a7f7bd9a12ccddda3aed8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "74d7fe9232fa27ee7b7d4b99fea0510f081645764b2a7f7bd9a12ccddda3aed8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "74d7fe9232fa27ee7b7d4b99fea0510f081645764b2a7f7bd9a12ccddda3aed8" "/opt/rustwide/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "74d7fe9232fa27ee7b7d4b99fea0510f081645764b2a7f7bd9a12ccddda3aed8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "74d7fe9232fa27ee7b7d4b99fea0510f081645764b2a7f7bd9a12ccddda3aed8" "/opt/rustwide/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.101
[INFO] [stderr]    Compiling serde_core v1.0.223
[INFO] [stderr]     Checking cfg-if v1.0.3
[INFO] [stderr]    Compiling libc v0.2.175
[INFO] [stderr]    Compiling serde v1.0.223
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]     Checking regex-syntax v0.8.6
[INFO] [stderr]     Checking clap_lex v0.7.5
[INFO] [stderr]    Compiling cc v1.2.66
[INFO] [stderr]     Checking memchr v2.7.5
[INFO] [stderr]     Checking plotters-backend v0.3.7
[INFO] [stderr]     Checking anstyle v1.0.11
[INFO] [stderr]     Checking ciborium-io v0.2.2
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]     Checking cast v0.3.0
[INFO] [stderr]     Checking half v2.6.0
[INFO] [stderr]    Compiling thiserror v2.0.16
[INFO] [stderr]     Checking same-file v1.0.6
[INFO] [stderr]     Checking cpufeatures v0.3.0
[INFO] [stderr]     Checking clap_builder v4.5.47
[INFO] [stderr]     Checking num-iter v0.1.45
[INFO] [stderr]     Checking walkdir v2.5.0
[INFO] [stderr]     Checking chacha20 v0.10.1
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking plotters-svg v0.3.7
[INFO] [stderr]     Checking oorandom v11.1.5
[INFO] [stderr]     Checking plotters v0.3.7
[INFO] [stderr]     Checking anes v0.1.6
[INFO] [stderr]     Checking float-cmp v0.10.0
[INFO] [stderr]     Checking itertools v0.13.0
[INFO] [stderr]     Checking rayon v1.12.0
[INFO] [stderr]     Checking ciborium-ll v0.2.2
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]     Checking page_size v0.6.0
[INFO] [stderr]     Checking rand v0.10.2
[INFO] [stderr]    Compiling alloca v0.4.0
[INFO] [stderr]     Checking regex-automata v0.4.10
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]     Checking num v0.4.3
[INFO] [stderr]     Checking clap v4.5.47
[INFO] [stderr]     Checking criterion-plot v0.8.2
[INFO] [stderr]     Checking regex v1.11.2
[INFO] [stderr]    Compiling serde_derive v1.0.223
[INFO] [stderr]    Compiling thiserror-impl v2.0.16
[INFO] [stderr]     Checking serde_json v1.0.145
[INFO] [stderr]     Checking ciborium v0.2.2
[INFO] [stderr]     Checking tinytemplate v1.2.1
[INFO] [stderr]     Checking criterion v0.8.2
[INFO] [stderr]     Checking tensor_math v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `rayon::iter::IndexedParallelIterator`
[INFO] [stdout]  --> src/definitions/tensor.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rayon::iter::IndexedParallelIterator;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ComplexFloat`
[INFO] [stdout]  --> src/math/householder.rs:5:31
[INFO] [stdout]   |
[INFO] [stdout] 5 | use num::complex::{Complex64, ComplexFloat};
[INFO] [stdout]   |                               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rayon::iter::IndexedParallelIterator`
[INFO] [stdout]  --> src/definitions/tensor.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rayon::iter::IndexedParallelIterator;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ComplexFloat`
[INFO] [stdout]  --> src/math/householder.rs:5:31
[INFO] [stdout]   |
[INFO] [stdout] 5 | use num::complex::{Complex64, ComplexFloat};
[INFO] [stdout]   |                               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/math/det_inv.rs:131:5
[INFO] [stdout]     |
[INFO] [stdout] 131 |     unsafe {
[INFO] [stdout]     |     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/math/det_inv.rs:131:5
[INFO] [stdout]     |
[INFO] [stdout] 131 |     unsafe {
[INFO] [stdout]     |     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/utilities/matrix.rs:545:22
[INFO] [stdout]     |
[INFO] [stdout] 545 |     pub fn transpose(mut self) -> Matrix<T> {
[INFO] [stdout]     |                      ----^^^^
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/utilities/matrix.rs:545:22
[INFO] [stdout]     |
[INFO] [stdout] 545 |     pub fn transpose(mut self) -> Matrix<T> {
[INFO] [stdout]     |                      ----^^^^
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `old_shape_unchecked` and `old_index_unchecked` are never used
[INFO] [stdout]    --> src/definitions/transpose.rs:138:26
[INFO] [stdout]     |
[INFO] [stdout]  37 | impl Transpose {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub(crate) unsafe fn old_shape_unchecked(&self, mut new_shape: Shape) -> Shape {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 196 |     pub(crate) unsafe fn old_index_unchecked(&self, mut new_index: Vec<usize>) -> Vec<usize> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `contract_mul_unchecked` and `contract_mul_unchecked_mt` are never used
[INFO] [stdout]    --> src/math/contract_mul.rs:83:26
[INFO] [stdout]     |
[INFO] [stdout]  20 | impl<T> Tensor<T> {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  83 |     pub(crate) unsafe fn contract_mul_unchecked(mut self, mut other: Tensor<T>) -> Tensor<T>
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 195 |     pub(crate) unsafe fn contract_mul_unchecked_mt(mut self, mut other: Tensor<T>) -> Tensor<T>
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `mat_mul_unchecked` is never used
[INFO] [stdout]    --> src/math/contract_mul.rs:286:26
[INFO] [stdout]     |
[INFO] [stdout] 252 | impl<T> Matrix<T> {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 286 |     pub(crate) unsafe fn mat_mul_unchecked(self, other: Matrix<T>) -> Matrix<T>
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `rank1_update_add_unchecked`, `rank1_update_add_unchecked_mt`, `rank1_update_sub_unchecked`, and `rank1_update_sub_unchecked_mt` are never used
[INFO] [stdout]    --> src/math/outer_product.rs:90:26
[INFO] [stdout]     |
[INFO] [stdout]  65 | impl<T> Matrix<T> {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub(crate) unsafe fn rank1_update_add_unchecked(&mut self, v1: &[T], v2: &[T])
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub(crate) unsafe fn rank1_update_add_unchecked_mt(&mut self, v1: &[T], v2: &[T])
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub(crate) unsafe fn rank1_update_sub_unchecked(&mut self, v1: &[T], v2: &[T])
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub(crate) unsafe fn rank1_update_sub_unchecked_mt(&mut self, v1: &[T], v2: &[T])
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `rank1_update_add_unchecked`, `rank1_update_add_unchecked_mt`, and `rank1_update_sub_unchecked` are never used
[INFO] [stdout]    --> src/math/outer_product.rs:240:26
[INFO] [stdout]     |
[INFO] [stdout] 215 | impl<T> MatrixSliceMut<'_, T> {
[INFO] [stdout]     | ----------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 240 |     pub(crate) unsafe fn rank1_update_add_unchecked(&mut self, v1: &[T], v2: &[T])
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 277 |     pub(crate) unsafe fn rank1_update_add_unchecked_mt(&mut self, v1: &[T], v2: &[T])
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 314 |     pub(crate) unsafe fn rank1_update_sub_unchecked(&mut self, v1: &[T], v2: &[T])
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/math/mat_vec_mul.rs:35:26
[INFO] [stdout]     |
[INFO] [stdout]  11 | impl<T> Matrix<T> {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  35 |     pub(crate) unsafe fn mat_vec_mul_unchecked(self, v: &[T]) -> Vec<T>
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub(crate) unsafe fn mat_vec_mul_unchecked_mt(self, v: &[T]) -> Vec<T>
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub(crate) unsafe fn vec_mat_mul_unchecked(self, v: &[T]) -> Vec<T>
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub(crate) unsafe fn vec_mat_mul_unchecked_mt(self, v: &[T]) -> Vec<T>
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 222 |     pub(crate) unsafe fn mat_vec_mul_unchecked_into_slice(self, v: &[T], out: &mut [T])
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 263 |     pub(crate) unsafe fn mat_vec_mul_unchecked_mt_into_slice(self, v: &[T], out: &mut [T])
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 304 |     pub(crate) unsafe fn vec_mat_mul_unchecked_into_slice(self, v: &[T], out: &mut [T])
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 343 |     pub(crate) unsafe fn vec_mat_mul_unchecked_mt_into_slice(self, v: &[T], out: &mut [T])
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/math/mat_vec_mul.rs:377:26
[INFO] [stdout]     |
[INFO] [stdout] 353 | impl<T> MatrixSlice<'_, T> {
[INFO] [stdout]     | -------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 377 |     pub(crate) unsafe fn mat_vec_mul_unchecked(&self, v: &[T]) -> Vec<T>
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 420 |     pub(crate) unsafe fn mat_vec_mul_unchecked_mt(&self, v: &[T]) -> Vec<T>
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 465 |     pub(crate) unsafe fn vec_mat_mul_unchecked(&self, v: &[T]) -> Vec<T>
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 514 |     pub(crate) unsafe fn vec_mat_mul_unchecked_mt(&self, v: &[T]) -> Vec<T>
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 568 |     pub(crate) unsafe fn mat_vec_mul_unchecked_into_slice(&self, v: &[T], out: &mut [T])
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 650 |     pub(crate) unsafe fn vec_mat_mul_unchecked_into_slice(&self, v: &[T], out: &mut [T])
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 689 |     pub(crate) unsafe fn vec_mat_mul_unchecked_mt_into_slice(&self, v: &[T], out: &mut [T])
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `dot_unchecked` and `dot_unchecked_mt` are never used
[INFO] [stdout]   --> src/math/dot.rs:27:26
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl<T> Tensor<T> {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub(crate) unsafe fn dot_unchecked(&self, other: &Tensor<T>) -> T
[INFO] [stdout]    |                          ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub(crate) unsafe fn dot_unchecked_mt(&self, other: &Tensor<T>) -> T
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `dot_unchecked` and `dot_unchecked_mt` are never used
[INFO] [stdout]    --> src/math/dot.rs:79:26
[INFO] [stdout]     |
[INFO] [stdout]  60 | impl<T> Matrix<T> {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  79 |     pub(crate) unsafe fn dot_unchecked(&self, other: &Matrix<T>) -> T
[INFO] [stdout]     |                          ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub(crate) unsafe fn dot_unchecked_mt(&self, other: &Matrix<T>) -> T
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `gemm_add_unchecked`, `gemm_add_unchecked_mt`, `gemm_sub_unchecked`, and `gemm_sub_unchecked_mt` are never used
[INFO] [stdout]    --> src/math/gemm.rs:58:26
[INFO] [stdout]     |
[INFO] [stdout]  18 | impl<T: Add<Output = T> + AddAssign + Mul<Output = T> + Zero + Clone> Matrix<T> {
[INFO] [stdout]     | ------------------------------------------------------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  58 |     pub(crate) unsafe fn gemm_add_unchecked(&mut self, m1: Matrix<T>, m2: Matrix<T>) {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub(crate) unsafe fn gemm_add_unchecked_mt(&mut self, m1: Matrix<T>, m2: Matrix<T>)
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     pub(crate) unsafe fn gemm_sub_unchecked(&mut self, m1: Matrix<T>, m2: Matrix<T>) where T: SubAssign {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 235 |     pub(crate) unsafe fn gemm_sub_unchecked_mt(&mut self, m1: Matrix<T>, m2: Matrix<T>)
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `gemm_add_unchecked`, `gemm_add_unchecked_mt`, `gemm_sub_unchecked`, and `gemm_sub_unchecked_mt` are never used
[INFO] [stdout]    --> src/math/gemm.rs:296:26
[INFO] [stdout]     |
[INFO] [stdout] 256 | impl<T: Add<Output = T> + AddAssign + Mul<Output = T> + Zero + Clone> MatrixSliceMut<'_, T> {
[INFO] [stdout]     | ------------------------------------------------------------------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 296 |     pub(crate) unsafe fn gemm_add_unchecked(&mut self, m1: Matrix<T>, m2: Matrix<T>) {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 355 |     pub(crate) unsafe fn gemm_add_unchecked_mt(&mut self, m1: Matrix<T>, m2: Matrix<T>)
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 414 |     pub(crate) unsafe fn gemm_sub_unchecked(&mut self, m1: Matrix<T>, m2: Matrix<T>) where T: SubAssign {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 473 |     pub(crate) unsafe fn gemm_sub_unchecked_mt(&mut self, m1: Matrix<T>, m2: Matrix<T>)
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `concat_unchecked` is never used
[INFO] [stdout]    --> src/utilities/tensor.rs:816:26
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl<T> Tensor<T> {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 816 |     pub(crate) unsafe fn concat_unchecked(self, other: Tensor<T>, axis: usize) -> Tensor<T> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/utilities/matrix.rs:283:9
[INFO] [stdout]     |
[INFO] [stdout] 283 |         &self,
[INFO] [stdout]     |         ^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 286 |     ) -> Result<MatrixSlice<T>, TensorErrors> {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 286 |     ) -> Result<MatrixSlice<'_, T>, TensorErrors> {
[INFO] [stdout]     |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/utilities/matrix.rs:328:9
[INFO] [stdout]     |
[INFO] [stdout] 328 |         &self,
[INFO] [stdout]     |         ^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 331 |     ) -> MatrixSlice<T> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 331 |     ) -> MatrixSlice<'_, T> {
[INFO] [stdout]     |                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/utilities/matrix.rs:340:28
[INFO] [stdout]     |
[INFO] [stdout] 340 |     pub fn as_matrix_slice(&self) -> MatrixSlice<T> {
[INFO] [stdout]     |                            ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 340 |     pub fn as_matrix_slice(&self) -> MatrixSlice<'_, T> {
[INFO] [stdout]     |                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/utilities/matrix.rs:409:32
[INFO] [stdout]     |
[INFO] [stdout] 409 |     pub fn as_matrix_slice_mut(&mut self) -> MatrixSliceMut<T> {
[INFO] [stdout]     |                                ^^^^^^^^^     ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 409 |     pub fn as_matrix_slice_mut(&mut self) -> MatrixSliceMut<'_, T> {
[INFO] [stdout]     |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/utilities/tensor.rs:277:18
[INFO] [stdout]     |
[INFO] [stdout] 277 |     pub fn slice(&self, indices: &[Range<usize>]) -> Result<TensorSlice<T>, TensorErrors> {
[INFO] [stdout]     |                  ^^^^^ the lifetime is elided here          ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 277 |     pub fn slice(&self, indices: &[Range<usize>]) -> Result<TensorSlice<'_, T>, TensorErrors> {
[INFO] [stdout]     |                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/utilities/tensor.rs:314:42
[INFO] [stdout]     |
[INFO] [stdout] 314 |     pub(crate) unsafe fn slice_unchecked(&self, indices: &[Range<usize>]) -> TensorSlice<T> {
[INFO] [stdout]     |                                          ^^^^^ the lifetime is elided here   ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 314 |     pub(crate) unsafe fn slice_unchecked(&self, indices: &[Range<usize>]) -> TensorSlice<'_, T> {
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/utilities/tensor.rs:325:28
[INFO] [stdout]     |
[INFO] [stdout] 325 |     pub fn as_tensor_slice(&self) -> TensorSlice<T> {
[INFO] [stdout]     |                            ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 325 |     pub fn as_tensor_slice(&self) -> TensorSlice<'_, T> {
[INFO] [stdout]     |                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/utilities/tensor.rs:397:32
[INFO] [stdout]     |
[INFO] [stdout] 397 |     pub fn as_tensor_slice_mut(&mut self) -> TensorSliceMut<T> {
[INFO] [stdout]     |                                ^^^^^^^^^     ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 397 |     pub fn as_tensor_slice_mut(&mut self) -> TensorSliceMut<'_, T> {
[INFO] [stdout]     |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `old_shape_unchecked` and `old_index_unchecked` are never used
[INFO] [stdout]    --> src/definitions/transpose.rs:138:26
[INFO] [stdout]     |
[INFO] [stdout]  37 | impl Transpose {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub(crate) unsafe fn old_shape_unchecked(&self, mut new_shape: Shape) -> Shape {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 196 |     pub(crate) unsafe fn old_index_unchecked(&self, mut new_index: Vec<usize>) -> Vec<usize> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `contract_mul_unchecked` and `contract_mul_unchecked_mt` are never used
[INFO] [stdout]    --> src/math/contract_mul.rs:83:26
[INFO] [stdout]     |
[INFO] [stdout]  20 | impl<T> Tensor<T> {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  83 |     pub(crate) unsafe fn contract_mul_unchecked(mut self, mut other: Tensor<T>) -> Tensor<T>
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 195 |     pub(crate) unsafe fn contract_mul_unchecked_mt(mut self, mut other: Tensor<T>) -> Tensor<T>
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `mat_mul_unchecked` is never used
[INFO] [stdout]    --> src/math/contract_mul.rs:286:26
[INFO] [stdout]     |
[INFO] [stdout] 252 | impl<T> Matrix<T> {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 286 |     pub(crate) unsafe fn mat_mul_unchecked(self, other: Matrix<T>) -> Matrix<T>
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `rank1_update_add_unchecked`, `rank1_update_add_unchecked_mt`, `rank1_update_sub_unchecked`, and `rank1_update_sub_unchecked_mt` are never used
[INFO] [stdout]    --> src/math/outer_product.rs:90:26
[INFO] [stdout]     |
[INFO] [stdout]  65 | impl<T> Matrix<T> {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub(crate) unsafe fn rank1_update_add_unchecked(&mut self, v1: &[T], v2: &[T])
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub(crate) unsafe fn rank1_update_add_unchecked_mt(&mut self, v1: &[T], v2: &[T])
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub(crate) unsafe fn rank1_update_sub_unchecked(&mut self, v1: &[T], v2: &[T])
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub(crate) unsafe fn rank1_update_sub_unchecked_mt(&mut self, v1: &[T], v2: &[T])
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `rank1_update_add_unchecked`, `rank1_update_add_unchecked_mt`, and `rank1_update_sub_unchecked` are never used
[INFO] [stdout]    --> src/math/outer_product.rs:240:26
[INFO] [stdout]     |
[INFO] [stdout] 215 | impl<T> MatrixSliceMut<'_, T> {
[INFO] [stdout]     | ----------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 240 |     pub(crate) unsafe fn rank1_update_add_unchecked(&mut self, v1: &[T], v2: &[T])
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 277 |     pub(crate) unsafe fn rank1_update_add_unchecked_mt(&mut self, v1: &[T], v2: &[T])
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 314 |     pub(crate) unsafe fn rank1_update_sub_unchecked(&mut self, v1: &[T], v2: &[T])
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/math/mat_vec_mul.rs:35:26
[INFO] [stdout]     |
[INFO] [stdout]  11 | impl<T> Matrix<T> {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  35 |     pub(crate) unsafe fn mat_vec_mul_unchecked(self, v: &[T]) -> Vec<T>
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub(crate) unsafe fn mat_vec_mul_unchecked_mt(self, v: &[T]) -> Vec<T>
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub(crate) unsafe fn vec_mat_mul_unchecked(self, v: &[T]) -> Vec<T>
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub(crate) unsafe fn vec_mat_mul_unchecked_mt(self, v: &[T]) -> Vec<T>
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 222 |     pub(crate) unsafe fn mat_vec_mul_unchecked_into_slice(self, v: &[T], out: &mut [T])
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 263 |     pub(crate) unsafe fn mat_vec_mul_unchecked_mt_into_slice(self, v: &[T], out: &mut [T])
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 304 |     pub(crate) unsafe fn vec_mat_mul_unchecked_into_slice(self, v: &[T], out: &mut [T])
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 343 |     pub(crate) unsafe fn vec_mat_mul_unchecked_mt_into_slice(self, v: &[T], out: &mut [T])
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/math/mat_vec_mul.rs:377:26
[INFO] [stdout]     |
[INFO] [stdout] 353 | impl<T> MatrixSlice<'_, T> {
[INFO] [stdout]     | -------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 377 |     pub(crate) unsafe fn mat_vec_mul_unchecked(&self, v: &[T]) -> Vec<T>
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 420 |     pub(crate) unsafe fn mat_vec_mul_unchecked_mt(&self, v: &[T]) -> Vec<T>
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 465 |     pub(crate) unsafe fn vec_mat_mul_unchecked(&self, v: &[T]) -> Vec<T>
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 514 |     pub(crate) unsafe fn vec_mat_mul_unchecked_mt(&self, v: &[T]) -> Vec<T>
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 568 |     pub(crate) unsafe fn mat_vec_mul_unchecked_into_slice(&self, v: &[T], out: &mut [T])
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 650 |     pub(crate) unsafe fn vec_mat_mul_unchecked_into_slice(&self, v: &[T], out: &mut [T])
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 689 |     pub(crate) unsafe fn vec_mat_mul_unchecked_mt_into_slice(&self, v: &[T], out: &mut [T])
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `dot_unchecked` and `dot_unchecked_mt` are never used
[INFO] [stdout]   --> src/math/dot.rs:27:26
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl<T> Tensor<T> {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub(crate) unsafe fn dot_unchecked(&self, other: &Tensor<T>) -> T
[INFO] [stdout]    |                          ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub(crate) unsafe fn dot_unchecked_mt(&self, other: &Tensor<T>) -> T
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `dot_unchecked` and `dot_unchecked_mt` are never used
[INFO] [stdout]    --> src/math/dot.rs:79:26
[INFO] [stdout]     |
[INFO] [stdout]  60 | impl<T> Matrix<T> {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  79 |     pub(crate) unsafe fn dot_unchecked(&self, other: &Matrix<T>) -> T
[INFO] [stdout]     |                          ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub(crate) unsafe fn dot_unchecked_mt(&self, other: &Matrix<T>) -> T
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `gemm_add_unchecked`, `gemm_add_unchecked_mt`, `gemm_sub_unchecked`, and `gemm_sub_unchecked_mt` are never used
[INFO] [stdout]    --> src/math/gemm.rs:58:26
[INFO] [stdout]     |
[INFO] [stdout]  18 | impl<T: Add<Output = T> + AddAssign + Mul<Output = T> + Zero + Clone> Matrix<T> {
[INFO] [stdout]     | ------------------------------------------------------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  58 |     pub(crate) unsafe fn gemm_add_unchecked(&mut self, m1: Matrix<T>, m2: Matrix<T>) {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub(crate) unsafe fn gemm_add_unchecked_mt(&mut self, m1: Matrix<T>, m2: Matrix<T>)
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     pub(crate) unsafe fn gemm_sub_unchecked(&mut self, m1: Matrix<T>, m2: Matrix<T>) where T: SubAssign {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 235 |     pub(crate) unsafe fn gemm_sub_unchecked_mt(&mut self, m1: Matrix<T>, m2: Matrix<T>)
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `gemm_add_unchecked`, `gemm_add_unchecked_mt`, `gemm_sub_unchecked`, and `gemm_sub_unchecked_mt` are never used
[INFO] [stdout]    --> src/math/gemm.rs:296:26
[INFO] [stdout]     |
[INFO] [stdout] 256 | impl<T: Add<Output = T> + AddAssign + Mul<Output = T> + Zero + Clone> MatrixSliceMut<'_, T> {
[INFO] [stdout]     | ------------------------------------------------------------------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 296 |     pub(crate) unsafe fn gemm_add_unchecked(&mut self, m1: Matrix<T>, m2: Matrix<T>) {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 355 |     pub(crate) unsafe fn gemm_add_unchecked_mt(&mut self, m1: Matrix<T>, m2: Matrix<T>)
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 414 |     pub(crate) unsafe fn gemm_sub_unchecked(&mut self, m1: Matrix<T>, m2: Matrix<T>) where T: SubAssign {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 473 |     pub(crate) unsafe fn gemm_sub_unchecked_mt(&mut self, m1: Matrix<T>, m2: Matrix<T>)
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `concat_unchecked` is never used
[INFO] [stdout]    --> src/utilities/tensor.rs:816:26
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl<T> Tensor<T> {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 816 |     pub(crate) unsafe fn concat_unchecked(self, other: Tensor<T>, axis: usize) -> Tensor<T> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/utilities/matrix.rs:283:9
[INFO] [stdout]     |
[INFO] [stdout] 283 |         &self,
[INFO] [stdout]     |         ^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 286 |     ) -> Result<MatrixSlice<T>, TensorErrors> {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 286 |     ) -> Result<MatrixSlice<'_, T>, TensorErrors> {
[INFO] [stdout]     |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/utilities/matrix.rs:328:9
[INFO] [stdout]     |
[INFO] [stdout] 328 |         &self,
[INFO] [stdout]     |         ^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 331 |     ) -> MatrixSlice<T> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 331 |     ) -> MatrixSlice<'_, T> {
[INFO] [stdout]     |                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/utilities/matrix.rs:340:28
[INFO] [stdout]     |
[INFO] [stdout] 340 |     pub fn as_matrix_slice(&self) -> MatrixSlice<T> {
[INFO] [stdout]     |                            ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 340 |     pub fn as_matrix_slice(&self) -> MatrixSlice<'_, T> {
[INFO] [stdout]     |                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/utilities/matrix.rs:409:32
[INFO] [stdout]     |
[INFO] [stdout] 409 |     pub fn as_matrix_slice_mut(&mut self) -> MatrixSliceMut<T> {
[INFO] [stdout]     |                                ^^^^^^^^^     ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 409 |     pub fn as_matrix_slice_mut(&mut self) -> MatrixSliceMut<'_, T> {
[INFO] [stdout]     |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/utilities/tensor.rs:277:18
[INFO] [stdout]     |
[INFO] [stdout] 277 |     pub fn slice(&self, indices: &[Range<usize>]) -> Result<TensorSlice<T>, TensorErrors> {
[INFO] [stdout]     |                  ^^^^^ the lifetime is elided here          ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 277 |     pub fn slice(&self, indices: &[Range<usize>]) -> Result<TensorSlice<'_, T>, TensorErrors> {
[INFO] [stdout]     |                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/utilities/tensor.rs:314:42
[INFO] [stdout]     |
[INFO] [stdout] 314 |     pub(crate) unsafe fn slice_unchecked(&self, indices: &[Range<usize>]) -> TensorSlice<T> {
[INFO] [stdout]     |                                          ^^^^^ the lifetime is elided here   ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 314 |     pub(crate) unsafe fn slice_unchecked(&self, indices: &[Range<usize>]) -> TensorSlice<'_, T> {
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/utilities/tensor.rs:325:28
[INFO] [stdout]     |
[INFO] [stdout] 325 |     pub fn as_tensor_slice(&self) -> TensorSlice<T> {
[INFO] [stdout]     |                            ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 325 |     pub fn as_tensor_slice(&self) -> TensorSlice<'_, T> {
[INFO] [stdout]     |                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/utilities/tensor.rs:397:32
[INFO] [stdout]     |
[INFO] [stdout] 397 |     pub fn as_tensor_slice_mut(&mut self) -> TensorSliceMut<T> {
[INFO] [stdout]     |                                ^^^^^^^^^     ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 397 |     pub fn as_tensor_slice_mut(&mut self) -> TensorSliceMut<'_, T> {
[INFO] [stdout]     |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `a`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/math/det_inv.rs:15:24
[INFO] [stdout]     |
[INFO] [stdout]  11 |         let a = Matrix::<f64>::rand(ord, ord);
[INFO] [stdout]     |             -   ----------------------------- move occurs because `a` has type `Matrix<f64>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout]  14 |         group.bench_with_input(BenchmarkId::new("f64", &label), &label, |bench, _| {
[INFO] [stdout]     |                                                                         ---------- captured by this `FnMut` closure
[INFO] [stdout]  15 |             bench.iter(|| {
[INFO] [stdout]     |                        ^^ `a` is moved here
[INFO] [stdout]  16 |                 let r = a.det().expect("det must succeed");
[INFO] [stdout]     |                         - variable moved due to use in closure
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/benchmark_group.rs:265:12
[INFO] [stdout]     |
[INFO] [stdout] 265 |         F: FnMut(&mut Bencher<'_, M>, &I),
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout]  16 |                 let r = a.clone().det().expect("det must succeed");
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `a`, a captured variable in an `FnMut` closure
[INFO] [stdout]   --> benches/math/det_inv.rs:16:25
[INFO] [stdout]    |
[INFO] [stdout] 11 |         let a = Matrix::<f64>::rand(ord, ord);
[INFO] [stdout]    |             -   ----------------------------- move occurs because `a` has type `Matrix<f64>`, which does not implement the `Copy` trait
[INFO] [stdout]    |             |
[INFO] [stdout]    |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 15 |             bench.iter(|| {
[INFO] [stdout]    |                        -- captured by this `FnMut` closure
[INFO] [stdout] 16 |                 let r = a.det().expect("det must succeed");
[INFO] [stdout]    |                         ^ ----- `a` moved due to this method call
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         `a` is moved here
[INFO] [stdout]    |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/bencher.rs:85:12
[INFO] [stdout]    |
[INFO] [stdout] 85 |         R: FnMut() -> O,
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] note: `tensor_math::math::det_inv::<impl tensor_math::definitions::matrix::Matrix<f64>>::det` takes ownership of the receiver `self`, which moves `a`
[INFO] [stdout]   --> src/math/det_inv.rs:12:16
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn det(self) -> Result<f64, TensorErrors> {
[INFO] [stdout]    |                ^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]    |
[INFO] [stdout] 16 |                 let r = a.clone().det().expect("det must succeed");
[INFO] [stdout]    |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `c`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/math/det_inv.rs:32:24
[INFO] [stdout]     |
[INFO] [stdout]  28 |         let c = a + b * Complex64::I;
[INFO] [stdout]     |             -   -------------------- move occurs because `c` has type `Matrix<num::Complex<f64>>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout]  31 |         group.bench_with_input(BenchmarkId::new("c64", &label), &label, |bench, _| {
[INFO] [stdout]     |                                                                         ---------- captured by this `FnMut` closure
[INFO] [stdout]  32 |             bench.iter(|| {
[INFO] [stdout]     |                        ^^ `c` is moved here
[INFO] [stdout]  33 |                 let r = c.det().expect("det must succeed");
[INFO] [stdout]     |                         - variable moved due to use in closure
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/benchmark_group.rs:265:12
[INFO] [stdout]     |
[INFO] [stdout] 265 |         F: FnMut(&mut Bencher<'_, M>, &I),
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout]  33 |                 let r = c.clone().det().expect("det must succeed");
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `c`, a captured variable in an `FnMut` closure
[INFO] [stdout]   --> benches/math/det_inv.rs:33:25
[INFO] [stdout]    |
[INFO] [stdout] 28 |         let c = a + b * Complex64::I;
[INFO] [stdout]    |             -   -------------------- move occurs because `c` has type `Matrix<num::Complex<f64>>`, which does not implement the `Copy` trait
[INFO] [stdout]    |             |
[INFO] [stdout]    |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 32 |             bench.iter(|| {
[INFO] [stdout]    |                        -- captured by this `FnMut` closure
[INFO] [stdout] 33 |                 let r = c.det().expect("det must succeed");
[INFO] [stdout]    |                         ^ ----- `c` moved due to this method call
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         `c` is moved here
[INFO] [stdout]    |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/bencher.rs:85:12
[INFO] [stdout]    |
[INFO] [stdout] 85 |         R: FnMut() -> O,
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] note: `tensor_math::math::det_inv::<impl tensor_math::definitions::matrix::Matrix<num::Complex<f64>>>::det` takes ownership of the receiver `self`, which moves `c`
[INFO] [stdout]   --> src/math/det_inv.rs:58:16
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub fn det(self) -> Result<Complex64, TensorErrors> {
[INFO] [stdout]    |                ^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]    |
[INFO] [stdout] 33 |                 let r = c.clone().det().expect("det must succeed");
[INFO] [stdout]    |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> benches/utilities/slice.rs:15:36
[INFO] [stdout]    |
[INFO] [stdout] 15 |         let a = Tensor::from_value(&shape![rows, cols], 1.0);
[INFO] [stdout]    |                 ------------------ ^^^^^^^^^^^^^^^^^^^ expected `Shape`, found `&Shape`
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/utilities/tensor.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub fn from_value(shape: Shape, value: T) -> Self
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]    |
[INFO] [stdout] 15 -         let a = Tensor::from_value(&shape![rows, cols], 1.0);
[INFO] [stdout] 15 +         let a = Tensor::from_value(shape![rows, cols], 1.0);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `a`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/math/det_inv.rs:47:24
[INFO] [stdout]     |
[INFO] [stdout]  43 |         let a = Matrix::<f64>::rand(ord, ord);
[INFO] [stdout]     |             -   ----------------------------- move occurs because `a` has type `Matrix<f64>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout]  46 |         group.bench_with_input(BenchmarkId::new("f64", &label), &label, |bench, _| {
[INFO] [stdout]     |                                                                         ---------- captured by this `FnMut` closure
[INFO] [stdout]  47 |             bench.iter(|| {
[INFO] [stdout]     |                        ^^ `a` is moved here
[INFO] [stdout]  48 |                 let r = a.inv().expect("inv must succeed");
[INFO] [stdout]     |                         - variable moved due to use in closure
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/benchmark_group.rs:265:12
[INFO] [stdout]     |
[INFO] [stdout] 265 |         F: FnMut(&mut Bencher<'_, M>, &I),
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout]  48 |                 let r = a.clone().inv().expect("inv must succeed");
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `a`, a captured variable in an `FnMut` closure
[INFO] [stdout]   --> benches/math/det_inv.rs:48:25
[INFO] [stdout]    |
[INFO] [stdout] 43 |         let a = Matrix::<f64>::rand(ord, ord);
[INFO] [stdout]    |             -   ----------------------------- move occurs because `a` has type `Matrix<f64>`, which does not implement the `Copy` trait
[INFO] [stdout]    |             |
[INFO] [stdout]    |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 47 |             bench.iter(|| {
[INFO] [stdout]    |                        -- captured by this `FnMut` closure
[INFO] [stdout] 48 |                 let r = a.inv().expect("inv must succeed");
[INFO] [stdout]    |                         ^ ----- `a` moved due to this method call
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         `a` is moved here
[INFO] [stdout]    |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/bencher.rs:85:12
[INFO] [stdout]    |
[INFO] [stdout] 85 |         R: FnMut() -> O,
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] note: `tensor_math::math::det_inv::<impl tensor_math::definitions::matrix::Matrix<f64>>::inv` takes ownership of the receiver `self`, which moves `a`
[INFO] [stdout]   --> src/math/det_inv.rs:33:16
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn inv(self) -> Result<Matrix<f64>, TensorErrors> {
[INFO] [stdout]    |                ^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]    |
[INFO] [stdout] 48 |                 let r = a.clone().inv().expect("inv must succeed");
[INFO] [stdout]    |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `c`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/math/det_inv.rs:64:24
[INFO] [stdout]     |
[INFO] [stdout]  60 |         let c = a + b * Complex64::I;
[INFO] [stdout]     |             -   -------------------- move occurs because `c` has type `Matrix<num::Complex<f64>>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout]  63 |         group.bench_with_input(BenchmarkId::new("c64", &label), &label, |bench, _| {
[INFO] [stdout]     |                                                                         ---------- captured by this `FnMut` closure
[INFO] [stdout]  64 |             bench.iter(|| {
[INFO] [stdout]     |                        ^^ `c` is moved here
[INFO] [stdout]  65 |                 let r = c.inv().expect("inv must succeed");
[INFO] [stdout]     |                         - variable moved due to use in closure
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/benchmark_group.rs:265:12
[INFO] [stdout]     |
[INFO] [stdout] 265 |         F: FnMut(&mut Bencher<'_, M>, &I),
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout]  65 |                 let r = c.clone().inv().expect("inv must succeed");
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `c`, a captured variable in an `FnMut` closure
[INFO] [stdout]   --> benches/math/det_inv.rs:65:25
[INFO] [stdout]    |
[INFO] [stdout] 60 |         let c = a + b * Complex64::I;
[INFO] [stdout]    |             -   -------------------- move occurs because `c` has type `Matrix<num::Complex<f64>>`, which does not implement the `Copy` trait
[INFO] [stdout]    |             |
[INFO] [stdout]    |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 64 |             bench.iter(|| {
[INFO] [stdout]    |                        -- captured by this `FnMut` closure
[INFO] [stdout] 65 |                 let r = c.inv().expect("inv must succeed");
[INFO] [stdout]    |                         ^ ----- `c` moved due to this method call
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         `c` is moved here
[INFO] [stdout]    |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/bencher.rs:85:12
[INFO] [stdout]    |
[INFO] [stdout] 85 |         R: FnMut() -> O,
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] note: `tensor_math::math::det_inv::<impl tensor_math::definitions::matrix::Matrix<num::Complex<f64>>>::inv` takes ownership of the receiver `self`, which moves `c`
[INFO] [stdout]   --> src/math/det_inv.rs:80:16
[INFO] [stdout]    |
[INFO] [stdout] 80 |     pub fn inv(self) -> Result<Matrix<Complex64>, TensorErrors> {
[INFO] [stdout]    |                ^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]    |
[INFO] [stdout] 65 |                 let r = c.clone().inv().expect("inv must succeed");
[INFO] [stdout]    |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> benches/utilities/slice.rs:45:48
[INFO] [stdout]    |
[INFO] [stdout] 45 |                 let mut a = Tensor::from_value(&shape![rows, cols], 1.0);
[INFO] [stdout]    |                             ------------------ ^^^^^^^^^^^^^^^^^^^ expected `Shape`, found `&Shape`
[INFO] [stdout]    |                             |
[INFO] [stdout]    |                             arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/utilities/tensor.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub fn from_value(shape: Shape, value: T) -> Self
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]    |
[INFO] [stdout] 45 -                 let mut a = Tensor::from_value(&shape![rows, cols], 1.0);
[INFO] [stdout] 45 +                 let mut a = Tensor::from_value(shape![rows, cols], 1.0);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0507`.
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> benches/utilities/map.rs:19:36
[INFO] [stdout]    |
[INFO] [stdout] 19 |         let a = Tensor::from_value(&shape![rows, cols], 1.0);
[INFO] [stdout]    |                 ------------------ ^^^^^^^^^^^^^^^^^^^ expected `Shape`, found `&Shape`
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/utilities/tensor.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub fn from_value(shape: Shape, value: T) -> Self
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]    |
[INFO] [stdout] 19 -         let a = Tensor::from_value(&shape![rows, cols], 1.0);
[INFO] [stdout] 19 +         let a = Tensor::from_value(shape![rows, cols], 1.0);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> benches/utilities/slice.rs:77:41
[INFO] [stdout]    |
[INFO] [stdout] 77 |         let values = Tensor::from_value(&shape![slice_rows, slice_cols], 1.0);
[INFO] [stdout]    |                      ------------------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Shape`, found `&Shape`
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/utilities/tensor.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub fn from_value(shape: Shape, value: T) -> Self
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]    |
[INFO] [stdout] 77 -         let values = Tensor::from_value(&shape![slice_rows, slice_cols], 1.0);
[INFO] [stdout] 77 +         let values = Tensor::from_value(shape![slice_rows, slice_cols], 1.0);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> benches/utilities/slice.rs:81:48
[INFO] [stdout]    |
[INFO] [stdout] 81 |                 let mut a = Tensor::from_value(&shape![rows, cols], 0.0);
[INFO] [stdout]    |                             ------------------ ^^^^^^^^^^^^^^^^^^^ expected `Shape`, found `&Shape`
[INFO] [stdout]    |                             |
[INFO] [stdout]    |                             arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/utilities/tensor.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub fn from_value(shape: Shape, value: T) -> Self
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]    |
[INFO] [stdout] 81 -                 let mut a = Tensor::from_value(&shape![rows, cols], 0.0);
[INFO] [stdout] 81 +                 let mut a = Tensor::from_value(shape![rows, cols], 0.0);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `a`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/math/hessenberg.rs:17:24
[INFO] [stdout]     |
[INFO] [stdout]  11 |         let a = Matrix::<f64>::rand(ord, ord);
[INFO] [stdout]     |             -   ----------------------------- move occurs because `a` has type `Matrix<f64>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout]  16 |         group.bench_with_input(BenchmarkId::new("c64", &label), &label, |bench, _| {
[INFO] [stdout]     |                                                                         ---------- captured by this `FnMut` closure
[INFO] [stdout]  17 |             bench.iter(|| {
[INFO] [stdout]     |                        ^^ `a` is moved here
[INFO] [stdout]  18 |                 let r = a.upper_hessenberg().expect("hessenberg must succeed");
[INFO] [stdout]     |                         - variable moved due to use in closure
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/benchmark_group.rs:265:12
[INFO] [stdout]     |
[INFO] [stdout] 265 |         F: FnMut(&mut Bencher<'_, M>, &I),
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout]  18 |                 let r = a.clone().upper_hessenberg().expect("hessenberg must succeed");
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `a`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/math/hessenberg.rs:18:25
[INFO] [stdout]     |
[INFO] [stdout]  11 |         let a = Matrix::<f64>::rand(ord, ord);
[INFO] [stdout]     |             -   ----------------------------- move occurs because `a` has type `Matrix<f64>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout]  17 |             bench.iter(|| {
[INFO] [stdout]     |                        -- captured by this `FnMut` closure
[INFO] [stdout]  18 |                 let r = a.upper_hessenberg().expect("hessenberg must succeed");
[INFO] [stdout]     |                         ^ ------------------ `a` moved due to this method call
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `a` is moved here
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/bencher.rs:85:12
[INFO] [stdout]     |
[INFO] [stdout]  85 |         R: FnMut() -> O,
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] note: `tensor_math::math::hessenberg::<impl tensor_math::definitions::matrix::Matrix<f64>>::upper_hessenberg` takes ownership of the receiver `self`, which moves `a`
[INFO] [stdout]    --> src/math/hessenberg.rs:122:29
[INFO] [stdout]     |
[INFO] [stdout] 122 |     pub fn upper_hessenberg(self) -> Result<(Matrix<f64>, Matrix<f64>), TensorErrors> {
[INFO] [stdout]     |                             ^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout]  18 |                 let r = a.clone().upper_hessenberg().expect("hessenberg must succeed");
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `c`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/math/hessenberg.rs:37:24
[INFO] [stdout]     |
[INFO] [stdout]  31 |         let c = a + b * Complex64::I;
[INFO] [stdout]     |             -   -------------------- move occurs because `c` has type `Matrix<num::Complex<f64>>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout]  36 |         group.bench_with_input(BenchmarkId::new("c64", &label), &label, |bench, _| {
[INFO] [stdout]     |                                                                         ---------- captured by this `FnMut` closure
[INFO] [stdout]  37 |             bench.iter(|| {
[INFO] [stdout]     |                        ^^ `c` is moved here
[INFO] [stdout]  38 |                 let r = c.upper_hessenberg().expect("hessenberg must succeed");
[INFO] [stdout]     |                         - variable moved due to use in closure
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/benchmark_group.rs:265:12
[INFO] [stdout]     |
[INFO] [stdout] 265 |         F: FnMut(&mut Bencher<'_, M>, &I),
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout]  38 |                 let r = c.clone().upper_hessenberg().expect("hessenberg must succeed");
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `c`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/math/hessenberg.rs:38:25
[INFO] [stdout]     |
[INFO] [stdout]  31 |         let c = a + b * Complex64::I;
[INFO] [stdout]     |             -   -------------------- move occurs because `c` has type `Matrix<num::Complex<f64>>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout]  37 |             bench.iter(|| {
[INFO] [stdout]     |                        -- captured by this `FnMut` closure
[INFO] [stdout]  38 |                 let r = c.upper_hessenberg().expect("hessenberg must succeed");
[INFO] [stdout]     |                         ^ ------------------ `c` moved due to this method call
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `c` is moved here
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/bencher.rs:85:12
[INFO] [stdout]     |
[INFO] [stdout]  85 |         R: FnMut() -> O,
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] note: `tensor_math::math::hessenberg::<impl tensor_math::definitions::matrix::Matrix<num::Complex<f64>>>::upper_hessenberg` takes ownership of the receiver `self`, which moves `c`
[INFO] [stdout]    --> src/math/hessenberg.rs:222:29
[INFO] [stdout]     |
[INFO] [stdout] 222 |     pub fn upper_hessenberg(self) -> Result<(Matrix<Complex64>, Matrix<Complex64>), TensorErrors> {
[INFO] [stdout]     |                             ^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout]  38 |                 let r = c.clone().upper_hessenberg().expect("hessenberg must succeed");
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `tensor_math` (bench "det_inv") due to 8 previous errors
[INFO] [stdout] error[E0507]: cannot move out of `a`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/math/transformation_rank.rs:36:24
[INFO] [stdout]     |
[INFO] [stdout]  21 |         let a = Matrix::<f64>::rand(rows, cols);
[INFO] [stdout]     |             -   ------------------------------- move occurs because `a` has type `Matrix<f64>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout]  35 |         group.bench_with_input(BenchmarkId::new("c64", &label), &label, |bench, _| {
[INFO] [stdout]     |                                                                         ---------- captured by this `FnMut` closure
[INFO] [stdout]  36 |             bench.iter(|| {
[INFO] [stdout]     |                        ^^ `a` is moved here
[INFO] [stdout]  37 |                 let r = a.transformation_rank();
[INFO] [stdout]     |                         - variable moved due to use in closure
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/benchmark_group.rs:265:12
[INFO] [stdout]     |
[INFO] [stdout] 265 |         F: FnMut(&mut Bencher<'_, M>, &I),
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout]  37 |                 let r = a.clone().transformation_rank();
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0507]: cannot move out of `a`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/math/hessenberg.rs:55:24
[INFO] [stdout]     |
[INFO] [stdout]  49 |         let a = Matrix::<f64>::rand(ord, ord);
[INFO] [stdout]     |             -   ----------------------------- move occurs because `a` has type `Matrix<f64>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout]  54 |         group.bench_with_input(BenchmarkId::new("f64", &label), &label, |bench, _| {
[INFO] [stdout]     |                                                                         ---------- captured by this `FnMut` closure
[INFO] [stdout]  55 |             bench.iter(|| {
[INFO] [stdout]     |                        ^^ `a` is moved here
[INFO] [stdout]  56 |                 let r = a.lower_hessenberg().expect("hessenberg must succeed");
[INFO] [stdout]     |                         - variable moved due to use in closure
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/benchmark_group.rs:265:12
[INFO] [stdout]     |
[INFO] [stdout] 265 |         F: FnMut(&mut Bencher<'_, M>, &I),
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout]  56 |                 let r = a.clone().lower_hessenberg().expect("hessenberg must succeed");
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `a`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/math/hessenberg.rs:56:25
[INFO] [stdout]     |
[INFO] [stdout]  49 |         let a = Matrix::<f64>::rand(ord, ord);
[INFO] [stdout]     |             -   ----------------------------- move occurs because `a` has type `Matrix<f64>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout]  55 |             bench.iter(|| {
[INFO] [stdout]     |                        -- captured by this `FnMut` closure
[INFO] [stdout]  56 |                 let r = a.lower_hessenberg().expect("hessenberg must succeed");
[INFO] [stdout]     |                         ^ ------------------ `a` moved due to this method call
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `a` is moved here
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/bencher.rs:85:12
[INFO] [stdout]     |
[INFO] [stdout]  85 |         R: FnMut() -> O,
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] note: `tensor_math::math::hessenberg::<impl tensor_math::definitions::matrix::Matrix<f64>>::lower_hessenberg` takes ownership of the receiver `self`, which moves `a`
[INFO] [stdout]    --> src/math/hessenberg.rs:197:29
[INFO] [stdout]     |
[INFO] [stdout] 197 |     pub fn lower_hessenberg(self) -> Result<(Matrix<f64>, Matrix<f64>), TensorErrors> {
[INFO] [stdout]     |                             ^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout]  56 |                 let r = a.clone().lower_hessenberg().expect("hessenberg must succeed");
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `c`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/math/hessenberg.rs:75:24
[INFO] [stdout]     |
[INFO] [stdout]  69 |         let c = a + b * Complex64::I;
[INFO] [stdout]     |             -   -------------------- move occurs because `c` has type `Matrix<num::Complex<f64>>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout]  74 |         group.bench_with_input(BenchmarkId::new("c64", &label), &label, |bench, _| {
[INFO] [stdout]     |                                                                         ---------- captured by this `FnMut` closure
[INFO] [stdout]  75 |             bench.iter(|| {
[INFO] [stdout]     |                        ^^ `c` is moved here
[INFO] [stdout]  76 |                 let r = c.lower_hessenberg().expect("hessenberg must succeed");
[INFO] [stdout]     |                         - variable moved due to use in closure
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/benchmark_group.rs:265:12
[INFO] [stdout]     |
[INFO] [stdout] 265 |         F: FnMut(&mut Bencher<'_, M>, &I),
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout]  76 |                 let r = c.clone().lower_hessenberg().expect("hessenberg must succeed");
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `a`, a captured variable in an `FnMut` closure
[INFO] [stdout]   --> benches/math/transformation_rank.rs:37:25
[INFO] [stdout]    |
[INFO] [stdout] 21 |         let a = Matrix::<f64>::rand(rows, cols);
[INFO] [stdout]    |             -   ------------------------------- move occurs because `a` has type `Matrix<f64>`, which does not implement the `Copy` trait
[INFO] [stdout]    |             |
[INFO] [stdout]    |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 36 |             bench.iter(|| {
[INFO] [stdout]    |                        -- captured by this `FnMut` closure
[INFO] [stdout] 37 |                 let r = a.transformation_rank();
[INFO] [stdout]    |                         ^ --------------------- `a` moved due to this method call
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         `a` is moved here
[INFO] [stdout]    |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/bencher.rs:85:12
[INFO] [stdout]    |
[INFO] [stdout] 85 |         R: FnMut() -> O,
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] note: `tensor_math::math::transformation_rank::<impl tensor_math::definitions::matrix::Matrix<f64>>::transformation_rank` takes ownership of the receiver `self`, which moves `a`
[INFO] [stdout]   --> src/math/transformation_rank.rs:6:32
[INFO] [stdout]    |
[INFO] [stdout]  6 |     pub fn transformation_rank(self) -> usize {
[INFO] [stdout]    |                                ^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]    |
[INFO] [stdout] 37 |                 let r = a.clone().transformation_rank();
[INFO] [stdout]    |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> benches/utilities/constructors.rs:23:82
[INFO] [stdout]    |
[INFO] [stdout] 23 |                     let r = tensor_math::definitions::tensor::Tensor::from_value(&shape, 1.0);
[INFO] [stdout]    |                             ---------------------------------------------------- ^^^^^^ expected `Shape`, found `&Shape`
[INFO] [stdout]    |                             |
[INFO] [stdout]    |                             arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/utilities/tensor.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub fn from_value(shape: Shape, value: T) -> Self
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]    |
[INFO] [stdout] 23 -                     let r = tensor_math::definitions::tensor::Tensor::from_value(&shape, 1.0);
[INFO] [stdout] 23 +                     let r = tensor_math::definitions::tensor::Tensor::from_value(shape, 1.0);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `c`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/math/hessenberg.rs:76:25
[INFO] [stdout]     |
[INFO] [stdout]  69 |         let c = a + b * Complex64::I;
[INFO] [stdout]     |             -   -------------------- move occurs because `c` has type `Matrix<num::Complex<f64>>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout]  75 |             bench.iter(|| {
[INFO] [stdout]     |                        -- captured by this `FnMut` closure
[INFO] [stdout]  76 |                 let r = c.lower_hessenberg().expect("hessenberg must succeed");
[INFO] [stdout]     |                         ^ ------------------ `c` moved due to this method call
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `c` is moved here
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/bencher.rs:85:12
[INFO] [stdout]     |
[INFO] [stdout]  85 |         R: FnMut() -> O,
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] note: `tensor_math::math::hessenberg::<impl tensor_math::definitions::matrix::Matrix<num::Complex<f64>>>::lower_hessenberg` takes ownership of the receiver `self`, which moves `c`
[INFO] [stdout]    --> src/math/hessenberg.rs:304:29
[INFO] [stdout]     |
[INFO] [stdout] 304 |     pub fn lower_hessenberg(self) -> Result<(Matrix<Complex64>, Matrix<Complex64>), TensorErrors> {
[INFO] [stdout]     |                             ^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout]  76 |                 let r = c.clone().lower_hessenberg().expect("hessenberg must succeed");
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `a`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/math/hessenberg.rs:93:24
[INFO] [stdout]     |
[INFO] [stdout]  87 |         let a = Matrix::<f64>::rand(ord, ord);
[INFO] [stdout]     |             -   ----------------------------- move occurs because `a` has type `Matrix<f64>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout]  92 |         group.bench_with_input(BenchmarkId::new("c64", &label), &label, |bench, _| {
[INFO] [stdout]     |                                                                         ---------- captured by this `FnMut` closure
[INFO] [stdout]  93 |             bench.iter(|| {
[INFO] [stdout]     |                        ^^ `a` is moved here
[INFO] [stdout]  94 |                 let r = a.upper_hessenberg_h().expect("hessenberg must succeed");
[INFO] [stdout]     |                         - variable moved due to use in closure
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/benchmark_group.rs:265:12
[INFO] [stdout]     |
[INFO] [stdout] 265 |         F: FnMut(&mut Bencher<'_, M>, &I),
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout]  94 |                 let r = a.clone().upper_hessenberg_h().expect("hessenberg must succeed");
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `a`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/math/hessenberg.rs:94:25
[INFO] [stdout]     |
[INFO] [stdout]  87 |         let a = Matrix::<f64>::rand(ord, ord);
[INFO] [stdout]     |             -   ----------------------------- move occurs because `a` has type `Matrix<f64>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout]  93 |             bench.iter(|| {
[INFO] [stdout]     |                        -- captured by this `FnMut` closure
[INFO] [stdout]  94 |                 let r = a.upper_hessenberg_h().expect("hessenberg must succeed");
[INFO] [stdout]     |                         ^ -------------------- `a` moved due to this method call
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `a` is moved here
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/bencher.rs:85:12
[INFO] [stdout]     |
[INFO] [stdout]  85 |         R: FnMut() -> O,
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] note: `tensor_math::math::hessenberg::<impl tensor_math::definitions::matrix::Matrix<f64>>::upper_hessenberg_h` takes ownership of the receiver `self`, which moves `a`
[INFO] [stdout]    --> src/math/hessenberg.rs:133:9
[INFO] [stdout]     |
[INFO] [stdout] 133 |         self,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout]  94 |                 let r = a.clone().upper_hessenberg_h().expect("hessenberg must succeed");
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> benches/utilities/constructors.rs:33:89
[INFO] [stdout]    |
[INFO] [stdout] 33 |                     let r = tensor_math::definitions::tensor::Tensor::<f64>::from_shape(&shape);
[INFO] [stdout]    |                             ----------------------------------------------------------- ^^^^^^ expected `Shape`, found `&Shape`
[INFO] [stdout]    |                             |
[INFO] [stdout]    |                             arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/utilities/tensor.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn from_shape(shape: Shape) -> Tensor<T>
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]    |
[INFO] [stdout] 33 -                     let r = tensor_math::definitions::tensor::Tensor::<f64>::from_shape(&shape);
[INFO] [stdout] 33 +                     let r = tensor_math::definitions::tensor::Tensor::<f64>::from_shape(shape);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> benches/math/fft.rs:22:33
[INFO] [stdout]    |
[INFO] [stdout] 22 |     let a = Tensor::<f64>::rand(s);
[INFO] [stdout]    |             ------------------- ^ expected `Shape`, found `&Shape`
[INFO] [stdout]    |             |
[INFO] [stdout]    |             arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/utilities/tensor.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn rand(shape: Shape) -> Tensor<T>
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] help: consider using clone here
[INFO] [stdout]    |
[INFO] [stdout] 22 |     let a = Tensor::<f64>::rand(s.clone());
[INFO] [stdout]    |                                  ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `c`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/math/transformation_rank.rs:75:24
[INFO] [stdout]     |
[INFO] [stdout]  60 |         let c = a + b * Complex64::I;
[INFO] [stdout]     |             -   -------------------- move occurs because `c` has type `Matrix<num::Complex<f64>>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout]  74 |         group.bench_with_input(BenchmarkId::new("c64", &label), &label, |bench, _| {
[INFO] [stdout]     |                                                                         ---------- captured by this `FnMut` closure
[INFO] [stdout]  75 |             bench.iter(|| {
[INFO] [stdout]     |                        ^^ `c` is moved here
[INFO] [stdout]  76 |                 let r = c.transformation_rank();
[INFO] [stdout]     |                         - variable moved due to use in closure
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/benchmark_group.rs:265:12
[INFO] [stdout]     |
[INFO] [stdout] 265 |         F: FnMut(&mut Bencher<'_, M>, &I),
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout]  76 |                 let r = c.clone().transformation_rank();
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `c`, a captured variable in an `FnMut` closure
[INFO] [stdout]   --> benches/math/transformation_rank.rs:76:25
[INFO] [stdout]    |
[INFO] [stdout] 60 |         let c = a + b * Complex64::I;
[INFO] [stdout]    |             -   -------------------- move occurs because `c` has type `Matrix<num::Complex<f64>>`, which does not implement the `Copy` trait
[INFO] [stdout]    |             |
[INFO] [stdout]    |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 75 |             bench.iter(|| {
[INFO] [stdout]    |                        -- captured by this `FnMut` closure
[INFO] [stdout] 76 |                 let r = c.transformation_rank();
[INFO] [stdout]    |                         ^ --------------------- `c` moved due to this method call
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         `c` is moved here
[INFO] [stdout]    |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/bencher.rs:85:12
[INFO] [stdout]    |
[INFO] [stdout] 85 |         R: FnMut() -> O,
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] note: `tensor_math::math::transformation_rank::<impl tensor_math::definitions::matrix::Matrix<num::Complex<f64>>>::transformation_rank` takes ownership of the receiver `self`, which moves `c`
[INFO] [stdout]   --> src/math/transformation_rank.rs:13:32
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub fn transformation_rank(self) -> usize {
[INFO] [stdout]    |                                ^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]    |
[INFO] [stdout] 76 |                 let r = c.clone().transformation_rank();
[INFO] [stdout]    |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `c`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/math/hessenberg.rs:113:24
[INFO] [stdout]     |
[INFO] [stdout] 107 |         let c = a + b * Complex64::I;
[INFO] [stdout]     |             -   -------------------- move occurs because `c` has type `Matrix<num::Complex<f64>>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 112 |         group.bench_with_input(BenchmarkId::new("c64", &label), &label, |bench, _| {
[INFO] [stdout]     |                                                                         ---------- captured by this `FnMut` closure
[INFO] [stdout] 113 |             bench.iter(|| {
[INFO] [stdout]     |                        ^^ `c` is moved here
[INFO] [stdout] 114 |                 let r = c.upper_hessenberg_h().expect("hessenberg must succeed");
[INFO] [stdout]     |                         - variable moved due to use in closure
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/benchmark_group.rs:265:12
[INFO] [stdout]     |
[INFO] [stdout] 265 |         F: FnMut(&mut Bencher<'_, M>, &I),
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 114 |                 let r = c.clone().upper_hessenberg_h().expect("hessenberg must succeed");
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `c`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/math/hessenberg.rs:114:25
[INFO] [stdout]     |
[INFO] [stdout] 107 |         let c = a + b * Complex64::I;
[INFO] [stdout]     |             -   -------------------- move occurs because `c` has type `Matrix<num::Complex<f64>>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 113 |             bench.iter(|| {
[INFO] [stdout]     |                        -- captured by this `FnMut` closure
[INFO] [stdout] 114 |                 let r = c.upper_hessenberg_h().expect("hessenberg must succeed");
[INFO] [stdout]     |                         ^ -------------------- `c` moved due to this method call
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `c` is moved here
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/bencher.rs:85:12
[INFO] [stdout]     |
[INFO] [stdout]  85 |         R: FnMut() -> O,
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] note: `tensor_math::math::hessenberg::<impl tensor_math::definitions::matrix::Matrix<num::Complex<f64>>>::upper_hessenberg_h` takes ownership of the receiver `self`, which moves `c`
[INFO] [stdout]    --> src/math/hessenberg.rs:233:9
[INFO] [stdout]     |
[INFO] [stdout] 233 |         self,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 114 |                 let r = c.clone().upper_hessenberg_h().expect("hessenberg must succeed");
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `a`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/math/hessenberg.rs:131:24
[INFO] [stdout]     |
[INFO] [stdout] 125 |         let a = Matrix::<f64>::rand(ord, ord);
[INFO] [stdout]     |             -   ----------------------------- move occurs because `a` has type `Matrix<f64>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 130 |         group.bench_with_input(BenchmarkId::new("f64", &label), &label, |bench, _| {
[INFO] [stdout]     |                                                                         ---------- captured by this `FnMut` closure
[INFO] [stdout] 131 |             bench.iter(|| {
[INFO] [stdout]     |                        ^^ `a` is moved here
[INFO] [stdout] 132 |                 let r = a.lower_hessenberg_h().expect("hessenberg must succeed");
[INFO] [stdout]     |                         - variable moved due to use in closure
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/benchmark_group.rs:265:12
[INFO] [stdout]     |
[INFO] [stdout] 265 |         F: FnMut(&mut Bencher<'_, M>, &I),
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 132 |                 let r = a.clone().lower_hessenberg_h().expect("hessenberg must succeed");
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `a`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/math/hessenberg.rs:132:25
[INFO] [stdout]     |
[INFO] [stdout] 125 |         let a = Matrix::<f64>::rand(ord, ord);
[INFO] [stdout]     |             -   ----------------------------- move occurs because `a` has type `Matrix<f64>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 131 |             bench.iter(|| {
[INFO] [stdout]     |                        -- captured by this `FnMut` closure
[INFO] [stdout] 132 |                 let r = a.lower_hessenberg_h().expect("hessenberg must succeed");
[INFO] [stdout]     |                         ^ -------------------- `a` moved due to this method call
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `a` is moved here
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/bencher.rs:85:12
[INFO] [stdout]     |
[INFO] [stdout]  85 |         R: FnMut() -> O,
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] note: `tensor_math::math::hessenberg::<impl tensor_math::definitions::matrix::Matrix<f64>>::lower_hessenberg_h` takes ownership of the receiver `self`, which moves `a`
[INFO] [stdout]    --> src/math/hessenberg.rs:209:9
[INFO] [stdout]     |
[INFO] [stdout] 209 |         self,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 132 |                 let r = a.clone().lower_hessenberg_h().expect("hessenberg must succeed");
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> benches/math/fft.rs:23:33
[INFO] [stdout]    |
[INFO] [stdout] 23 |     let b = Tensor::<f64>::rand(s);
[INFO] [stdout]    |             ------------------- ^ expected `Shape`, found `&Shape`
[INFO] [stdout]    |             |
[INFO] [stdout]    |             arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/utilities/tensor.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn rand(shape: Shape) -> Tensor<T>
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] help: consider using clone here
[INFO] [stdout]    |
[INFO] [stdout] 23 |     let b = Tensor::<f64>::rand(s.clone());
[INFO] [stdout]    |                                  ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> benches/utilities/constructors.rs:40:80
[INFO] [stdout]    |
[INFO] [stdout] 40 |                 let r = tensor_math::definitions::tensor::Tensor::<f64>::zeros(&shape);
[INFO] [stdout]    |                         ------------------------------------------------------ ^^^^^^ expected `Shape`, found `&Shape`
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/utilities/tensor.rs:75:12
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub fn zeros(shape: Shape) -> Tensor<T>
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]    |
[INFO] [stdout] 40 -                 let r = tensor_math::definitions::tensor::Tensor::<f64>::zeros(&shape);
[INFO] [stdout] 40 +                 let r = tensor_math::definitions::tensor::Tensor::<f64>::zeros(shape);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> benches/utilities/constructors.rs:46:79
[INFO] [stdout]    |
[INFO] [stdout] 46 |                 let r = tensor_math::definitions::tensor::Tensor::<f64>::rand(&shape);
[INFO] [stdout]    |                         ----------------------------------------------------- ^^^^^^ expected `Shape`, found `&Shape`
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/utilities/tensor.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn rand(shape: Shape) -> Tensor<T>
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]    |
[INFO] [stdout] 46 -                 let r = tensor_math::definitions::tensor::Tensor::<f64>::rand(&shape);
[INFO] [stdout] 46 +                 let r = tensor_math::definitions::tensor::Tensor::<f64>::rand(shape);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> benches/math/sum.rs:30:34
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let re = Tensor::<f64>::rand(shape);
[INFO] [stdout]    |              ------------------- ^^^^^ expected `Shape`, found `&Shape`
[INFO] [stdout]    |              |
[INFO] [stdout]    |              arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/utilities/tensor.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn rand(shape: Shape) -> Tensor<T>
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] help: consider using clone here
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let re = Tensor::<f64>::rand(shape.clone());
[INFO] [stdout]    |                                       ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `c`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/math/hessenberg.rs:151:24
[INFO] [stdout]     |
[INFO] [stdout] 145 |         let c = a + b * Complex64::I;
[INFO] [stdout]     |             -   -------------------- move occurs because `c` has type `Matrix<num::Complex<f64>>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 150 |         group.bench_with_input(BenchmarkId::new("c64", &label), &label, |bench, _| {
[INFO] [stdout]     |                                                                         ---------- captured by this `FnMut` closure
[INFO] [stdout] 151 |             bench.iter(|| {
[INFO] [stdout]     |                        ^^ `c` is moved here
[INFO] [stdout] 152 |                 let r = c.lower_hessenberg_h().expect("hessenberg must succeed");
[INFO] [stdout]     |                         - variable moved due to use in closure
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/benchmark_group.rs:265:12
[INFO] [stdout]     |
[INFO] [stdout] 265 |         F: FnMut(&mut Bencher<'_, M>, &I),
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 152 |                 let r = c.clone().lower_hessenberg_h().expect("hessenberg must succeed");
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `c`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/math/hessenberg.rs:152:25
[INFO] [stdout]     |
[INFO] [stdout] 145 |         let c = a + b * Complex64::I;
[INFO] [stdout]     |             -   -------------------- move occurs because `c` has type `Matrix<num::Complex<f64>>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 151 |             bench.iter(|| {
[INFO] [stdout]     |                        -- captured by this `FnMut` closure
[INFO] [stdout] 152 |                 let r = c.lower_hessenberg_h().expect("hessenberg must succeed");
[INFO] [stdout]     |                         ^ -------------------- `c` moved due to this method call
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `c` is moved here
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/bencher.rs:85:12
[INFO] [stdout]     |
[INFO] [stdout]  85 |         R: FnMut() -> O,
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] note: `tensor_math::math::hessenberg::<impl tensor_math::definitions::matrix::Matrix<num::Complex<f64>>>::lower_hessenberg_h` takes ownership of the receiver `self`, which moves `c`
[INFO] [stdout]    --> src/math/hessenberg.rs:316:9
[INFO] [stdout]     |
[INFO] [stdout] 316 |         self,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 152 |                 let r = c.clone().lower_hessenberg_h().expect("hessenberg must succeed");
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> benches/math/sum.rs:31:34
[INFO] [stdout]    |
[INFO] [stdout] 31 |     let im = Tensor::<f64>::rand(shape);
[INFO] [stdout]    |              ------------------- ^^^^^ expected `Shape`, found `&Shape`
[INFO] [stdout]    |              |
[INFO] [stdout]    |              arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/utilities/tensor.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn rand(shape: Shape) -> Tensor<T>
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] help: consider using clone here
[INFO] [stdout]    |
[INFO] [stdout] 31 |     let im = Tensor::<f64>::rand(shape.clone());
[INFO] [stdout]    |                                       ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> benches/utilities/transpose.rs:16:36
[INFO] [stdout]    |
[INFO] [stdout] 16 |         let a = Tensor::from_value(&shape![n], 1.0);
[INFO] [stdout]    |                 ------------------ ^^^^^^^^^^ expected `Shape`, found `&Shape`
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/utilities/tensor.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub fn from_value(shape: Shape, value: T) -> Self
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]    |
[INFO] [stdout] 16 -         let a = Tensor::from_value(&shape![n], 1.0);
[INFO] [stdout] 16 +         let a = Tensor::from_value(shape![n], 1.0);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> benches/math/sum.rs:44:37
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let a = Tensor::<f64>::rand(shape);
[INFO] [stdout]    |                 ------------------- ^^^^^ expected `Shape`, found `&Shape`
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/utilities/tensor.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn rand(shape: Shape) -> Tensor<T>
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] help: consider using clone here
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let a = Tensor::<f64>::rand(shape.clone());
[INFO] [stdout]    |                                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0507`.
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> benches/math/fft.rs:48:37
[INFO] [stdout]    |
[INFO] [stdout] 48 |         let t = Tensor::<f64>::rand(s);
[INFO] [stdout]    |                 ------------------- ^ expected `Shape`, found `&Shape`
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/utilities/tensor.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn rand(shape: Shape) -> Tensor<T>
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] help: consider using clone here
[INFO] [stdout]    |
[INFO] [stdout] 48 |         let t = Tensor::<f64>::rand(s.clone());
[INFO] [stdout]    |                                      ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> benches/utilities/reshape_flatten.rs:15:36
[INFO] [stdout]    |
[INFO] [stdout] 15 |         let a = Tensor::from_value(&shape![n], 1.0);
[INFO] [stdout]    |                 ------------------ ^^^^^^^^^^ expected `Shape`, found `&Shape`
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/utilities/tensor.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub fn from_value(shape: Shape, value: T) -> Self
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]    |
[INFO] [stdout] 15 -         let a = Tensor::from_value(&shape![n], 1.0);
[INFO] [stdout] 15 +         let a = Tensor::from_value(shape![n], 1.0);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `tensor_math` (bench "transformation_rank") due to 4 previous errors
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> benches/math/sum.rs:73:37
[INFO] [stdout]    |
[INFO] [stdout] 73 |         let a = Tensor::<f64>::rand(shape);
[INFO] [stdout]    |                 ------------------- ^^^^^ expected `Shape`, found `&Shape`
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/utilities/tensor.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn rand(shape: Shape) -> Tensor<T>
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] help: consider using clone here
[INFO] [stdout]    |
[INFO] [stdout] 73 |         let a = Tensor::<f64>::rand(shape.clone());
[INFO] [stdout]    |                                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0507`.
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> benches/math/fft.rs:80:37
[INFO] [stdout]    |
[INFO] [stdout] 80 |         let t = Tensor::<f64>::rand(s);
[INFO] [stdout]    |                 ------------------- ^ expected `Shape`, found `&Shape`
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/utilities/tensor.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn rand(shape: Shape) -> Tensor<T>
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] help: consider using clone here
[INFO] [stdout]    |
[INFO] [stdout] 80 |         let t = Tensor::<f64>::rand(s.clone());
[INFO] [stdout]    |                                      ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> benches/utilities/transpose.rs:45:36
[INFO] [stdout]    |
[INFO] [stdout] 45 |         let a = Tensor::from_value(&shape![rows, cols], 1.0);
[INFO] [stdout]    |                 ------------------ ^^^^^^^^^^^^^^^^^^^ expected `Shape`, found `&Shape`
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/utilities/tensor.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub fn from_value(shape: Shape, value: T) -> Self
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]    |
[INFO] [stdout] 45 -         let a = Tensor::from_value(&shape![rows, cols], 1.0);
[INFO] [stdout] 45 +         let a = Tensor::from_value(shape![rows, cols], 1.0);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> benches/utilities/clip.rs:19:36
[INFO] [stdout]    |
[INFO] [stdout] 19 |         let a = Tensor::from_value(&shape![rows, cols], 1.0);
[INFO] [stdout]    |                 ------------------ ^^^^^^^^^^^^^^^^^^^ expected `Shape`, found `&Shape`
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/utilities/tensor.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub fn from_value(shape: Shape, value: T) -> Self
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]    |
[INFO] [stdout] 19 -         let a = Tensor::from_value(&shape![rows, cols], 1.0);
[INFO] [stdout] 19 +         let a = Tensor::from_value(shape![rows, cols], 1.0);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> benches/utilities/transpose.rs:76:36
[INFO] [stdout]    |
[INFO] [stdout] 76 |         let a = Tensor::from_value(&shape![d0, d1, d2], 1.0);
[INFO] [stdout]    |                 ------------------ ^^^^^^^^^^^^^^^^^^^ expected `Shape`, found `&Shape`
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/utilities/tensor.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub fn from_value(shape: Shape, value: T) -> Self
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]    |
[INFO] [stdout] 76 -         let a = Tensor::from_value(&shape![d0, d1, d2], 1.0);
[INFO] [stdout] 76 +         let a = Tensor::from_value(shape![d0, d1, d2], 1.0);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `tensor_math` (bench "hessenberg") due to 16 previous errors
[INFO] [stdout] For more information about this error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> benches/utilities/pool.rs:18:36
[INFO] [stdout]    |
[INFO] [stdout] 18 |         let a = Tensor::from_value(&shape![rows, cols], 1.0);
[INFO] [stdout]    |                 ------------------ ^^^^^^^^^^^^^^^^^^^ expected `Shape`, found `&Shape`
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/utilities/tensor.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub fn from_value(shape: Shape, value: T) -> Self
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]    |
[INFO] [stdout] 18 -         let a = Tensor::from_value(&shape![rows, cols], 1.0);
[INFO] [stdout] 18 +         let a = Tensor::from_value(shape![rows, cols], 1.0);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/fft.rs:116:37
[INFO] [stdout]     |
[INFO] [stdout] 116 |         let t = Tensor::<f64>::rand(s);
[INFO] [stdout]     |                 ------------------- ^ expected `Shape`, found `&Shape`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/utilities/tensor.rs:38:12
[INFO] [stdout]     |
[INFO] [stdout]  38 |     pub fn rand(shape: Shape) -> Tensor<T>
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] help: consider using clone here
[INFO] [stdout]     |
[INFO] [stdout] 116 |         let t = Tensor::<f64>::rand(s.clone());
[INFO] [stdout]     |                                      ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> benches/utilities/iter.rs:47:36
[INFO] [stdout]    |
[INFO] [stdout] 47 |         let a = Tensor::from_value(&shape![rows, cols], 1.0);
[INFO] [stdout]    |                 ------------------ ^^^^^^^^^^^^^^^^^^^ expected `Shape`, found `&Shape`
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/utilities/tensor.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub fn from_value(shape: Shape, value: T) -> Self
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]    |
[INFO] [stdout] 47 -         let a = Tensor::from_value(&shape![rows, cols], 1.0);
[INFO] [stdout] 47 +         let a = Tensor::from_value(shape![rows, cols], 1.0);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `tensor_math` (bench "slice") due to 4 previous errors
[INFO] [stdout] error[E0271]: expected `impl Iterator<Item = (Vec<usize>, &{float})>` to be an iterator that yields `(Vec<usize>, f64)`, but it yields `(Vec<usize>, &{float})`
[INFO] [stdout]   --> benches/utilities/iter.rs:55:36
[INFO] [stdout]    |
[INFO] [stdout] 55 |                 let r = drain_iter(a.enumerated_iter());
[INFO] [stdout]    |                         ---------- ^^^^^^^^^^^^^^^^^^^ expected `(Vec<usize>, f64)`, found `(Vec<usize>, &{float})`
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         required by a bound introduced by this call
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected tuple `(Vec<_>, f64)`
[INFO] [stdout]               found tuple `(Vec<_>, &{float})`
[INFO] [stdout] note: required by a bound in `drain_iter`
[INFO] [stdout]   --> benches/utilities/iter.rs:14:17
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn drain_iter<I>(it: I) -> u64
[INFO] [stdout] 13 | where
[INFO] [stdout] 14 |     I: Iterator<Item = (Vec<usize>, f64)>,
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `drain_iter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `tensor_math` (bench "map") due to 1 previous error
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> benches/math/corr_conv.rs:34:34
[INFO] [stdout]    |
[INFO] [stdout] 34 |     let re = Tensor::<f64>::rand(shape);
[INFO] [stdout]    |              ------------------- ^^^^^ expected `Shape`, found `&Shape`
[INFO] [stdout]    |              |
[INFO] [stdout]    |              arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/utilities/tensor.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn rand(shape: Shape) -> Tensor<T>
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] help: consider using clone here
[INFO] [stdout]    |
[INFO] [stdout] 34 |     let re = Tensor::<f64>::rand(shape.clone());
[INFO] [stdout]    |                                       ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> benches/math/corr_conv.rs:35:34
[INFO] [stdout]    |
[INFO] [stdout] 35 |     let im = Tensor::<f64>::rand(shape);
[INFO] [stdout]    |              ------------------- ^^^^^ expected `Shape`, found `&Shape`
[INFO] [stdout]    |              |
[INFO] [stdout]    |              arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/utilities/tensor.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn rand(shape: Shape) -> Tensor<T>
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] help: consider using clone here
[INFO] [stdout]    |
[INFO] [stdout] 35 |     let im = Tensor::<f64>::rand(shape.clone());
[INFO] [stdout]    |                                       ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/fft.rs:142:37
[INFO] [stdout]     |
[INFO] [stdout] 142 |         let t = Tensor::<f64>::rand(s);
[INFO] [stdout]     |                 ------------------- ^ expected `Shape`, found `&Shape`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/utilities/tensor.rs:38:12
[INFO] [stdout]     |
[INFO] [stdout]  38 |     pub fn rand(shape: Shape) -> Tensor<T>
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] help: consider using clone here
[INFO] [stdout]     |
[INFO] [stdout] 142 |         let t = Tensor::<f64>::rand(s.clone());
[INFO] [stdout]     |                                      ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/utilities/reshape_flatten.rs:24:43
[INFO] [stdout]     |
[INFO] [stdout]  24 |                 let r = a.clone().reshape(&new_shape).expect("reshape must succeed");
[INFO] [stdout]     |                                   ------- ^^^^^^^^^^ expected `Shape`, found `&Shape`
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/utilities/tensor.rs:103:12
[INFO] [stdout]     |
[INFO] [stdout] 103 |     pub fn reshape(self, new_shape: Shape) -> Result<Tensor<T>, TensorErrors> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout]  24 -                 let r = a.clone().reshape(&new_shape).expect("reshape must succeed");
[INFO] [stdout]  24 +                 let r = a.clone().reshape(new_shape).expect("reshape must succeed");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `tensor_math` (bench "constructors") due to 4 previous errors
[INFO] [stdout] error[E0507]: cannot move out of `a`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/utilities/clip.rs:50:24
[INFO] [stdout]     |
[INFO] [stdout]  44 |         let a = Matrix::from_value(rows, cols, 1.0);
[INFO] [stdout]     |             -   ----------------------------------- move occurs because `a` has type `Matrix<f64>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout]  49 |         group.bench_with_input(BenchmarkId::new("st", &label), &label, |bench, _| {
[INFO] [stdout]     |                                                                        ---------- captured by this `FnMut` closure
[INFO] [stdout]  50 |             bench.iter(|| {
[INFO] [stdout]     |                        ^^ `a` is moved here
[INFO] [stdout]  51 |                 let r = a.clip(-0.5, 0.5);
[INFO] [stdout]     |                         - variable moved due to use in closure
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/benchmark_group.rs:265:12
[INFO] [stdout]     |
[INFO] [stdout] 265 |         F: FnMut(&mut Bencher<'_, M>, &I),
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout]  51 |                 let r = a.clone().clip(-0.5, 0.5);
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `a`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/utilities/clip.rs:51:25
[INFO] [stdout]     |
[INFO] [stdout]  44 |         let a = Matrix::from_value(rows, cols, 1.0);
[INFO] [stdout]     |             -   ----------------------------------- move occurs because `a` has type `Matrix<f64>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout]  50 |             bench.iter(|| {
[INFO] [stdout]     |                        -- captured by this `FnMut` closure
[INFO] [stdout]  51 |                 let r = a.clip(-0.5, 0.5);
[INFO] [stdout]     |                         ^ --------------- `a` moved due to this method call
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `a` is moved here
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/bencher.rs:85:12
[INFO] [stdout]     |
[INFO] [stdout]  85 |         R: FnMut() -> O,
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] note: `tensor_math::utilities::matrix::<impl tensor_math::definitions::matrix::Matrix<T>>::clip` takes ownership of the receiver `self`, which moves `a`
[INFO] [stdout]    --> src/utilities/matrix.rs:900:17
[INFO] [stdout]     |
[INFO] [stdout] 900 |     pub fn clip(self, min: T, max: T) -> Matrix<T>
[INFO] [stdout]     |                 ^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout]  51 |                 let r = a.clone().clip(-0.5, 0.5);
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0382]: use of moved value: `a`
[INFO] [stdout]   --> benches/utilities/clip.rs:55:72
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let a = Matrix::from_value(rows, cols, 1.0);
[INFO] [stdout]    |             - move occurs because `a` has type `Matrix<f64>`, which does not implement the `Copy` trait
[INFO] [stdout] ...
[INFO] [stdout] 49 |         group.bench_with_input(BenchmarkId::new("st", &label), &label, |bench, _| {
[INFO] [stdout]    |                                                                        ---------- value moved into closure here
[INFO] [stdout] 50 |             bench.iter(|| {
[INFO] [stdout] 51 |                 let r = a.clip(-0.5, 0.5);
[INFO] [stdout]    |                         - variable moved due to use in closure
[INFO] [stdout] ...
[INFO] [stdout] 55 |         group.bench_with_input(BenchmarkId::new("mt", &label), &label, |bench, _| {
[INFO] [stdout]    |                                                                        ^^^^^^^^^^ value used here after move
[INFO] [stdout] 56 |             bench.iter(|| {
[INFO] [stdout] 57 |                 let r = a.par_clip(-0.5, 0.5);
[INFO] [stdout]    |                         - use occurs due to use in closure
[INFO] [stdout]    |
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]    |
[INFO] [stdout] 51 |                 let r = a.clone().clip(-0.5, 0.5);
[INFO] [stdout]    |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> benches/utilities/reshape_flatten.rs:30:37
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let a2 = Tensor::from_value(&shape![side, n / side], 1.0);
[INFO] [stdout]    |                  ------------------ ^^^^^^^^^^^^^^^^^^^^^^^ expected `Shape`, found `&Shape`
[INFO] [stdout]    |                  |
[INFO] [stdout]    |                  arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/utilities/tensor.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub fn from_value(shape: Shape, value: T) -> Self
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]    |
[INFO] [stdout] 30 -         let a2 = Tensor::from_value(&shape![side, n / side], 1.0);
[INFO] [stdout] 30 +         let a2 = Tensor::from_value(shape![side, n / side], 1.0);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `a`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/utilities/clip.rs:56:24
[INFO] [stdout]     |
[INFO] [stdout]  44 |         let a = Matrix::from_value(rows, cols, 1.0);
[INFO] [stdout]     |             -   ----------------------------------- move occurs because `a` has type `Matrix<f64>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout]  55 |         group.bench_with_input(BenchmarkId::new("mt", &label), &label, |bench, _| {
[INFO] [stdout]     |                                                                        ---------- captured by this `FnMut` closure
[INFO] [stdout]  56 |             bench.iter(|| {
[INFO] [stdout]     |                        ^^ `a` is moved here
[INFO] [stdout]  57 |                 let r = a.par_clip(-0.5, 0.5);
[INFO] [stdout]     |                         - variable moved due to use in closure
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/benchmark_group.rs:265:12
[INFO] [stdout]     |
[INFO] [stdout] 265 |         F: FnMut(&mut Bencher<'_, M>, &I),
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout]  57 |                 let r = a.clone().par_clip(-0.5, 0.5);
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `a`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/utilities/clip.rs:57:25
[INFO] [stdout]     |
[INFO] [stdout]  44 |         let a = Matrix::from_value(rows, cols, 1.0);
[INFO] [stdout]     |             -   ----------------------------------- move occurs because `a` has type `Matrix<f64>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout]  56 |             bench.iter(|| {
[INFO] [stdout]     |                        -- captured by this `FnMut` closure
[INFO] [stdout]  57 |                 let r = a.par_clip(-0.5, 0.5);
[INFO] [stdout]     |                         ^ ------------------- `a` moved due to this method call
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `a` is moved here
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/bencher.rs:85:12
[INFO] [stdout]     |
[INFO] [stdout]  85 |         R: FnMut() -> O,
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] note: `tensor_math::utilities::matrix::<impl tensor_math::definitions::matrix::Matrix<T>>::par_clip` takes ownership of the receiver `self`, which moves `a`
[INFO] [stdout]    --> src/utilities/matrix.rs:916:21
[INFO] [stdout]     |
[INFO] [stdout] 916 |     pub fn par_clip(self, min: T, max: T) -> Matrix<T>
[INFO] [stdout]     |                     ^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout]  57 |                 let r = a.clone().par_clip(-0.5, 0.5);
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/fft.rs:173:37
[INFO] [stdout]     |
[INFO] [stdout] 173 |         let t = Tensor::<f64>::rand(s);
[INFO] [stdout]     |                 ------------------- ^ expected `Shape`, found `&Shape`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/utilities/tensor.rs:38:12
[INFO] [stdout]     |
[INFO] [stdout]  38 |     pub fn rand(shape: Shape) -> Tensor<T>
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] help: consider using clone here
[INFO] [stdout]     |
[INFO] [stdout] 173 |         let t = Tensor::<f64>::rand(s.clone());
[INFO] [stdout]     |                                      ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0271]: expected `Map<impl Iterator<Item = ((usize, usize), &{float})>, {closure@iter.rs:122:60}>` to be an iterator that yields `(Vec<usize>, f64)`, but it yields `(Vec<usize>, &{float})`
[INFO] [stdout]    --> benches/utilities/iter.rs:122:36
[INFO] [stdout]     |
[INFO] [stdout] 122 |                 let r = drain_iter(a.enumerated_iter().map(|((r, c), v)| (vec![r, c], v)));
[INFO] [stdout]     |                         ---------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `(Vec<usize>, f64)`, found `(Vec<usize>, &{float})`
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected tuple `(Vec<_>, f64)`
[INFO] [stdout]                found tuple `(Vec<_>, &{float})`
[INFO] [stdout] note: required by a bound in `drain_iter`
[INFO] [stdout]    --> benches/utilities/iter.rs:14:17
[INFO] [stdout]     |
[INFO] [stdout]  12 | pub fn drain_iter<I>(it: I) -> u64
[INFO] [stdout]  13 | where
[INFO] [stdout]  14 |     I: Iterator<Item = (Vec<usize>, f64)>,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `drain_iter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/fft.rs:209:37
[INFO] [stdout]     |
[INFO] [stdout] 209 |         let t = Tensor::<f64>::rand(s);
[INFO] [stdout]     |                 ------------------- ^ expected `Shape`, found `&Shape`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/utilities/tensor.rs:38:12
[INFO] [stdout]     |
[INFO] [stdout]  38 |     pub fn rand(shape: Shape) -> Tensor<T>
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] help: consider using clone here
[INFO] [stdout]     |
[INFO] [stdout] 209 |         let t = Tensor::<f64>::rand(s.clone());
[INFO] [stdout]     |                                      ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> benches/math/contract_mul.rs:32:34
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let re = Tensor::<f64>::rand(shape);
[INFO] [stdout]    |              ------------------- ^^^^^ expected `Shape`, found `&Shape`
[INFO] [stdout]    |              |
[INFO] [stdout]    |              arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/utilities/tensor.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn rand(shape: Shape) -> Tensor<T>
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] help: consider using clone here
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let re = Tensor::<f64>::rand(shape.clone());
[INFO] [stdout]    |                                       ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0308, E0382, E0507.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/fft.rs:232:37
[INFO] [stdout]     |
[INFO] [stdout] 232 |         let a = Tensor::<f64>::rand(s);
[INFO] [stdout]     |                 ------------------- ^ expected `Shape`, found `&Shape`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/utilities/tensor.rs:38:12
[INFO] [stdout]     |
[INFO] [stdout]  38 |     pub fn rand(shape: Shape) -> Tensor<T>
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] help: consider using clone here
[INFO] [stdout]     |
[INFO] [stdout] 232 |         let a = Tensor::<f64>::rand(s.clone());
[INFO] [stdout]     |                                      ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `a`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/utilities/transpose.rs:113:24
[INFO] [stdout]     |
[INFO] [stdout] 107 |         let a = Matrix::from_value(rows, cols, 1.0);
[INFO] [stdout]     |             -   ----------------------------------- move occurs because `a` has type `Matrix<f64>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 112 |         group.bench_with_input(BenchmarkId::new("st", &label), &label, |bench, _| {
[INFO] [stdout]     |                                                                        ---------- captured by this `FnMut` closure
[INFO] [stdout] 113 |             bench.iter(|| {
[INFO] [stdout]     |                        ^^ `a` is moved here
[INFO] [stdout] 114 |                 let r = a.transpose();
[INFO] [stdout]     |                         - variable moved due to use in closure
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/benchmark_group.rs:265:12
[INFO] [stdout]     |
[INFO] [stdout] 265 |         F: FnMut(&mut Bencher<'_, M>, &I),
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 114 |                 let r = a.clone().transpose();
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `a`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/utilities/transpose.rs:114:25
[INFO] [stdout]     |
[INFO] [stdout] 107 |         let a = Matrix::from_value(rows, cols, 1.0);
[INFO] [stdout]     |             -   ----------------------------------- move occurs because `a` has type `Matrix<f64>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 113 |             bench.iter(|| {
[INFO] [stdout]     |                        -- captured by this `FnMut` closure
[INFO] [stdout] 114 |                 let r = a.transpose();
[INFO] [stdout]     |                         ^ ----------- `a` moved due to this method call
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `a` is moved here
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/bencher.rs:85:12
[INFO] [stdout]     |
[INFO] [stdout]  85 |         R: FnMut() -> O,
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] note: `tensor_math::utilities::matrix::<impl tensor_math::definitions::matrix::Matrix<T>>::transpose` takes ownership of the receiver `self`, which moves `a`
[INFO] [stdout]    --> src/utilities/matrix.rs:545:26
[INFO] [stdout]     |
[INFO] [stdout] 545 |     pub fn transpose(mut self) -> Matrix<T> {
[INFO] [stdout]     |                          ^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 114 |                 let r = a.clone().transpose();
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0382]: use of moved value: `a`
[INFO] [stdout]    --> benches/utilities/transpose.rs:118:72
[INFO] [stdout]     |
[INFO] [stdout] 107 |         let a = Matrix::from_value(rows, cols, 1.0);
[INFO] [stdout]     |             - move occurs because `a` has type `Matrix<f64>`, which does not implement the `Copy` trait
[INFO] [stdout] ...
[INFO] [stdout] 112 |         group.bench_with_input(BenchmarkId::new("st", &label), &label, |bench, _| {
[INFO] [stdout]     |                                                                        ---------- value moved into closure here
[INFO] [stdout] 113 |             bench.iter(|| {
[INFO] [stdout] 114 |                 let r = a.transpose();
[INFO] [stdout]     |                         - variable moved due to use in closure
[INFO] [stdout] ...
[INFO] [stdout] 118 |         group.bench_with_input(BenchmarkId::new("mt", &label), &label, |bench, _| {
[INFO] [stdout]     |                                                                        ^^^^^^^^^^ value used here after move
[INFO] [stdout] 119 |             bench.iter(|| {
[INFO] [stdout] 120 |                 let r = a.transpose_mt();
[INFO] [stdout]     |                         - use occurs due to use in closure
[INFO] [stdout]     |
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 114 |                 let r = a.clone().transpose();
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `a`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/utilities/transpose.rs:119:24
[INFO] [stdout]     |
[INFO] [stdout] 107 |         let a = Matrix::from_value(rows, cols, 1.0);
[INFO] [stdout]     |             -   ----------------------------------- move occurs because `a` has type `Matrix<f64>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 118 |         group.bench_with_input(BenchmarkId::new("mt", &label), &label, |bench, _| {
[INFO] [stdout]     |                                                                        ---------- captured by this `FnMut` closure
[INFO] [stdout] 119 |             bench.iter(|| {
[INFO] [stdout]     |                        ^^ `a` is moved here
[INFO] [stdout] 120 |                 let r = a.transpose_mt();
[INFO] [stdout]     |                         - variable moved due to use in closure
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/benchmark_group.rs:265:12
[INFO] [stdout]     |
[INFO] [stdout] 265 |         F: FnMut(&mut Bencher<'_, M>, &I),
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 120 |                 let r = a.clone().transpose_mt();
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `a`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/utilities/transpose.rs:120:25
[INFO] [stdout]     |
[INFO] [stdout] 107 |         let a = Matrix::from_value(rows, cols, 1.0);
[INFO] [stdout]     |             -   ----------------------------------- move occurs because `a` has type `Matrix<f64>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 119 |             bench.iter(|| {
[INFO] [stdout]     |                        -- captured by this `FnMut` closure
[INFO] [stdout] 120 |                 let r = a.transpose_mt();
[INFO] [stdout]     |                         ^ -------------- `a` moved due to this method call
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `a` is moved here
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/bencher.rs:85:12
[INFO] [stdout]     |
[INFO] [stdout]  85 |         R: FnMut() -> O,
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] note: `tensor_math::utilities::matrix::<impl tensor_math::definitions::matrix::Matrix<T>>::transpose_mt` takes ownership of the receiver `self`, which moves `a`
[INFO] [stdout]    --> src/utilities/matrix.rs:571:25
[INFO] [stdout]     |
[INFO] [stdout] 571 |     pub fn transpose_mt(self) -> Matrix<T>
[INFO] [stdout]     |                         ^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 120 |                 let r = a.clone().transpose_mt();
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> benches/math/contract_mul.rs:33:34
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let im = Tensor::<f64>::rand(shape);
[INFO] [stdout]    |              ------------------- ^^^^^ expected `Shape`, found `&Shape`
[INFO] [stdout]    |              |
[INFO] [stdout]    |              arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/utilities/tensor.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn rand(shape: Shape) -> Tensor<T>
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] help: consider using clone here
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let im = Tensor::<f64>::rand(shape.clone());
[INFO] [stdout]    |                                       ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `tensor_math` (bench "clip") due to 6 previous errors
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/fft.rs:233:37
[INFO] [stdout]     |
[INFO] [stdout] 233 |         let b = Tensor::<f64>::rand(k);
[INFO] [stdout]     |                 ------------------- ^ expected `Shape`, found `&Shape`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/utilities/tensor.rs:38:12
[INFO] [stdout]     |
[INFO] [stdout]  38 |     pub fn rand(shape: Shape) -> Tensor<T>
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] help: consider using clone here
[INFO] [stdout]     |
[INFO] [stdout] 233 |         let b = Tensor::<f64>::rand(k.clone());
[INFO] [stdout]     |                                      ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/fft.rs:263:37
[INFO] [stdout]     |
[INFO] [stdout] 263 |         let a = Tensor::<f64>::rand(s);
[INFO] [stdout]     |                 ------------------- ^ expected `Shape`, found `&Shape`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/utilities/tensor.rs:38:12
[INFO] [stdout]     |
[INFO] [stdout]  38 |     pub fn rand(shape: Shape) -> Tensor<T>
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] help: consider using clone here
[INFO] [stdout]     |
[INFO] [stdout] 263 |         let a = Tensor::<f64>::rand(s.clone());
[INFO] [stdout]     |                                      ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/fft.rs:264:37
[INFO] [stdout]     |
[INFO] [stdout] 264 |         let b = Tensor::<f64>::rand(k);
[INFO] [stdout]     |                 ------------------- ^ expected `Shape`, found `&Shape`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/utilities/tensor.rs:38:12
[INFO] [stdout]     |
[INFO] [stdout]  38 |     pub fn rand(shape: Shape) -> Tensor<T>
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] help: consider using clone here
[INFO] [stdout]     |
[INFO] [stdout] 264 |         let b = Tensor::<f64>::rand(k.clone());
[INFO] [stdout]     |                                      ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/utilities/reshape_flatten.rs:39:48
[INFO] [stdout]     |
[INFO] [stdout]  39 |                     let r = a2.clone().reshape(&flat).expect("reshape must succeed");
[INFO] [stdout]     |                                        ------- ^^^^^ expected `Shape`, found `&Shape`
[INFO] [stdout]     |                                        |
[INFO] [stdout]     |                                        arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/utilities/tensor.rs:103:12
[INFO] [stdout]     |
[INFO] [stdout] 103 |     pub fn reshape(self, new_shape: Shape) -> Result<Tensor<T>, TensorErrors> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout]  39 -                     let r = a2.clone().reshape(&flat).expect("reshape must succeed");
[INFO] [stdout]  39 +                     let r = a2.clone().reshape(flat).expect("reshape must succeed");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/corr_conv.rs:60:36
[INFO] [stdout]     |
[INFO] [stdout]  60 |                     let r = a.corr(&b).expect("corr must succeed");
[INFO] [stdout]     |                               ---- ^^ expected `Matrix<f64>`, found `&Matrix<f64>`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Matrix<_>`
[INFO] [stdout]             found reference `&Matrix<_>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/math/corr_conv.rs:533:12
[INFO] [stdout]     |
[INFO] [stdout] 533 |     pub fn corr(self, other: Matrix<T>) -> Result<Matrix<T>, TensorErrors> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout]  60 -                     let r = a.corr(&b).expect("corr must succeed");
[INFO] [stdout]  60 +                     let r = a.corr(b).expect("corr must succeed");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/fft.rs:294:37
[INFO] [stdout]     |
[INFO] [stdout] 294 |         let a = Tensor::<f64>::rand(s);
[INFO] [stdout]     |                 ------------------- ^ expected `Shape`, found `&Shape`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/utilities/tensor.rs:38:12
[INFO] [stdout]     |
[INFO] [stdout]  38 |     pub fn rand(shape: Shape) -> Tensor<T>
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] help: consider using clone here
[INFO] [stdout]     |
[INFO] [stdout] 294 |         let a = Tensor::<f64>::rand(s.clone());
[INFO] [stdout]     |                                      ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> benches/utilities/reshape_flatten.rs:51:36
[INFO] [stdout]    |
[INFO] [stdout] 51 |         let a = Tensor::from_value(&shape![1, n], 1.0);
[INFO] [stdout]    |                 ------------------ ^^^^^^^^^^^^^ expected `Shape`, found `&Shape`
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/utilities/tensor.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub fn from_value(shape: Shape, value: T) -> Self
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]    |
[INFO] [stdout] 51 -         let a = Tensor::from_value(&shape![1, n], 1.0);
[INFO] [stdout] 51 +         let a = Tensor::from_value(shape![1, n], 1.0);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/fft.rs:295:37
[INFO] [stdout]     |
[INFO] [stdout] 295 |         let b = Tensor::<f64>::rand(k);
[INFO] [stdout]     |                 ------------------- ^ expected `Shape`, found `&Shape`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/utilities/tensor.rs:38:12
[INFO] [stdout]     |
[INFO] [stdout]  38 |     pub fn rand(shape: Shape) -> Tensor<T>
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] help: consider using clone here
[INFO] [stdout]     |
[INFO] [stdout] 295 |         let b = Tensor::<f64>::rand(k.clone());
[INFO] [stdout]     |                                      ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/fft.rs:322:37
[INFO] [stdout]     |
[INFO] [stdout] 322 |         let a = Tensor::<f64>::rand(s);
[INFO] [stdout]     |                 ------------------- ^ expected `Shape`, found `&Shape`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/utilities/tensor.rs:38:12
[INFO] [stdout]     |
[INFO] [stdout]  38 |     pub fn rand(shape: Shape) -> Tensor<T>
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] help: consider using clone here
[INFO] [stdout]     |
[INFO] [stdout] 322 |         let a = Tensor::<f64>::rand(s.clone());
[INFO] [stdout]     |                                      ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0271, E0308.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0271`.
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0308, E0382, E0507.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/fft.rs:323:37
[INFO] [stdout]     |
[INFO] [stdout] 323 |         let b = Tensor::<f64>::rand(k);
[INFO] [stdout]     |                 ------------------- ^ expected `Shape`, found `&Shape`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/utilities/tensor.rs:38:12
[INFO] [stdout]     |
[INFO] [stdout]  38 |     pub fn rand(shape: Shape) -> Tensor<T>
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] help: consider using clone here
[INFO] [stdout]     |
[INFO] [stdout] 323 |         let b = Tensor::<f64>::rand(k.clone());
[INFO] [stdout]     |                                      ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/corr_conv.rs:91:39
[INFO] [stdout]     |
[INFO] [stdout]  91 |                     let r = a.corr_mt(&b).expect("corr_mt must succeed");
[INFO] [stdout]     |                               ------- ^^ expected `Matrix<f64>`, found `&Matrix<f64>`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Matrix<_>`
[INFO] [stdout]             found reference `&Matrix<_>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/math/corr_conv.rs:579:12
[INFO] [stdout]     |
[INFO] [stdout] 579 |     pub fn corr_mt(self, other: Matrix<T>) -> Result<Matrix<T>, TensorErrors>
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout]  91 -                     let r = a.corr_mt(&b).expect("corr_mt must succeed");
[INFO] [stdout]  91 +                     let r = a.corr_mt(b).expect("corr_mt must succeed");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `tensor_math` (bench "iter") due to 3 previous errors
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/corr_conv.rs:122:36
[INFO] [stdout]     |
[INFO] [stdout] 122 |                     let r = a.conv(&b).expect("conv must succeed");
[INFO] [stdout]     |                               ---- ^^ expected `Matrix<f64>`, found `&Matrix<f64>`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Matrix<_>`
[INFO] [stdout]             found reference `&Matrix<_>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/math/corr_conv.rs:573:12
[INFO] [stdout]     |
[INFO] [stdout] 573 |     pub fn conv(self, other: Matrix<T>) -> Result<Matrix<T>, TensorErrors> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 122 -                     let r = a.conv(&b).expect("conv must succeed");
[INFO] [stdout] 122 +                     let r = a.conv(b).expect("conv must succeed");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 3 arguments but 4 arguments were supplied
[INFO] [stdout]    --> benches/utilities/pool.rs:30:22
[INFO] [stdout]     |
[INFO] [stdout]  30 |                     .pool(pool_sum::<f64>, &kernel, &stride, 0.0)
[INFO] [stdout]     |                      ^^^^                                    --- unexpected argument #4 of type `{float}`
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/utilities/tensor.rs:879:12
[INFO] [stdout]     |
[INFO] [stdout] 879 |     pub fn pool<O>(
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]     |
[INFO] [stdout]  30 -                     .pool(pool_sum::<f64>, &kernel, &stride, 0.0)
[INFO] [stdout]  30 +                     .pool(pool_sum::<f64>, &kernel, &stride)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `tensor_math` (bench "transpose") due to 8 previous errors
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/corr_conv.rs:153:39
[INFO] [stdout]     |
[INFO] [stdout] 153 |                     let r = a.conv_mt(&b).expect("conv_mt must succeed");
[INFO] [stdout]     |                               ------- ^^ expected `Matrix<f64>`, found `&Matrix<f64>`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Matrix<_>`
[INFO] [stdout]             found reference `&Matrix<_>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/math/corr_conv.rs:622:12
[INFO] [stdout]     |
[INFO] [stdout] 622 |     pub fn conv_mt(self, other: Matrix<T>) -> Result<Matrix<T>, TensorErrors>
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 153 -                     let r = a.conv_mt(&b).expect("conv_mt must succeed");
[INFO] [stdout] 153 +                     let r = a.conv_mt(b).expect("conv_mt must succeed");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 3 arguments but 4 arguments were supplied
[INFO] [stdout]     --> benches/utilities/pool.rs:39:22
[INFO] [stdout]      |
[INFO] [stdout]   39 |                     .pool_mt(&pool_fn, &kernel, &stride, 0.0)
[INFO] [stdout]      |                      ^^^^^^^                             --- unexpected argument #4 of type `{float}`
[INFO] [stdout]      |
[INFO] [stdout] note: method defined here
[INFO] [stdout]     --> src/utilities/tensor.rs:1064:12
[INFO] [stdout]      |
[INFO] [stdout] 1064 |     pub fn pool_mt<O: Send + Sync>(
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]      |
[INFO] [stdout]   39 -                     .pool_mt(&pool_fn, &kernel, &stride, 0.0)
[INFO] [stdout]   39 +                     .pool_mt(&pool_fn, &kernel, &stride)
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/corr_conv.rs:184:36
[INFO] [stdout]     |
[INFO] [stdout] 184 |                     let r = a.corr(&b).expect("corr must succeed");
[INFO] [stdout]     |                               ---- ^^ expected `Matrix<Complex<f64>>`, found `&Matrix<Complex<f64>>`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Matrix<_>`
[INFO] [stdout]             found reference `&Matrix<_>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/math/corr_conv.rs:533:12
[INFO] [stdout]     |
[INFO] [stdout] 533 |     pub fn corr(self, other: Matrix<T>) -> Result<Matrix<T>, TensorErrors> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 184 -                     let r = a.corr(&b).expect("corr must succeed");
[INFO] [stdout] 184 +                     let r = a.corr(b).expect("corr must succeed");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> benches/utilities/pool.rs:51:36
[INFO] [stdout]    |
[INFO] [stdout] 51 |         let a = Tensor::from_value(&shape![rows, cols], 1.0);
[INFO] [stdout]    |                 ------------------ ^^^^^^^^^^^^^^^^^^^ expected `Shape`, found `&Shape`
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/utilities/tensor.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub fn from_value(shape: Shape, value: T) -> Self
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]    |
[INFO] [stdout] 51 -         let a = Tensor::from_value(&shape![rows, cols], 1.0);
[INFO] [stdout] 51 +         let a = Tensor::from_value(shape![rows, cols], 1.0);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/corr_conv.rs:215:39
[INFO] [stdout]     |
[INFO] [stdout] 215 |                     let r = a.corr_mt(&b).expect("corr_mt must succeed");
[INFO] [stdout]     |                               ------- ^^ expected `Matrix<Complex<f64>>`, found `&Matrix<Complex<f64>>`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Matrix<_>`
[INFO] [stdout]             found reference `&Matrix<_>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/math/corr_conv.rs:579:12
[INFO] [stdout]     |
[INFO] [stdout] 579 |     pub fn corr_mt(self, other: Matrix<T>) -> Result<Matrix<T>, TensorErrors>
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 215 -                     let r = a.corr_mt(&b).expect("corr_mt must succeed");
[INFO] [stdout] 215 +                     let r = a.corr_mt(b).expect("corr_mt must succeed");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `contract_mul` found for struct `Matrix<f64>` in the current scope
[INFO] [stdout]   --> benches/math/contract_mul.rs:53:31
[INFO] [stdout]    |
[INFO] [stdout] 53 |                     let r = a.contract_mul(&b).expect("contract_mul must succeed");
[INFO] [stdout]    |                               ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `mat_mul` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 53 -                     let r = a.contract_mul(&b).expect("contract_mul must succeed");
[INFO] [stdout] 53 +                     let r = a.mat_mul(&b).expect("contract_mul must succeed");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 3 arguments but 4 arguments were supplied
[INFO] [stdout]    --> benches/utilities/pool.rs:61:22
[INFO] [stdout]     |
[INFO] [stdout]  61 |                     .pool_indexed(|_idx, t| pool_sum::<f64>(t), &kernel, &stride, 0.0)
[INFO] [stdout]     |                      ^^^^^^^^^^^^                                                 --- unexpected argument #4 of type `{float}`
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/utilities/tensor.rs:971:12
[INFO] [stdout]     |
[INFO] [stdout] 971 |     pub fn pool_indexed<O: Clone>(
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]     |
[INFO] [stdout]  61 -                     .pool_indexed(|_idx, t| pool_sum::<f64>(t), &kernel, &stride, 0.0)
[INFO] [stdout]  61 +                     .pool_indexed(|_idx, t| pool_sum::<f64>(t), &kernel, &stride)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `tensor_math` (bench "reshape_flatten") due to 5 previous errors
[INFO] [stderr] error: could not compile `tensor_math` (bench "sum") due to 4 previous errors
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> benches/utilities/pool.rs:67:77
[INFO] [stdout]      |
[INFO] [stdout]   67 |             let pool_fn = |idx: Vec<usize>, t: Tensor<f64>| pool_sum::<f64>(t) + idx[0] as f64;
[INFO] [stdout]      |                                                             --------------- ^ expected `TensorSlice<'_, f64>`, found `Tensor<f64>`
[INFO] [stdout]      |                                                             |
[INFO] [stdout]      |                                                             arguments to this function are incorrect
[INFO] [stdout]      |
[INFO] [stdout]      = note: expected struct `TensorSlice<'_, f64>`
[INFO] [stdout]                 found struct `Tensor<f64>`
[INFO] [stdout] note: function defined here
[INFO] [stdout]     --> src/utilities/tensor.rs:1237:8
[INFO] [stdout]      |
[INFO] [stdout] 1237 | pub fn pool_sum<T: Add<Output = T> + Clone>(t: TensorSlice<T>) -> Option<T> {
[INFO] [stdout]      |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: cannot add `f64` to `Option<f64>`
[INFO] [stdout]   --> benches/utilities/pool.rs:67:80
[INFO] [stdout]    |
[INFO] [stdout] 67 |             let pool_fn = |idx: Vec<usize>, t: Tensor<f64>| pool_sum::<f64>(t) + idx[0] as f64;
[INFO] [stdout]    |                                                             ------------------ ^ ------------- f64
[INFO] [stdout]    |                                                             |
[INFO] [stdout]    |                                                             Option<f64>
[INFO] [stdout]    |
[INFO] [stdout] note: `Option<f64>` does not implement `Add<f64>`
[INFO] [stdout]   --> /rustc/3154cc1a3e6424e44f438a95007d043ed5ceaaf6/library/core/src/option.rs:598:0
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Option<f64>` is defined in another crate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `contract_mul_mt` found for struct `Matrix<f64>` in the current scope
[INFO] [stdout]   --> benches/math/contract_mul.rs:78:31
[INFO] [stdout]    |
[INFO] [stdout] 78 |                     let r = a.contract_mul_mt(&b).expect("contract_mul_mt must succeed");
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `mat_mul_mt` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 78 -                     let r = a.contract_mul_mt(&b).expect("contract_mul_mt must succeed");
[INFO] [stdout] 78 +                     let r = a.mat_mul_mt(&b).expect("contract_mul_mt must succeed");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/corr_conv.rs:246:36
[INFO] [stdout]     |
[INFO] [stdout] 246 |                     let r = a.conv(&b).expect("conv must succeed");
[INFO] [stdout]     |                               ---- ^^ expected `Matrix<Complex<f64>>`, found `&Matrix<Complex<f64>>`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Matrix<_>`
[INFO] [stdout]             found reference `&Matrix<_>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/math/corr_conv.rs:573:12
[INFO] [stdout]     |
[INFO] [stdout] 573 |     pub fn conv(self, other: Matrix<T>) -> Result<Matrix<T>, TensorErrors> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 246 -                     let r = a.conv(&b).expect("conv must succeed");
[INFO] [stdout] 246 +                     let r = a.conv(b).expect("conv must succeed");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/contract_mul.rs:103:39
[INFO] [stdout]     |
[INFO] [stdout] 103 |                     let r = a.mat_mul(&b).expect("mat_mul must succeed");
[INFO] [stdout]     |                               ------- ^^ expected `Matrix<f64>`, found `&Matrix<f64>`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Matrix<_>`
[INFO] [stdout]             found reference `&Matrix<_>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/math/contract_mul.rs:255:12
[INFO] [stdout]     |
[INFO] [stdout] 255 |     pub fn mat_mul(self, other: Matrix<T>) -> Result<Matrix<T>, TensorErrors>
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 103 -                     let r = a.mat_mul(&b).expect("mat_mul must succeed");
[INFO] [stdout] 103 +                     let r = a.mat_mul(b).expect("mat_mul must succeed");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 3 arguments but 4 arguments were supplied
[INFO] [stdout]     --> benches/utilities/pool.rs:70:22
[INFO] [stdout]      |
[INFO] [stdout]   70 |                     .pool_indexed_mt(&pool_fn, &kernel, &stride, 0.0)
[INFO] [stdout]      |                      ^^^^^^^^^^^^^^^                             --- unexpected argument #4 of type `{float}`
[INFO] [stdout]      |
[INFO] [stdout] note: method defined here
[INFO] [stdout]     --> src/utilities/tensor.rs:1153:12
[INFO] [stdout]      |
[INFO] [stdout] 1153 |     pub fn pool_indexed_mt<O: Send + Sync>(
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]      |
[INFO] [stdout]   70 -                     .pool_indexed_mt(&pool_fn, &kernel, &stride, 0.0)
[INFO] [stdout]   70 +                     .pool_indexed_mt(&pool_fn, &kernel, &stride)
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/corr_conv.rs:277:39
[INFO] [stdout]     |
[INFO] [stdout] 277 |                     let r = a.conv_mt(&b).expect("conv_mt must succeed");
[INFO] [stdout]     |                               ------- ^^ expected `Matrix<Complex<f64>>`, found `&Matrix<Complex<f64>>`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Matrix<_>`
[INFO] [stdout]             found reference `&Matrix<_>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/math/corr_conv.rs:622:12
[INFO] [stdout]     |
[INFO] [stdout] 622 |     pub fn conv_mt(self, other: Matrix<T>) -> Result<Matrix<T>, TensorErrors>
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 277 -                     let r = a.conv_mt(&b).expect("conv_mt must succeed");
[INFO] [stdout] 277 +                     let r = a.conv_mt(b).expect("conv_mt must succeed");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/contract_mul.rs:128:42
[INFO] [stdout]     |
[INFO] [stdout] 128 |                     let r = a.mat_mul_mt(&b).expect("mat_mul_mt must succeed");
[INFO] [stdout]     |                               ---------- ^^ expected `Matrix<f64>`, found `&Matrix<f64>`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Matrix<_>`
[INFO] [stdout]             found reference `&Matrix<_>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/math/contract_mul.rs:310:12
[INFO] [stdout]     |
[INFO] [stdout] 310 |     pub fn mat_mul_mt(self, other: Matrix<T>) -> Result<Matrix<T>, TensorErrors>
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 128 -                     let r = a.mat_mul_mt(&b).expect("mat_mul_mt must succeed");
[INFO] [stdout] 128 +                     let r = a.mat_mul_mt(b).expect("mat_mul_mt must succeed");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/fft.rs:758:40
[INFO] [stdout]     |
[INFO] [stdout] 758 |                         .fft_corr_axes(&b, &axes)
[INFO] [stdout]     |                          ------------- ^^ expected `Tensor<Complex<f64>>`, found `&Tensor<Complex<f64>>`
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Tensor<_>`
[INFO] [stdout]             found reference `&Tensor<_>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/math/fft_ops.rs:118:12
[INFO] [stdout]     |
[INFO] [stdout] 118 |     pub fn fft_corr_axes(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] note: the `fft_corr_axes` call is resolved to the method in `tensor_math::math::fft_ops::<impl tensor_math::definitions::tensor::Tensor<num::Complex<f64>>>`, shadowing the method of the same name on the inherent impl for `tensor_math::math::fft_ops::<impl tensor_math::definitions::tensor::Tensor<f64>>`
[INFO] [stdout]    --> benches/math/fft.rs:758:26
[INFO] [stdout]     |
[INFO] [stdout] 758 |                         .fft_corr_axes(&b, &axes)
[INFO] [stdout]     |                          ^^^^^^^^^^^^^ refers to `tensor_math::math::fft_ops::<impl tensor_math::definitions::tensor::Tensor<num::Complex<f64>>>::fft_corr_axes`
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 758 -                         .fft_corr_axes(&b, &axes)
[INFO] [stdout] 758 +                         .fft_corr_axes(b, &axes)
[INFO] [stdout]     |
[INFO] [stdout] help: you might have meant to call the other method; you can use the fully-qualified path to call it explicitly
[INFO] [stdout]     |
[INFO] [stdout] 757 -                     let r = a
[INFO] [stdout] 758 -                         .fft_corr_axes(&b, &axes)
[INFO] [stdout] 757 +                     let r = Tensor::fft_corr_axes(&a, &b, &axes)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `contract_mul` found for struct `Matrix<num::Complex<f64>>` in the current scope
[INFO] [stdout]    --> benches/math/contract_mul.rs:155:31
[INFO] [stdout]     |
[INFO] [stdout] 155 |                     let r = a.contract_mul(&b).expect("contract_mul must succeed");
[INFO] [stdout]     |                               ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `mat_mul` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 155 -                     let r = a.contract_mul(&b).expect("contract_mul must succeed");
[INFO] [stdout] 155 +                     let r = a.mat_mul(&b).expect("contract_mul must succeed");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/corr_conv.rs:303:41
[INFO] [stdout]     |
[INFO] [stdout] 303 |                     let r = a.corr_cols(&b).expect("corr_cols must succeed");
[INFO] [stdout]     |                               --------- ^^ expected `Matrix<f64>`, found `&Matrix<f64>`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Matrix<_>`
[INFO] [stdout]             found reference `&Matrix<_>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/math/corr_conv.rs:449:12
[INFO] [stdout]     |
[INFO] [stdout] 449 |     pub fn corr_cols(self, other: Matrix<T>) -> Result<Matrix<T>, TensorErrors> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 303 -                     let r = a.corr_cols(&b).expect("corr_cols must succeed");
[INFO] [stdout] 303 +                     let r = a.corr_cols(b).expect("corr_cols must succeed");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/fft.rs:789:40
[INFO] [stdout]     |
[INFO] [stdout] 789 |                         .fft_conv_axes(&b, &axes)
[INFO] [stdout]     |                          ------------- ^^ expected `Tensor<Complex<f64>>`, found `&Tensor<Complex<f64>>`
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Tensor<_>`
[INFO] [stdout]             found reference `&Tensor<_>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/math/fft_ops.rs:128:12
[INFO] [stdout]     |
[INFO] [stdout] 128 |     pub fn fft_conv_axes(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] note: the `fft_conv_axes` call is resolved to the method in `tensor_math::math::fft_ops::<impl tensor_math::definitions::tensor::Tensor<num::Complex<f64>>>`, shadowing the method of the same name on the inherent impl for `tensor_math::math::fft_ops::<impl tensor_math::definitions::tensor::Tensor<f64>>`
[INFO] [stdout]    --> benches/math/fft.rs:789:26
[INFO] [stdout]     |
[INFO] [stdout] 789 |                         .fft_conv_axes(&b, &axes)
[INFO] [stdout]     |                          ^^^^^^^^^^^^^ refers to `tensor_math::math::fft_ops::<impl tensor_math::definitions::tensor::Tensor<num::Complex<f64>>>::fft_conv_axes`
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 789 -                         .fft_conv_axes(&b, &axes)
[INFO] [stdout] 789 +                         .fft_conv_axes(b, &axes)
[INFO] [stdout]     |
[INFO] [stdout] help: you might have meant to call the other method; you can use the fully-qualified path to call it explicitly
[INFO] [stdout]     |
[INFO] [stdout] 788 -                     let r = a
[INFO] [stdout] 789 -                         .fft_conv_axes(&b, &axes)
[INFO] [stdout] 788 +                     let r = Tensor::fft_conv_axes(&a, &b, &axes)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 3 arguments but 4 arguments were supplied
[INFO] [stdout]    --> benches/utilities/pool.rs:92:22
[INFO] [stdout]     |
[INFO] [stdout]  92 |                     .pool(pool_sum_mat::<f64>, kernel, stride, 0.0)
[INFO] [stdout]     |                      ^^^^                                      --- unexpected argument #4 of type `{float}`
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/utilities/matrix.rs:696:12
[INFO] [stdout]     |
[INFO] [stdout] 696 |     pub fn pool<O>(
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]     |
[INFO] [stdout]  92 -                     .pool(pool_sum_mat::<f64>, kernel, stride, 0.0)
[INFO] [stdout]  92 +                     .pool(pool_sum_mat::<f64>, kernel, stride)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/corr_conv.rs:329:44
[INFO] [stdout]     |
[INFO] [stdout] 329 |                     let r = a.corr_cols_mt(&b).expect("corr_cols_mt must succeed");
[INFO] [stdout]     |                               ------------ ^^ expected `Matrix<f64>`, found `&Matrix<f64>`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Matrix<_>`
[INFO] [stdout]             found reference `&Matrix<_>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/math/corr_conv.rs:631:12
[INFO] [stdout]     |
[INFO] [stdout] 631 |     pub fn corr_cols_mt(self, other: Matrix<T>) -> Result<Matrix<T>, TensorErrors>
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 329 -                     let r = a.corr_cols_mt(&b).expect("corr_cols_mt must succeed");
[INFO] [stdout] 329 +                     let r = a.corr_cols_mt(b).expect("corr_cols_mt must succeed");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/corr_conv.rs:355:41
[INFO] [stdout]     |
[INFO] [stdout] 355 |                     let r = a.corr_cols(&b).expect("corr_cols must succeed");
[INFO] [stdout]     |                               --------- ^^ expected `Matrix<Complex<f64>>`, found `&Matrix<Complex<f64>>`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Matrix<_>`
[INFO] [stdout]             found reference `&Matrix<_>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/math/corr_conv.rs:449:12
[INFO] [stdout]     |
[INFO] [stdout] 449 |     pub fn corr_cols(self, other: Matrix<T>) -> Result<Matrix<T>, TensorErrors> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 355 -                     let r = a.corr_cols(&b).expect("corr_cols must succeed");
[INFO] [stdout] 355 +                     let r = a.corr_cols(b).expect("corr_cols must succeed");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `contract_mul_mt` found for struct `Matrix<num::Complex<f64>>` in the current scope
[INFO] [stdout]    --> benches/math/contract_mul.rs:180:31
[INFO] [stdout]     |
[INFO] [stdout] 180 |                     let r = a.contract_mul_mt(&b).expect("contract_mul_mt must succeed");
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `mat_mul_mt` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 180 -                     let r = a.contract_mul_mt(&b).expect("contract_mul_mt must succeed");
[INFO] [stdout] 180 +                     let r = a.mat_mul_mt(&b).expect("contract_mul_mt must succeed");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 3 arguments but 4 arguments were supplied
[INFO] [stdout]    --> benches/utilities/pool.rs:101:22
[INFO] [stdout]     |
[INFO] [stdout] 101 |                     .pool_mt(&pool_fn, kernel, stride, 0.0)
[INFO] [stdout]     |                      ^^^^^^^                           --- unexpected argument #4 of type `{float}`
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/utilities/matrix.rs:795:12
[INFO] [stdout]     |
[INFO] [stdout] 795 |     pub fn pool_mt<O: Send + Sync>(
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]     |
[INFO] [stdout] 101 -                     .pool_mt(&pool_fn, kernel, stride, 0.0)
[INFO] [stdout] 101 +                     .pool_mt(&pool_fn, kernel, stride)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/fft.rs:818:40
[INFO] [stdout]     |
[INFO] [stdout] 818 |                     let r = a.fft_corr(&b).expect("fft_corr must succeed");
[INFO] [stdout]     |                               -------- ^^ expected `Tensor<Complex<f64>>`, found `&Tensor<Complex<f64>>`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Tensor<_>`
[INFO] [stdout]             found reference `&Tensor<_>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/math/fft_ops.rs:217:12
[INFO] [stdout]     |
[INFO] [stdout] 217 |     pub fn fft_corr(self, other: Tensor<Complex64>) -> Result<Tensor<Complex64>, TensorErrors> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] note: the `fft_corr` call is resolved to the method in `tensor_math::math::fft_ops::<impl tensor_math::definitions::tensor::Tensor<num::Complex<f64>>>`, shadowing the method of the same name on the inherent impl for `tensor_math::math::fft_ops::<impl tensor_math::definitions::tensor::Tensor<f64>>`
[INFO] [stdout]    --> benches/math/fft.rs:818:31
[INFO] [stdout]     |
[INFO] [stdout] 818 |                     let r = a.fft_corr(&b).expect("fft_corr must succeed");
[INFO] [stdout]     |                               ^^^^^^^^ refers to `tensor_math::math::fft_ops::<impl tensor_math::definitions::tensor::Tensor<num::Complex<f64>>>::fft_corr`
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 818 -                     let r = a.fft_corr(&b).expect("fft_corr must succeed");
[INFO] [stdout] 818 +                     let r = a.fft_corr(b).expect("fft_corr must succeed");
[INFO] [stdout]     |
[INFO] [stdout] help: you might have meant to call the other method; you can use the fully-qualified path to call it explicitly
[INFO] [stdout]     |
[INFO] [stdout] 818 -                     let r = a.fft_corr(&b).expect("fft_corr must succeed");
[INFO] [stdout] 818 +                     let r = Tensor::fft_corr(&a, &b).expect("fft_corr must succeed");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/corr_conv.rs:381:44
[INFO] [stdout]     |
[INFO] [stdout] 381 |                     let r = a.corr_cols_mt(&b).expect("corr_cols_mt must succeed");
[INFO] [stdout]     |                               ------------ ^^ expected `Matrix<Complex<f64>>`, found `&Matrix<Complex<f64>>`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Matrix<_>`
[INFO] [stdout]             found reference `&Matrix<_>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/math/corr_conv.rs:631:12
[INFO] [stdout]     |
[INFO] [stdout] 631 |     pub fn corr_cols_mt(self, other: Matrix<T>) -> Result<Matrix<T>, TensorErrors>
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 381 -                     let r = a.corr_cols_mt(&b).expect("corr_cols_mt must succeed");
[INFO] [stdout] 381 +                     let r = a.corr_cols_mt(b).expect("corr_cols_mt must succeed");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/corr_conv.rs:407:41
[INFO] [stdout]     |
[INFO] [stdout] 407 |                     let r = a.corr_rows(&b).expect("corr_rows must succeed");
[INFO] [stdout]     |                               --------- ^^ expected `Matrix<f64>`, found `&Matrix<f64>`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Matrix<_>`
[INFO] [stdout]             found reference `&Matrix<_>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/math/corr_conv.rs:491:12
[INFO] [stdout]     |
[INFO] [stdout] 491 |     pub fn corr_rows(self, other: Matrix<T>) -> Result<Matrix<T>, TensorErrors> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 407 -                     let r = a.corr_rows(&b).expect("corr_rows must succeed");
[INFO] [stdout] 407 +                     let r = a.corr_rows(b).expect("corr_rows must succeed");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 3 arguments but 4 arguments were supplied
[INFO] [stdout]    --> benches/utilities/pool.rs:123:22
[INFO] [stdout]     |
[INFO] [stdout] 123 |                     .pool_indexed(|_idx, m| pool_sum_mat::<f64>(m), kernel, stride, 0.0)
[INFO] [stdout]     |                      ^^^^^^^^^^^^                                                   --- unexpected argument #4 of type `{float}`
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/utilities/matrix.rs:745:12
[INFO] [stdout]     |
[INFO] [stdout] 745 |     pub fn pool_indexed<O>(
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]     |
[INFO] [stdout] 123 -                     .pool_indexed(|_idx, m| pool_sum_mat::<f64>(m), kernel, stride, 0.0)
[INFO] [stdout] 123 +                     .pool_indexed(|_idx, m| pool_sum_mat::<f64>(m), kernel, stride)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/fft.rs:846:40
[INFO] [stdout]     |
[INFO] [stdout] 846 |                     let r = a.fft_conv(&b).expect("fft_conv must succeed");
[INFO] [stdout]     |                               -------- ^^ expected `Tensor<Complex<f64>>`, found `&Tensor<Complex<f64>>`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Tensor<_>`
[INFO] [stdout]             found reference `&Tensor<_>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/math/fft_ops.rs:226:12
[INFO] [stdout]     |
[INFO] [stdout] 226 |     pub fn fft_conv(self, other: Tensor<Complex64>) -> Result<Tensor<Complex64>, TensorErrors> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] note: the `fft_conv` call is resolved to the method in `tensor_math::math::fft_ops::<impl tensor_math::definitions::tensor::Tensor<num::Complex<f64>>>`, shadowing the method of the same name on the inherent impl for `tensor_math::math::fft_ops::<impl tensor_math::definitions::tensor::Tensor<f64>>`
[INFO] [stdout]    --> benches/math/fft.rs:846:31
[INFO] [stdout]     |
[INFO] [stdout] 846 |                     let r = a.fft_conv(&b).expect("fft_conv must succeed");
[INFO] [stdout]     |                               ^^^^^^^^ refers to `tensor_math::math::fft_ops::<impl tensor_math::definitions::tensor::Tensor<num::Complex<f64>>>::fft_conv`
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 846 -                     let r = a.fft_conv(&b).expect("fft_conv must succeed");
[INFO] [stdout] 846 +                     let r = a.fft_conv(b).expect("fft_conv must succeed");
[INFO] [stdout]     |
[INFO] [stdout] help: you might have meant to call the other method; you can use the fully-qualified path to call it explicitly
[INFO] [stdout]     |
[INFO] [stdout] 846 -                     let r = a.fft_conv(&b).expect("fft_conv must succeed");
[INFO] [stdout] 846 +                     let r = Tensor::fft_conv(&a, &b).expect("fft_conv must succeed");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/corr_conv.rs:433:44
[INFO] [stdout]     |
[INFO] [stdout] 433 |                     let r = a.corr_rows_mt(&b).expect("corr_rows_mt must succeed");
[INFO] [stdout]     |                               ------------ ^^ expected `Matrix<f64>`, found `&Matrix<f64>`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Matrix<_>`
[INFO] [stdout]             found reference `&Matrix<_>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/math/corr_conv.rs:676:12
[INFO] [stdout]     |
[INFO] [stdout] 676 |     pub fn corr_rows_mt(self, other: Matrix<T>) -> Result<Matrix<T>, TensorErrors>
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 433 -                     let r = a.corr_rows_mt(&b).expect("corr_rows_mt must succeed");
[INFO] [stdout] 433 +                     let r = a.corr_rows_mt(b).expect("corr_rows_mt must succeed");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/utilities/pool.rs:130:79
[INFO] [stdout]     |
[INFO] [stdout] 130 |                 |(r, _c): (usize, usize), m: Matrix<f64>| pool_sum_mat::<f64>(m) + r as f64;
[INFO] [stdout]     |                                                           ------------------- ^ expected `MatrixSlice<'_, f64>`, found `Matrix<f64>`
[INFO] [stdout]     |                                                           |
[INFO] [stdout]     |                                                           arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `MatrixSlice<'_, f64>`
[INFO] [stdout]                found struct `Matrix<f64>`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/utilities/matrix.rs:933:8
[INFO] [stdout]     |
[INFO] [stdout] 933 | pub fn pool_sum_mat<T: Add<Output = T> + Clone>(m: MatrixSlice<T>) -> Option<T> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: cannot add `f64` to `Option<f64>`
[INFO] [stdout]    --> benches/utilities/pool.rs:130:82
[INFO] [stdout]     |
[INFO] [stdout] 130 |                 |(r, _c): (usize, usize), m: Matrix<f64>| pool_sum_mat::<f64>(m) + r as f64;
[INFO] [stdout]     |                                                           ---------------------- ^ -------- f64
[INFO] [stdout]     |                                                           |
[INFO] [stdout]     |                                                           Option<f64>
[INFO] [stdout]     |
[INFO] [stdout] note: `Option<f64>` does not implement `Add<f64>`
[INFO] [stdout]    --> /rustc/3154cc1a3e6424e44f438a95007d043ed5ceaaf6/library/core/src/option.rs:598:0
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Option<f64>` is defined in another crate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/contract_mul.rs:205:39
[INFO] [stdout]     |
[INFO] [stdout] 205 |                     let r = a.mat_mul(&b).expect("mat_mul must succeed");
[INFO] [stdout]     |                               ------- ^^ expected `Matrix<Complex<f64>>`, found `&Matrix<Complex<f64>>`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Matrix<_>`
[INFO] [stdout]             found reference `&Matrix<_>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/math/contract_mul.rs:255:12
[INFO] [stdout]     |
[INFO] [stdout] 255 |     pub fn mat_mul(self, other: Matrix<T>) -> Result<Matrix<T>, TensorErrors>
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 205 -                     let r = a.mat_mul(&b).expect("mat_mul must succeed");
[INFO] [stdout] 205 +                     let r = a.mat_mul(b).expect("mat_mul must succeed");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/corr_conv.rs:459:41
[INFO] [stdout]     |
[INFO] [stdout] 459 |                     let r = a.corr_rows(&b).expect("corr_rows must succeed");
[INFO] [stdout]     |                               --------- ^^ expected `Matrix<Complex<f64>>`, found `&Matrix<Complex<f64>>`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Matrix<_>`
[INFO] [stdout]             found reference `&Matrix<_>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/math/corr_conv.rs:491:12
[INFO] [stdout]     |
[INFO] [stdout] 491 |     pub fn corr_rows(self, other: Matrix<T>) -> Result<Matrix<T>, TensorErrors> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 459 -                     let r = a.corr_rows(&b).expect("corr_rows must succeed");
[INFO] [stdout] 459 +                     let r = a.corr_rows(b).expect("corr_rows must succeed");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/corr_conv.rs:485:44
[INFO] [stdout]     |
[INFO] [stdout] 485 |                     let r = a.corr_rows_mt(&b).expect("corr_rows_mt must succeed");
[INFO] [stdout]     |                               ------------ ^^ expected `Matrix<Complex<f64>>`, found `&Matrix<Complex<f64>>`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Matrix<_>`
[INFO] [stdout]             found reference `&Matrix<_>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/math/corr_conv.rs:676:12
[INFO] [stdout]     |
[INFO] [stdout] 676 |     pub fn corr_rows_mt(self, other: Matrix<T>) -> Result<Matrix<T>, TensorErrors>
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 485 -                     let r = a.corr_rows_mt(&b).expect("corr_rows_mt must succeed");
[INFO] [stdout] 485 +                     let r = a.corr_rows_mt(b).expect("corr_rows_mt must succeed");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 3 arguments but 4 arguments were supplied
[INFO] [stdout]    --> benches/utilities/pool.rs:133:22
[INFO] [stdout]     |
[INFO] [stdout] 133 |                     .pool_indexed_mt(&pool_fn, kernel, stride, 0.0)
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^                           --- unexpected argument #4 of type `{float}`
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/utilities/matrix.rs:849:12
[INFO] [stdout]     |
[INFO] [stdout] 849 |     pub fn pool_indexed_mt<O: Clone + Send + Sync>(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]     |
[INFO] [stdout] 133 -                     .pool_indexed_mt(&pool_fn, kernel, stride, 0.0)
[INFO] [stdout] 133 +                     .pool_indexed_mt(&pool_fn, kernel, stride)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/contract_mul.rs:230:42
[INFO] [stdout]     |
[INFO] [stdout] 230 |                     let r = a.mat_mul_mt(&b).expect("mat_mul_mt must succeed");
[INFO] [stdout]     |                               ---------- ^^ expected `Matrix<Complex<f64>>`, found `&Matrix<Complex<f64>>`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Matrix<_>`
[INFO] [stdout]             found reference `&Matrix<_>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/math/contract_mul.rs:310:12
[INFO] [stdout]     |
[INFO] [stdout] 310 |     pub fn mat_mul_mt(self, other: Matrix<T>) -> Result<Matrix<T>, TensorErrors>
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 230 -                     let r = a.mat_mul_mt(&b).expect("mat_mul_mt must succeed");
[INFO] [stdout] 230 +                     let r = a.mat_mul_mt(b).expect("mat_mul_mt must succeed");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/corr_conv.rs:504:37
[INFO] [stdout]     |
[INFO] [stdout] 504 |         let a = Tensor::<f64>::rand(a_shape);
[INFO] [stdout]     |                 ------------------- ^^^^^^^ expected `Shape`, found `&Shape`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/utilities/tensor.rs:38:12
[INFO] [stdout]     |
[INFO] [stdout]  38 |     pub fn rand(shape: Shape) -> Tensor<T>
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] help: consider using clone here
[INFO] [stdout]     |
[INFO] [stdout] 504 |         let a = Tensor::<f64>::rand(a_shape.clone());
[INFO] [stdout]     |                                            ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/corr_conv.rs:505:37
[INFO] [stdout]     |
[INFO] [stdout] 505 |         let b = Tensor::<f64>::rand(b_shape);
[INFO] [stdout]     |                 ------------------- ^^^^^^^ expected `Shape`, found `&Shape`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/utilities/tensor.rs:38:12
[INFO] [stdout]     |
[INFO] [stdout]  38 |     pub fn rand(shape: Shape) -> Tensor<T>
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] help: consider using clone here
[INFO] [stdout]     |
[INFO] [stdout] 505 |         let b = Tensor::<f64>::rand(b_shape.clone());
[INFO] [stdout]     |                                            ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/utilities/pool.rs:145:36
[INFO] [stdout]     |
[INFO] [stdout] 145 |         let a = Tensor::from_value(&shape![n], 1.0);
[INFO] [stdout]     |                 ------------------ ^^^^^^^^^^ expected `Shape`, found `&Shape`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/utilities/tensor.rs:25:12
[INFO] [stdout]     |
[INFO] [stdout]  25 |     pub fn from_value(shape: Shape, value: T) -> Self
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 145 -         let a = Tensor::from_value(&shape![n], 1.0);
[INFO] [stdout] 145 +         let a = Tensor::from_value(shape![n], 1.0);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/contract_mul.rs:250:37
[INFO] [stdout]     |
[INFO] [stdout] 250 |         let a = Tensor::<f64>::rand(shape);
[INFO] [stdout]     |                 ------------------- ^^^^^ expected `Shape`, found `&Shape`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/utilities/tensor.rs:38:12
[INFO] [stdout]     |
[INFO] [stdout]  38 |     pub fn rand(shape: Shape) -> Tensor<T>
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] help: consider using clone here
[INFO] [stdout]     |
[INFO] [stdout] 250 |         let a = Tensor::<f64>::rand(shape.clone());
[INFO] [stdout]     |                                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> benches/utilities/pool.rs:152:41
[INFO] [stdout]      |
[INFO] [stdout]  152 |                 let r = pool_sum::<f64>(a.clone());
[INFO] [stdout]      |                         --------------- ^^^^^^^^^ expected `TensorSlice<'_, f64>`, found `Tensor<{float}>`
[INFO] [stdout]      |                         |
[INFO] [stdout]      |                         arguments to this function are incorrect
[INFO] [stdout]      |
[INFO] [stdout]      = note: expected struct `TensorSlice<'_, f64>`
[INFO] [stdout]                 found struct `Tensor<{float}>`
[INFO] [stdout] note: function defined here
[INFO] [stdout]     --> src/utilities/tensor.rs:1237:8
[INFO] [stdout]      |
[INFO] [stdout] 1237 | pub fn pool_sum<T: Add<Output = T> + Clone>(t: TensorSlice<T>) -> Option<T> {
[INFO] [stdout]      |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/contract_mul.rs:251:37
[INFO] [stdout]     |
[INFO] [stdout] 251 |         let b = Tensor::<f64>::rand(&shape![inner, 32, 32]);
[INFO] [stdout]     |                 ------------------- ^^^^^^^^^^^^^^^^^^^^^^ expected `Shape`, found `&Shape`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/utilities/tensor.rs:38:12
[INFO] [stdout]     |
[INFO] [stdout]  38 |     pub fn rand(shape: Shape) -> Tensor<T>
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 251 -         let b = Tensor::<f64>::rand(&shape![inner, 32, 32]);
[INFO] [stdout] 251 +         let b = Tensor::<f64>::rand(shape![inner, 32, 32]);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> benches/utilities/pool.rs:158:41
[INFO] [stdout]      |
[INFO] [stdout]  158 |                 let r = pool_min::<f64>(a.clone());
[INFO] [stdout]      |                         --------------- ^^^^^^^^^ expected `TensorSlice<'_, f64>`, found `Tensor<{float}>`
[INFO] [stdout]      |                         |
[INFO] [stdout]      |                         arguments to this function are incorrect
[INFO] [stdout]      |
[INFO] [stdout]      = note: expected struct `TensorSlice<'_, f64>`
[INFO] [stdout]                 found struct `Tensor<{float}>`
[INFO] [stdout] note: function defined here
[INFO] [stdout]     --> src/utilities/tensor.rs:1247:8
[INFO] [stdout]      |
[INFO] [stdout] 1247 | pub fn pool_min<T: PartialOrd + Clone>(t: TensorSlice<T>) -> Option<T> {
[INFO] [stdout]      |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/corr_conv.rs:519:36
[INFO] [stdout]     |
[INFO] [stdout] 519 |                     let r = a.corr(&b).expect("corr must succeed");
[INFO] [stdout]     |                               ---- ^^ expected `Tensor<f64>`, found `&Tensor<f64>`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Tensor<_>`
[INFO] [stdout]             found reference `&Tensor<_>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/math/corr_conv.rs:158:12
[INFO] [stdout]     |
[INFO] [stdout] 158 |     pub fn corr(self, other: Tensor<T>) -> Result<Tensor<T>, TensorErrors> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 519 -                     let r = a.corr(&b).expect("corr must succeed");
[INFO] [stdout] 519 +                     let r = a.corr(b).expect("corr must succeed");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/contract_mul.rs:256:57
[INFO] [stdout]     |
[INFO] [stdout] 256 |         let label = format!("{}-x{}x32x32", label_shape(a.shape()), inner);
[INFO] [stdout]     |                                             ----------- ^^^^^^^^^ expected `&Shape`, found `Shape`
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> benches/math/contract_mul.rs:16:4
[INFO] [stdout]     |
[INFO] [stdout]  16 | fn label_shape(shape: &Shape) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^ -------------
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 256 |         let label = format!("{}-x{}x32x32", label_shape(&a.shape()), inner);
[INFO] [stdout]     |                                                         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/corr_conv.rs:538:37
[INFO] [stdout]     |
[INFO] [stdout] 538 |         let a = Tensor::<f64>::rand(a_shape);
[INFO] [stdout]     |                 ------------------- ^^^^^^^ expected `Shape`, found `&Shape`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/utilities/tensor.rs:38:12
[INFO] [stdout]     |
[INFO] [stdout]  38 |     pub fn rand(shape: Shape) -> Tensor<T>
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] help: consider using clone here
[INFO] [stdout]     |
[INFO] [stdout] 538 |         let a = Tensor::<f64>::rand(a_shape.clone());
[INFO] [stdout]     |                                            ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/corr_conv.rs:539:37
[INFO] [stdout]     |
[INFO] [stdout] 539 |         let b = Tensor::<f64>::rand(b_shape);
[INFO] [stdout]     |                 ------------------- ^^^^^^^ expected `Shape`, found `&Shape`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/utilities/tensor.rs:38:12
[INFO] [stdout]     |
[INFO] [stdout]  38 |     pub fn rand(shape: Shape) -> Tensor<T>
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] help: consider using clone here
[INFO] [stdout]     |
[INFO] [stdout] 539 |         let b = Tensor::<f64>::rand(b_shape.clone());
[INFO] [stdout]     |                                            ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> benches/utilities/pool.rs:164:41
[INFO] [stdout]      |
[INFO] [stdout]  164 |                 let r = pool_max::<f64>(a.clone());
[INFO] [stdout]      |                         --------------- ^^^^^^^^^ expected `TensorSlice<'_, f64>`, found `Tensor<{float}>`
[INFO] [stdout]      |                         |
[INFO] [stdout]      |                         arguments to this function are incorrect
[INFO] [stdout]      |
[INFO] [stdout]      = note: expected struct `TensorSlice<'_, f64>`
[INFO] [stdout]                 found struct `Tensor<{float}>`
[INFO] [stdout] note: function defined here
[INFO] [stdout]     --> src/utilities/tensor.rs:1242:8
[INFO] [stdout]      |
[INFO] [stdout] 1242 | pub fn pool_max<T: PartialOrd + Clone>(t: TensorSlice<T>) -> Option<T> {
[INFO] [stdout]      |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> benches/utilities/pool.rs:170:41
[INFO] [stdout]      |
[INFO] [stdout]  170 |                 let r = pool_avg::<f64>(a.clone());
[INFO] [stdout]      |                         --------------- ^^^^^^^^^ expected `TensorSlice<'_, f64>`, found `Tensor<{float}>`
[INFO] [stdout]      |                         |
[INFO] [stdout]      |                         arguments to this function are incorrect
[INFO] [stdout]      |
[INFO] [stdout]      = note: expected struct `TensorSlice<'_, f64>`
[INFO] [stdout]                 found struct `Tensor<{float}>`
[INFO] [stdout] note: function defined here
[INFO] [stdout]     --> src/utilities/tensor.rs:1254:8
[INFO] [stdout]      |
[INFO] [stdout] 1254 | pub fn pool_avg<T: Add<Output = T> + Div<f64, Output = T> + Clone>(t: TensorSlice<T>) -> Option<T> {
[INFO] [stdout]      |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/fft.rs:971:41
[INFO] [stdout]     |
[INFO] [stdout] 971 |                 let r = m.fft_conv_cols(&k).expect("fft_conv_cols must succeed");
[INFO] [stdout]     |                           ------------- ^^ expected `Matrix<Complex<f64>>`, found `&Matrix<Complex<f64>>`
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Matrix<_>`
[INFO] [stdout]             found reference `&Matrix<_>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/math/fft_ops.rs:336:12
[INFO] [stdout]     |
[INFO] [stdout] 336 |     pub fn fft_conv_cols(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] note: the `fft_conv_cols` call is resolved to the method in `tensor_math::math::fft_ops::<impl tensor_math::definitions::matrix::Matrix<num::Complex<f64>>>`, shadowing the method of the same name on the inherent impl for `tensor_math::math::fft_ops::<impl tensor_math::definitions::matrix::Matrix<f64>>`
[INFO] [stdout]    --> benches/math/fft.rs:971:27
[INFO] [stdout]     |
[INFO] [stdout] 971 |                 let r = m.fft_conv_cols(&k).expect("fft_conv_cols must succeed");
[INFO] [stdout]     |                           ^^^^^^^^^^^^^ refers to `tensor_math::math::fft_ops::<impl tensor_math::definitions::matrix::Matrix<num::Complex<f64>>>::fft_conv_cols`
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 971 -                 let r = m.fft_conv_cols(&k).expect("fft_conv_cols must succeed");
[INFO] [stdout] 971 +                 let r = m.fft_conv_cols(k).expect("fft_conv_cols must succeed");
[INFO] [stdout]     |
[INFO] [stdout] help: you might have meant to call the other method; you can use the fully-qualified path to call it explicitly
[INFO] [stdout]     |
[INFO] [stdout] 971 -                 let r = m.fft_conv_cols(&k).expect("fft_conv_cols must succeed");
[INFO] [stdout] 971 +                 let r = Matrix::fft_conv_cols(&m, &k).expect("fft_conv_cols must succeed");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/corr_conv.rs:553:39
[INFO] [stdout]     |
[INFO] [stdout] 553 |                     let r = a.corr_mt(&b).expect("corr_mt must succeed");
[INFO] [stdout]     |                               ------- ^^ expected `Tensor<f64>`, found `&Tensor<f64>`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Tensor<_>`
[INFO] [stdout]             found reference `&Tensor<_>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/math/corr_conv.rs:372:12
[INFO] [stdout]     |
[INFO] [stdout] 372 |     pub fn corr_mt(self, other: Tensor<T>) -> Result<Tensor<T>, TensorErrors>
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 553 -                     let r = a.corr_mt(&b).expect("corr_mt must succeed");
[INFO] [stdout] 553 +                     let r = a.corr_mt(b).expect("corr_mt must succeed");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/utilities/pool.rs:188:45
[INFO] [stdout]     |
[INFO] [stdout] 188 |                 let r = pool_sum_mat::<f64>(a.clone());
[INFO] [stdout]     |                         ------------------- ^^^^^^^^^ expected `MatrixSlice<'_, f64>`, found `Matrix<{float}>`
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `MatrixSlice<'_, f64>`
[INFO] [stdout]                found struct `Matrix<{float}>`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/utilities/matrix.rs:933:8
[INFO] [stdout]     |
[INFO] [stdout] 933 | pub fn pool_sum_mat<T: Add<Output = T> + Clone>(m: MatrixSlice<T>) -> Option<T> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/utilities/pool.rs:194:45
[INFO] [stdout]     |
[INFO] [stdout] 194 |                 let r = pool_min_mat::<f64>(a.clone());
[INFO] [stdout]     |                         ------------------- ^^^^^^^^^ expected `MatrixSlice<'_, f64>`, found `Matrix<{float}>`
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `MatrixSlice<'_, f64>`
[INFO] [stdout]                found struct `Matrix<{float}>`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/utilities/matrix.rs:938:8
[INFO] [stdout]     |
[INFO] [stdout] 938 | pub fn pool_min_mat<T: PartialOrd + Clone>(m: MatrixSlice<T>) -> Option<T> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/corr_conv.rs:572:37
[INFO] [stdout]     |
[INFO] [stdout] 572 |         let a = Tensor::<f64>::rand(a_shape);
[INFO] [stdout]     |                 ------------------- ^^^^^^^ expected `Shape`, found `&Shape`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/utilities/tensor.rs:38:12
[INFO] [stdout]     |
[INFO] [stdout]  38 |     pub fn rand(shape: Shape) -> Tensor<T>
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] help: consider using clone here
[INFO] [stdout]     |
[INFO] [stdout] 572 |         let a = Tensor::<f64>::rand(a_shape.clone());
[INFO] [stdout]     |                                            ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/corr_conv.rs:573:37
[INFO] [stdout]     |
[INFO] [stdout] 573 |         let b = Tensor::<f64>::rand(b_shape);
[INFO] [stdout]     |                 ------------------- ^^^^^^^ expected `Shape`, found `&Shape`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/utilities/tensor.rs:38:12
[INFO] [stdout]     |
[INFO] [stdout]  38 |     pub fn rand(shape: Shape) -> Tensor<T>
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] help: consider using clone here
[INFO] [stdout]     |
[INFO] [stdout] 573 |         let b = Tensor::<f64>::rand(b_shape.clone());
[INFO] [stdout]     |                                            ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/utilities/pool.rs:200:45
[INFO] [stdout]     |
[INFO] [stdout] 200 |                 let r = pool_max_mat::<f64>(a.clone());
[INFO] [stdout]     |                         ------------------- ^^^^^^^^^ expected `MatrixSlice<'_, f64>`, found `Matrix<{float}>`
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `MatrixSlice<'_, f64>`
[INFO] [stdout]                found struct `Matrix<{float}>`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/utilities/matrix.rs:943:8
[INFO] [stdout]     |
[INFO] [stdout] 943 | pub fn pool_max_mat<T: PartialOrd + Clone>(m: MatrixSlice<T>) -> Option<T> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/contract_mul.rs:263:44
[INFO] [stdout]     |
[INFO] [stdout] 263 |                     let r = a.contract_mul(&b).expect("contract_mul must succeed");
[INFO] [stdout]     |                               ------------ ^^ expected `Tensor<f64>`, found `&Tensor<f64>`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Tensor<_>`
[INFO] [stdout]             found reference `&Tensor<_>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/math/contract_mul.rs:27:12
[INFO] [stdout]     |
[INFO] [stdout]  27 |     pub fn contract_mul(mut self, mut other: Tensor<T>) -> Result<Tensor<T>, TensorErrors>
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 263 -                     let r = a.contract_mul(&b).expect("contract_mul must succeed");
[INFO] [stdout] 263 +                     let r = a.contract_mul(b).expect("contract_mul must succeed");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/utilities/pool.rs:206:45
[INFO] [stdout]     |
[INFO] [stdout] 206 |                 let r = pool_avg_mat::<f64>(a.clone());
[INFO] [stdout]     |                         ------------------- ^^^^^^^^^ expected `MatrixSlice<'_, f64>`, found `Matrix<{float}>`
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `MatrixSlice<'_, f64>`
[INFO] [stdout]                found struct `Matrix<{float}>`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/utilities/matrix.rs:950:8
[INFO] [stdout]     |
[INFO] [stdout] 950 | pub fn pool_avg_mat<T: Add<Output = T> + Div<f64, Output = T> + Clone>(
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/corr_conv.rs:587:36
[INFO] [stdout]     |
[INFO] [stdout] 587 |                     let r = a.conv(&b).expect("conv must succeed");
[INFO] [stdout]     |                               ---- ^^ expected `Tensor<f64>`, found `&Tensor<f64>`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Tensor<_>`
[INFO] [stdout]             found reference `&Tensor<_>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/math/corr_conv.rs:219:12
[INFO] [stdout]     |
[INFO] [stdout] 219 |     pub fn conv(self, other: Tensor<T>) -> Result<Tensor<T>, TensorErrors> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 587 -                     let r = a.conv(&b).expect("conv must succeed");
[INFO] [stdout] 587 +                     let r = a.conv(b).expect("conv must succeed");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/corr_conv.rs:606:37
[INFO] [stdout]     |
[INFO] [stdout] 606 |         let a = Tensor::<f64>::rand(a_shape);
[INFO] [stdout]     |                 ------------------- ^^^^^^^ expected `Shape`, found `&Shape`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/utilities/tensor.rs:38:12
[INFO] [stdout]     |
[INFO] [stdout]  38 |     pub fn rand(shape: Shape) -> Tensor<T>
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] help: consider using clone here
[INFO] [stdout]     |
[INFO] [stdout] 606 |         let a = Tensor::<f64>::rand(a_shape.clone());
[INFO] [stdout]     |                                            ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/corr_conv.rs:607:37
[INFO] [stdout]     |
[INFO] [stdout] 607 |         let b = Tensor::<f64>::rand(b_shape);
[INFO] [stdout]     |                 ------------------- ^^^^^^^ expected `Shape`, found `&Shape`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/utilities/tensor.rs:38:12
[INFO] [stdout]     |
[INFO] [stdout]  38 |     pub fn rand(shape: Shape) -> Tensor<T>
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] help: consider using clone here
[INFO] [stdout]     |
[INFO] [stdout] 607 |         let b = Tensor::<f64>::rand(b_shape.clone());
[INFO] [stdout]     |                                            ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/contract_mul.rs:283:37
[INFO] [stdout]     |
[INFO] [stdout] 283 |         let a = Tensor::<f64>::rand(shape);
[INFO] [stdout]     |                 ------------------- ^^^^^ expected `Shape`, found `&Shape`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/utilities/tensor.rs:38:12
[INFO] [stdout]     |
[INFO] [stdout]  38 |     pub fn rand(shape: Shape) -> Tensor<T>
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] help: consider using clone here
[INFO] [stdout]     |
[INFO] [stdout] 283 |         let a = Tensor::<f64>::rand(shape.clone());
[INFO] [stdout]     |                                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/contract_mul.rs:284:37
[INFO] [stdout]     |
[INFO] [stdout] 284 |         let b = Tensor::<f64>::rand(&shape![inner, 32, 32]);
[INFO] [stdout]     |                 ------------------- ^^^^^^^^^^^^^^^^^^^^^^ expected `Shape`, found `&Shape`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/utilities/tensor.rs:38:12
[INFO] [stdout]     |
[INFO] [stdout]  38 |     pub fn rand(shape: Shape) -> Tensor<T>
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 284 -         let b = Tensor::<f64>::rand(&shape![inner, 32, 32]);
[INFO] [stdout] 284 +         let b = Tensor::<f64>::rand(shape![inner, 32, 32]);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0061, E0308, E0369.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0061`.
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/corr_conv.rs:621:39
[INFO] [stdout]     |
[INFO] [stdout] 621 |                     let r = a.conv_mt(&b).expect("conv_mt must succeed");
[INFO] [stdout]     |                               ------- ^^ expected `Tensor<f64>`, found `&Tensor<f64>`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Tensor<_>`
[INFO] [stdout]             found reference `&Tensor<_>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/math/corr_conv.rs:438:12
[INFO] [stdout]     |
[INFO] [stdout] 438 |     pub fn conv_mt(self, other: Tensor<T>) -> Result<Tensor<T>, TensorErrors>
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 621 -                     let r = a.conv_mt(&b).expect("conv_mt must succeed");
[INFO] [stdout] 621 +                     let r = a.conv_mt(b).expect("conv_mt must succeed");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/fft.rs:989:41
[INFO] [stdout]     |
[INFO] [stdout] 989 |                 let r = m.fft_corr_cols(&k).expect("fft_corr_cols must succeed");
[INFO] [stdout]     |                           ------------- ^^ expected `Matrix<Complex<f64>>`, found `&Matrix<Complex<f64>>`
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Matrix<_>`
[INFO] [stdout]             found reference `&Matrix<_>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/math/fft_ops.rs:358:12
[INFO] [stdout]     |
[INFO] [stdout] 358 |     pub fn fft_corr_cols(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] note: the `fft_corr_cols` call is resolved to the method in `tensor_math::math::fft_ops::<impl tensor_math::definitions::matrix::Matrix<num::Complex<f64>>>`, shadowing the method of the same name on the inherent impl for `tensor_math::math::fft_ops::<impl tensor_math::definitions::matrix::Matrix<f64>>`
[INFO] [stdout]    --> benches/math/fft.rs:989:27
[INFO] [stdout]     |
[INFO] [stdout] 989 |                 let r = m.fft_corr_cols(&k).expect("fft_corr_cols must succeed");
[INFO] [stdout]     |                           ^^^^^^^^^^^^^ refers to `tensor_math::math::fft_ops::<impl tensor_math::definitions::matrix::Matrix<num::Complex<f64>>>::fft_corr_cols`
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 989 -                 let r = m.fft_corr_cols(&k).expect("fft_corr_cols must succeed");
[INFO] [stdout] 989 +                 let r = m.fft_corr_cols(k).expect("fft_corr_cols must succeed");
[INFO] [stdout]     |
[INFO] [stdout] help: you might have meant to call the other method; you can use the fully-qualified path to call it explicitly
[INFO] [stdout]     |
[INFO] [stdout] 989 -                 let r = m.fft_corr_cols(&k).expect("fft_corr_cols must succeed");
[INFO] [stdout] 989 +                 let r = Matrix::fft_corr_cols(&m, &k).expect("fft_corr_cols must succeed");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/corr_conv.rs:655:36
[INFO] [stdout]     |
[INFO] [stdout] 655 |                     let r = a.corr(&b).expect("corr must succeed");
[INFO] [stdout]     |                               ---- ^^ expected `Tensor<Complex<f64>>`, found `&Tensor<Complex<f64>>`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Tensor<_>`
[INFO] [stdout]             found reference `&Tensor<_>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/math/corr_conv.rs:158:12
[INFO] [stdout]     |
[INFO] [stdout] 158 |     pub fn corr(self, other: Tensor<T>) -> Result<Tensor<T>, TensorErrors> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 655 -                     let r = a.corr(&b).expect("corr must succeed");
[INFO] [stdout] 655 +                     let r = a.corr(b).expect("corr must succeed");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `tensor_math` (bench "pool") due to 23 previous errors
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/contract_mul.rs:295:47
[INFO] [stdout]     |
[INFO] [stdout] 295 |                     let r = a.contract_mul_mt(&b).expect("contract_mul_mt must succeed");
[INFO] [stdout]     |                               --------------- ^^ expected `Tensor<f64>`, found `&Tensor<f64>`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Tensor<_>`
[INFO] [stdout]             found reference `&Tensor<_>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/math/contract_mul.rs:139:12
[INFO] [stdout]     |
[INFO] [stdout] 139 |     pub fn contract_mul_mt(mut self, mut other: Tensor<T>) -> Result<Tensor<T>, TensorErrors>
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 295 -                     let r = a.contract_mul_mt(&b).expect("contract_mul_mt must succeed");
[INFO] [stdout] 295 +                     let r = a.contract_mul_mt(b).expect("contract_mul_mt must succeed");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/corr_conv.rs:689:39
[INFO] [stdout]     |
[INFO] [stdout] 689 |                     let r = a.corr_mt(&b).expect("corr_mt must succeed");
[INFO] [stdout]     |                               ------- ^^ expected `Tensor<Complex<f64>>`, found `&Tensor<Complex<f64>>`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Tensor<_>`
[INFO] [stdout]             found reference `&Tensor<_>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/math/corr_conv.rs:372:12
[INFO] [stdout]     |
[INFO] [stdout] 372 |     pub fn corr_mt(self, other: Tensor<T>) -> Result<Tensor<T>, TensorErrors>
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 689 -                     let r = a.corr_mt(&b).expect("corr_mt must succeed");
[INFO] [stdout] 689 +                     let r = a.corr_mt(b).expect("corr_mt must succeed");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/corr_conv.rs:723:36
[INFO] [stdout]     |
[INFO] [stdout] 723 |                     let r = a.conv(&b).expect("conv must succeed");
[INFO] [stdout]     |                               ---- ^^ expected `Tensor<Complex<f64>>`, found `&Tensor<Complex<f64>>`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Tensor<_>`
[INFO] [stdout]             found reference `&Tensor<_>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/math/corr_conv.rs:219:12
[INFO] [stdout]     |
[INFO] [stdout] 219 |     pub fn conv(self, other: Tensor<T>) -> Result<Tensor<T>, TensorErrors> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 723 -                     let r = a.conv(&b).expect("conv must succeed");
[INFO] [stdout] 723 +                     let r = a.conv(b).expect("conv must succeed");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/corr_conv.rs:757:39
[INFO] [stdout]     |
[INFO] [stdout] 757 |                     let r = a.conv_mt(&b).expect("conv_mt must succeed");
[INFO] [stdout]     |                               ------- ^^ expected `Tensor<Complex<f64>>`, found `&Tensor<Complex<f64>>`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Tensor<_>`
[INFO] [stdout]             found reference `&Tensor<_>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/math/corr_conv.rs:438:12
[INFO] [stdout]     |
[INFO] [stdout] 438 |     pub fn conv_mt(self, other: Tensor<T>) -> Result<Tensor<T>, TensorErrors>
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 757 -                     let r = a.conv_mt(&b).expect("conv_mt must succeed");
[INFO] [stdout] 757 +                     let r = a.conv_mt(b).expect("conv_mt must succeed");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> benches/math/fft.rs:1007:41
[INFO] [stdout]      |
[INFO] [stdout] 1007 |                 let r = m.fft_conv_rows(&k).expect("fft_conv_rows must succeed");
[INFO] [stdout]      |                           ------------- ^^ expected `Matrix<Complex<f64>>`, found `&Matrix<Complex<f64>>`
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           arguments to this method are incorrect
[INFO] [stdout]      |
[INFO] [stdout]      = note: expected struct `Matrix<_>`
[INFO] [stdout]              found reference `&Matrix<_>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]     --> src/math/fft_ops.rs:366:12
[INFO] [stdout]      |
[INFO] [stdout]  366 |     pub fn fft_conv_rows(
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] note: the `fft_conv_rows` call is resolved to the method in `tensor_math::math::fft_ops::<impl tensor_math::definitions::matrix::Matrix<num::Complex<f64>>>`, shadowing the method of the same name on the inherent impl for `tensor_math::math::fft_ops::<impl tensor_math::definitions::matrix::Matrix<f64>>`
[INFO] [stdout]     --> benches/math/fft.rs:1007:27
[INFO] [stdout]      |
[INFO] [stdout] 1007 |                 let r = m.fft_conv_rows(&k).expect("fft_conv_rows must succeed");
[INFO] [stdout]      |                           ^^^^^^^^^^^^^ refers to `tensor_math::math::fft_ops::<impl tensor_math::definitions::matrix::Matrix<num::Complex<f64>>>::fft_conv_rows`
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]      |
[INFO] [stdout] 1007 -                 let r = m.fft_conv_rows(&k).expect("fft_conv_rows must succeed");
[INFO] [stdout] 1007 +                 let r = m.fft_conv_rows(k).expect("fft_conv_rows must succeed");
[INFO] [stdout]      |
[INFO] [stdout] help: you might have meant to call the other method; you can use the fully-qualified path to call it explicitly
[INFO] [stdout]      |
[INFO] [stdout] 1007 -                 let r = m.fft_conv_rows(&k).expect("fft_conv_rows must succeed");
[INFO] [stdout] 1007 +                 let r = Matrix::fft_conv_rows(&m, &k).expect("fft_conv_rows must succeed");
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/contract_mul.rs:327:44
[INFO] [stdout]     |
[INFO] [stdout] 327 |                     let r = a.contract_mul(&b).expect("contract_mul must succeed");
[INFO] [stdout]     |                               ------------ ^^ expected `Tensor<Complex<f64>>`, found `&Tensor<Complex<f64>>`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Tensor<_>`
[INFO] [stdout]             found reference `&Tensor<_>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/math/contract_mul.rs:27:12
[INFO] [stdout]     |
[INFO] [stdout]  27 |     pub fn contract_mul(mut self, mut other: Tensor<T>) -> Result<Tensor<T>, TensorErrors>
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 327 -                     let r = a.contract_mul(&b).expect("contract_mul must succeed");
[INFO] [stdout] 327 +                     let r = a.contract_mul(b).expect("contract_mul must succeed");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/corr_conv.rs:781:37
[INFO] [stdout]     |
[INFO] [stdout] 781 |         let a = Tensor::<f64>::rand(a_shape);
[INFO] [stdout]     |                 ------------------- ^^^^^^^ expected `Shape`, found `&Shape`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/utilities/tensor.rs:38:12
[INFO] [stdout]     |
[INFO] [stdout]  38 |     pub fn rand(shape: Shape) -> Tensor<T>
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] help: consider using clone here
[INFO] [stdout]     |
[INFO] [stdout] 781 |         let a = Tensor::<f64>::rand(a_shape.clone());
[INFO] [stdout]     |                                            ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/corr_conv.rs:782:37
[INFO] [stdout]     |
[INFO] [stdout] 782 |         let b = Tensor::<f64>::rand(b_shape);
[INFO] [stdout]     |                 ------------------- ^^^^^^^ expected `Shape`, found `&Shape`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/utilities/tensor.rs:38:12
[INFO] [stdout]     |
[INFO] [stdout]  38 |     pub fn rand(shape: Shape) -> Tensor<T>
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] help: consider using clone here
[INFO] [stdout]     |
[INFO] [stdout] 782 |         let b = Tensor::<f64>::rand(b_shape.clone());
[INFO] [stdout]     |                                            ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/corr_conv.rs:805:41
[INFO] [stdout]     |
[INFO] [stdout] 805 |                     let r = a.corr_axes(&b, &axes).expect("corr_axes must succeed");
[INFO] [stdout]     |                               --------- ^^ expected `Tensor<f64>`, found `&Tensor<f64>`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Tensor<_>`
[INFO] [stdout]             found reference `&Tensor<_>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/math/corr_conv.rs:14:12
[INFO] [stdout]     |
[INFO] [stdout]  14 |     pub fn corr_axes(
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 805 -                     let r = a.corr_axes(&b, &axes).expect("corr_axes must succeed");
[INFO] [stdout] 805 +                     let r = a.corr_axes(b, &axes).expect("corr_axes must succeed");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/corr_conv.rs:823:37
[INFO] [stdout]     |
[INFO] [stdout] 823 |         let a = Tensor::<f64>::rand(a_shape);
[INFO] [stdout]     |                 ------------------- ^^^^^^^ expected `Shape`, found `&Shape`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/utilities/tensor.rs:38:12
[INFO] [stdout]     |
[INFO] [stdout]  38 |     pub fn rand(shape: Shape) -> Tensor<T>
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] help: consider using clone here
[INFO] [stdout]     |
[INFO] [stdout] 823 |         let a = Tensor::<f64>::rand(a_shape.clone());
[INFO] [stdout]     |                                            ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/corr_conv.rs:824:37
[INFO] [stdout]     |
[INFO] [stdout] 824 |         let b = Tensor::<f64>::rand(b_shape);
[INFO] [stdout]     |                 ------------------- ^^^^^^^ expected `Shape`, found `&Shape`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/utilities/tensor.rs:38:12
[INFO] [stdout]     |
[INFO] [stdout]  38 |     pub fn rand(shape: Shape) -> Tensor<T>
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] help: consider using clone here
[INFO] [stdout]     |
[INFO] [stdout] 824 |         let b = Tensor::<f64>::rand(b_shape.clone());
[INFO] [stdout]     |                                            ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/corr_conv.rs:847:39
[INFO] [stdout]     |
[INFO] [stdout] 847 |                         .corr_axes_mt(&b, &axes)
[INFO] [stdout]     |                          ------------ ^^ expected `Tensor<f64>`, found `&Tensor<f64>`
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Tensor<_>`
[INFO] [stdout]             found reference `&Tensor<_>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/math/corr_conv.rs:225:12
[INFO] [stdout]     |
[INFO] [stdout] 225 |     pub fn corr_axes_mt(
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 847 -                         .corr_axes_mt(&b, &axes)
[INFO] [stdout] 847 +                         .corr_axes_mt(b, &axes)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/contract_mul.rs:359:47
[INFO] [stdout]     |
[INFO] [stdout] 359 |                     let r = a.contract_mul_mt(&b).expect("contract_mul_mt must succeed");
[INFO] [stdout]     |                               --------------- ^^ expected `Tensor<Complex<f64>>`, found `&Tensor<Complex<f64>>`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Tensor<_>`
[INFO] [stdout]             found reference `&Tensor<_>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/math/contract_mul.rs:139:12
[INFO] [stdout]     |
[INFO] [stdout] 139 |     pub fn contract_mul_mt(mut self, mut other: Tensor<T>) -> Result<Tensor<T>, TensorErrors>
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 359 -                     let r = a.contract_mul_mt(&b).expect("contract_mul_mt must succeed");
[INFO] [stdout] 359 +                     let r = a.contract_mul_mt(b).expect("contract_mul_mt must succeed");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> benches/math/fft.rs:1025:41
[INFO] [stdout]      |
[INFO] [stdout] 1025 |                 let r = m.fft_corr_rows(&k).expect("fft_corr_rows must succeed");
[INFO] [stdout]      |                           ------------- ^^ expected `Matrix<Complex<f64>>`, found `&Matrix<Complex<f64>>`
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           arguments to this method are incorrect
[INFO] [stdout]      |
[INFO] [stdout]      = note: expected struct `Matrix<_>`
[INFO] [stdout]              found reference `&Matrix<_>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]     --> src/math/fft_ops.rs:388:12
[INFO] [stdout]      |
[INFO] [stdout]  388 |     pub fn fft_corr_rows(
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] note: the `fft_corr_rows` call is resolved to the method in `tensor_math::math::fft_ops::<impl tensor_math::definitions::matrix::Matrix<num::Complex<f64>>>`, shadowing the method of the same name on the inherent impl for `tensor_math::math::fft_ops::<impl tensor_math::definitions::matrix::Matrix<f64>>`
[INFO] [stdout]     --> benches/math/fft.rs:1025:27
[INFO] [stdout]      |
[INFO] [stdout] 1025 |                 let r = m.fft_corr_rows(&k).expect("fft_corr_rows must succeed");
[INFO] [stdout]      |                           ^^^^^^^^^^^^^ refers to `tensor_math::math::fft_ops::<impl tensor_math::definitions::matrix::Matrix<num::Complex<f64>>>::fft_corr_rows`
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]      |
[INFO] [stdout] 1025 -                 let r = m.fft_corr_rows(&k).expect("fft_corr_rows must succeed");
[INFO] [stdout] 1025 +                 let r = m.fft_corr_rows(k).expect("fft_corr_rows must succeed");
[INFO] [stdout]      |
[INFO] [stdout] help: you might have meant to call the other method; you can use the fully-qualified path to call it explicitly
[INFO] [stdout]      |
[INFO] [stdout] 1025 -                 let r = m.fft_corr_rows(&k).expect("fft_corr_rows must succeed");
[INFO] [stdout] 1025 +                 let r = Matrix::fft_corr_rows(&m, &k).expect("fft_corr_rows must succeed");
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/corr_conv.rs:889:41
[INFO] [stdout]     |
[INFO] [stdout] 889 |                     let r = a.corr_axes(&b, &axes).expect("corr_axes must succeed");
[INFO] [stdout]     |                               --------- ^^ expected `Tensor<Complex<f64>>`, found `&Tensor<Complex<f64>>`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Tensor<_>`
[INFO] [stdout]             found reference `&Tensor<_>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/math/corr_conv.rs:14:12
[INFO] [stdout]     |
[INFO] [stdout]  14 |     pub fn corr_axes(
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 889 -                     let r = a.corr_axes(&b, &axes).expect("corr_axes must succeed");
[INFO] [stdout] 889 +                     let r = a.corr_axes(b, &axes).expect("corr_axes must succeed");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> benches/math/corr_conv.rs:931:39
[INFO] [stdout]     |
[INFO] [stdout] 931 |                         .corr_axes_mt(&b, &axes)
[INFO] [stdout]     |                          ------------ ^^ expected `Tensor<Complex<f64>>`, found `&Tensor<Complex<f64>>`
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Tensor<_>`
[INFO] [stdout]             found reference `&Tensor<_>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/math/corr_conv.rs:225:12
[INFO] [stdout]     |
[INFO] [stdout] 225 |     pub fn corr_axes_mt(
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 931 -                         .corr_axes_mt(&b, &axes)
[INFO] [stdout] 931 +                         .corr_axes_mt(b, &axes)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> benches/math/fft.rs:1043:36
[INFO] [stdout]      |
[INFO] [stdout] 1043 |                 let r = m.fft_conv(&k);
[INFO] [stdout]      |                           -------- ^^ expected `Matrix<Complex<f64>>`, found `&Matrix<Complex<f64>>`
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           arguments to this method are incorrect
[INFO] [stdout]      |
[INFO] [stdout]      = note: expected struct `Matrix<_>`
[INFO] [stdout]              found reference `&Matrix<_>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]     --> src/math/fft_ops.rs:396:12
[INFO] [stdout]      |
[INFO] [stdout]  396 |     pub fn fft_conv(self, other: Matrix<Complex64>) -> Matrix<Complex64> {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] note: the `fft_conv` call is resolved to the method in `tensor_math::math::fft_ops::<impl tensor_math::definitions::matrix::Matrix<num::Complex<f64>>>`, shadowing the method of the same name on the inherent impl for `tensor_math::math::fft_ops::<impl tensor_math::definitions::matrix::Matrix<f64>>`
[INFO] [stdout]     --> benches/math/fft.rs:1043:27
[INFO] [stdout]      |
[INFO] [stdout] 1043 |                 let r = m.fft_conv(&k);
[INFO] [stdout]      |                           ^^^^^^^^ refers to `tensor_math::math::fft_ops::<impl tensor_math::definitions::matrix::Matrix<num::Complex<f64>>>::fft_conv`
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]      |
[INFO] [stdout] 1043 -                 let r = m.fft_conv(&k);
[INFO] [stdout] 1043 +                 let r = m.fft_conv(k);
[INFO] [stdout]      |
[INFO] [stdout] help: you might have meant to call the other method; you can use the fully-qualified path to call it explicitly
[INFO] [stdout]      |
[INFO] [stdout] 1043 -                 let r = m.fft_conv(&k);
[INFO] [stdout] 1043 +                 let r = Matrix::fft_conv(&m, &k);
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0308, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> benches/math/fft.rs:1061:36
[INFO] [stdout]      |
[INFO] [stdout] 1061 |                 let r = m.fft_corr(&k);
[INFO] [stdout]      |                           -------- ^^ expected `Matrix<Complex<f64>>`, found `&Matrix<Complex<f64>>`
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           arguments to this method are incorrect
[INFO] [stdout]      |
[INFO] [stdout]      = note: expected struct `Matrix<_>`
[INFO] [stdout]              found reference `&Matrix<_>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]     --> src/math/fft_ops.rs:415:12
[INFO] [stdout]      |
[INFO] [stdout]  415 |     pub fn fft_corr(self, other: Matrix<Complex64>) -> Matrix<Complex64> {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] note: the `fft_corr` call is resolved to the method in `tensor_math::math::fft_ops::<impl tensor_math::definitions::matrix::Matrix<num::Complex<f64>>>`, shadowing the method of the same name on the inherent impl for `tensor_math::math::fft_ops::<impl tensor_math::definitions::matrix::Matrix<f64>>`
[INFO] [stdout]     --> benches/math/fft.rs:1061:27
[INFO] [stdout]      |
[INFO] [stdout] 1061 |                 let r = m.fft_corr(&k);
[INFO] [stdout]      |                           ^^^^^^^^ refers to `tensor_math::math::fft_ops::<impl tensor_math::definitions::matrix::Matrix<num::Complex<f64>>>::fft_corr`
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]      |
[INFO] [stdout] 1061 -                 let r = m.fft_corr(&k);
[INFO] [stdout] 1061 +                 let r = m.fft_corr(k);
[INFO] [stdout]      |
[INFO] [stdout] help: you might have meant to call the other method; you can use the fully-qualified path to call it explicitly
[INFO] [stdout]      |
[INFO] [stdout] 1061 -                 let r = m.fft_corr(&k);
[INFO] [stdout] 1061 +                 let r = Matrix::fft_corr(&m, &k);
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `tensor_math` (bench "contract_mul") due to 19 previous errors
[INFO] [stderr] error: could not compile `tensor_math` (bench "corr_conv") due to 42 previous errors
[INFO] [stdout] error[E0382]: use of moved value: `t`
[INFO] [stdout]    --> benches/math/fft.rs:572:17
[INFO] [stdout]     |
[INFO] [stdout] 563 |         let t = rand_complex_tensor(s);
[INFO] [stdout]     |             -   ---------------------- this reinitialization might get skipped
[INFO] [stdout]     |             |
[INFO] [stdout]     |             move occurs because `t` has type `Tensor<num::Complex<f64>>`, which does not implement the `Copy` trait
[INFO] [stdout] ...
[INFO] [stdout] 567 |         for axis in 0..s.rank() {
[INFO] [stdout]     |         ----------------------- inside of this loop
[INFO] [stdout] ...
[INFO] [stdout] 572 |                 |b, _| {
[INFO] [stdout]     |                 ^^^^^^ value moved into closure here, in previous iteration of loop
[INFO] [stdout] 573 |                     b.iter(|| {
[INFO] [stdout] 574 |                         let r = t.fft_single_axis(axis).expect("fft must succeed");
[INFO] [stdout]     |                                 - use occurs due to use in closure
[INFO] [stdout]     |
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 574 |                         let r = t.clone().fft_single_axis(axis).expect("fft must succeed");
[INFO] [stdout]     |                                  ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `t`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/math/fft.rs:573:28
[INFO] [stdout]     |
[INFO] [stdout] 563 |         let t = rand_complex_tensor(s);
[INFO] [stdout]     |             -   ---------------------- move occurs because `t` has type `Tensor<num::Complex<f64>>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 572 |                 |b, _| {
[INFO] [stdout]     |                 ------ captured by this `FnMut` closure
[INFO] [stdout] 573 |                     b.iter(|| {
[INFO] [stdout]     |                            ^^ `t` is moved here
[INFO] [stdout] 574 |                         let r = t.fft_single_axis(axis).expect("fft must succeed");
[INFO] [stdout]     |                                 - variable moved due to use in closure
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/benchmark_group.rs:265:12
[INFO] [stdout]     |
[INFO] [stdout] 265 |         F: FnMut(&mut Bencher<'_, M>, &I),
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 574 |                         let r = t.clone().fft_single_axis(axis).expect("fft must succeed");
[INFO] [stdout]     |                                  ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `t`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/math/fft.rs:574:33
[INFO] [stdout]     |
[INFO] [stdout] 563 |         let t = rand_complex_tensor(s);
[INFO] [stdout]     |             -   ---------------------- move occurs because `t` has type `Tensor<num::Complex<f64>>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 573 |                     b.iter(|| {
[INFO] [stdout]     |                            -- captured by this `FnMut` closure
[INFO] [stdout] 574 |                         let r = t.fft_single_axis(axis).expect("fft must succeed");
[INFO] [stdout]     |                                 ^ --------------------- `t` moved due to this method call
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 `t` is moved here
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/bencher.rs:85:12
[INFO] [stdout]     |
[INFO] [stdout]  85 |         R: FnMut() -> O,
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] note: `tensor_math::math::fft_ops::<impl tensor_math::definitions::tensor::Tensor<num::Complex<f64>>>::fft_single_axis` takes ownership of the receiver `self`, which moves `t`
[INFO] [stdout]    --> src/math/fft_ops.rs:15:28
[INFO] [stdout]     |
[INFO] [stdout]  15 |     pub fn fft_single_axis(self, axis: usize) -> Result<Tensor<Complex64>, TensorErrors> {
[INFO] [stdout]     |                            ^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 574 |                         let r = t.clone().fft_single_axis(axis).expect("fft must succeed");
[INFO] [stdout]     |                                  ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `t`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/math/fft.rs:610:20
[INFO] [stdout]     |
[INFO] [stdout] 594 |         let t = rand_complex_tensor(s);
[INFO] [stdout]     |             -   ---------------------- move occurs because `t` has type `Tensor<num::Complex<f64>>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 609 |         group.bench_with_input(BenchmarkId::new("c64/tensor", &label), &label, |b, _| {
[INFO] [stdout]     |                                                                                ------ captured by this `FnMut` closure
[INFO] [stdout] 610 |             b.iter(|| {
[INFO] [stdout]     |                    ^^ `t` is moved here
[INFO] [stdout] 611 |                 let r = t.fft_axes(axes).expect("fft must succeed");
[INFO] [stdout]     |                         - variable moved due to use in closure
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/benchmark_group.rs:265:12
[INFO] [stdout]     |
[INFO] [stdout] 265 |         F: FnMut(&mut Bencher<'_, M>, &I),
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 611 |                 let r = t.clone().fft_axes(axes).expect("fft must succeed");
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `t`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/math/fft.rs:611:25
[INFO] [stdout]     |
[INFO] [stdout] 594 |         let t = rand_complex_tensor(s);
[INFO] [stdout]     |             -   ---------------------- move occurs because `t` has type `Tensor<num::Complex<f64>>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 610 |             b.iter(|| {
[INFO] [stdout]     |                    -- captured by this `FnMut` closure
[INFO] [stdout] 611 |                 let r = t.fft_axes(axes).expect("fft must succeed");
[INFO] [stdout]     |                         ^ -------------- `t` moved due to this method call
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `t` is moved here
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/bencher.rs:85:12
[INFO] [stdout]     |
[INFO] [stdout]  85 |         R: FnMut() -> O,
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] note: `tensor_math::math::fft_ops::<impl tensor_math::definitions::tensor::Tensor<num::Complex<f64>>>::fft_axes` takes ownership of the receiver `self`, which moves `t`
[INFO] [stdout]    --> src/math/fft_ops.rs:44:25
[INFO] [stdout]     |
[INFO] [stdout]  44 |     pub fn fft_axes(mut self, axes: &HashSet<usize>) -> Result<Tensor<Complex64>, TensorErrors> {
[INFO] [stdout]     |                         ^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 611 |                 let r = t.clone().fft_axes(axes).expect("fft must succeed");
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `t`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/math/fft.rs:635:20
[INFO] [stdout]     |
[INFO] [stdout] 630 |         let t = rand_complex_tensor(s);
[INFO] [stdout]     |             -   ---------------------- move occurs because `t` has type `Tensor<num::Complex<f64>>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 634 |         group.bench_with_input(BenchmarkId::new("c64/tensor", &label), &label, |b, _| {
[INFO] [stdout]     |                                                                                ------ captured by this `FnMut` closure
[INFO] [stdout] 635 |             b.iter(|| {
[INFO] [stdout]     |                    ^^ `t` is moved here
[INFO] [stdout] 636 |                 let r = t.fft().expect("fft must succeed");
[INFO] [stdout]     |                         - variable moved due to use in closure
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/benchmark_group.rs:265:12
[INFO] [stdout]     |
[INFO] [stdout] 265 |         F: FnMut(&mut Bencher<'_, M>, &I),
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 636 |                 let r = t.clone().fft().expect("fft must succeed");
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `t`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/math/fft.rs:636:25
[INFO] [stdout]     |
[INFO] [stdout] 630 |         let t = rand_complex_tensor(s);
[INFO] [stdout]     |             -   ---------------------- move occurs because `t` has type `Tensor<num::Complex<f64>>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 635 |             b.iter(|| {
[INFO] [stdout]     |                    -- captured by this `FnMut` closure
[INFO] [stdout] 636 |                 let r = t.fft().expect("fft must succeed");
[INFO] [stdout]     |                         ^ ----- `t` moved due to this method call
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `t` is moved here
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/bencher.rs:85:12
[INFO] [stdout]     |
[INFO] [stdout]  85 |         R: FnMut() -> O,
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] note: `tensor_math::math::fft_ops::<impl tensor_math::definitions::tensor::Tensor<num::Complex<f64>>>::fft` takes ownership of the receiver `self`, which moves `t`
[INFO] [stdout]    --> src/math/fft_ops.rs:60:16
[INFO] [stdout]     |
[INFO] [stdout]  60 |     pub fn fft(self) -> Result<Tensor<Complex64>, TensorErrors> {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 636 |                 let r = t.clone().fft().expect("fft must succeed");
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0382]: use of moved value: `t`
[INFO] [stdout]    --> benches/math/fft.rs:665:17
[INFO] [stdout]     |
[INFO] [stdout] 656 |         let t = rand_complex_tensor(s);
[INFO] [stdout]     |             -   ---------------------- this reinitialization might get skipped
[INFO] [stdout]     |             |
[INFO] [stdout]     |             move occurs because `t` has type `Tensor<num::Complex<f64>>`, which does not implement the `Copy` trait
[INFO] [stdout] ...
[INFO] [stdout] 660 |         for axis in 0..s.rank() {
[INFO] [stdout]     |         ----------------------- inside of this loop
[INFO] [stdout] ...
[INFO] [stdout] 665 |                 |b, _| {
[INFO] [stdout]     |                 ^^^^^^ value moved into closure here, in previous iteration of loop
[INFO] [stdout] 666 |                     b.iter(|| {
[INFO] [stdout] 667 |                         let r = t.ifft_single_axis(axis).expect("ifft must succeed");
[INFO] [stdout]     |                                 - use occurs due to use in closure
[INFO] [stdout]     |
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 667 |                         let r = t.clone().ifft_single_axis(axis).expect("ifft must succeed");
[INFO] [stdout]     |                                  ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `t`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/math/fft.rs:666:28
[INFO] [stdout]     |
[INFO] [stdout] 656 |         let t = rand_complex_tensor(s);
[INFO] [stdout]     |             -   ---------------------- move occurs because `t` has type `Tensor<num::Complex<f64>>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 665 |                 |b, _| {
[INFO] [stdout]     |                 ------ captured by this `FnMut` closure
[INFO] [stdout] 666 |                     b.iter(|| {
[INFO] [stdout]     |                            ^^ `t` is moved here
[INFO] [stdout] 667 |                         let r = t.ifft_single_axis(axis).expect("ifft must succeed");
[INFO] [stdout]     |                                 - variable moved due to use in closure
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/benchmark_group.rs:265:12
[INFO] [stdout]     |
[INFO] [stdout] 265 |         F: FnMut(&mut Bencher<'_, M>, &I),
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 667 |                         let r = t.clone().ifft_single_axis(axis).expect("ifft must succeed");
[INFO] [stdout]     |                                  ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `t`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/math/fft.rs:667:33
[INFO] [stdout]     |
[INFO] [stdout] 656 |         let t = rand_complex_tensor(s);
[INFO] [stdout]     |             -   ---------------------- move occurs because `t` has type `Tensor<num::Complex<f64>>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 666 |                     b.iter(|| {
[INFO] [stdout]     |                            -- captured by this `FnMut` closure
[INFO] [stdout] 667 |                         let r = t.ifft_single_axis(axis).expect("ifft must succeed");
[INFO] [stdout]     |                                 ^ ---------------------- `t` moved due to this method call
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 `t` is moved here
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/bencher.rs:85:12
[INFO] [stdout]     |
[INFO] [stdout]  85 |         R: FnMut() -> O,
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] note: `tensor_math::math::fft_ops::<impl tensor_math::definitions::tensor::Tensor<num::Complex<f64>>>::ifft_single_axis` takes ownership of the receiver `self`, which moves `t`
[INFO] [stdout]    --> src/math/fft_ops.rs:67:29
[INFO] [stdout]     |
[INFO] [stdout]  67 |     pub fn ifft_single_axis(self, axis: usize) -> Result<Tensor<Complex64>, TensorErrors> {
[INFO] [stdout]     |                             ^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 667 |                         let r = t.clone().ifft_single_axis(axis).expect("ifft must succeed");
[INFO] [stdout]     |                                  ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `t`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/math/fft.rs:703:20
[INFO] [stdout]     |
[INFO] [stdout] 687 |         let t = rand_complex_tensor(s);
[INFO] [stdout]     |             -   ---------------------- move occurs because `t` has type `Tensor<num::Complex<f64>>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 702 |         group.bench_with_input(BenchmarkId::new("c64/tensor", &label), &label, |b, _| {
[INFO] [stdout]     |                                                                                ------ captured by this `FnMut` closure
[INFO] [stdout] 703 |             b.iter(|| {
[INFO] [stdout]     |                    ^^ `t` is moved here
[INFO] [stdout] 704 |                 let r = t.ifft_axes(axes).expect("ifft must succeed");
[INFO] [stdout]     |                         - variable moved due to use in closure
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/benchmark_group.rs:265:12
[INFO] [stdout]     |
[INFO] [stdout] 265 |         F: FnMut(&mut Bencher<'_, M>, &I),
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 704 |                 let r = t.clone().ifft_axes(axes).expect("ifft must succeed");
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `t`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/math/fft.rs:704:25
[INFO] [stdout]     |
[INFO] [stdout] 687 |         let t = rand_complex_tensor(s);
[INFO] [stdout]     |             -   ---------------------- move occurs because `t` has type `Tensor<num::Complex<f64>>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 703 |             b.iter(|| {
[INFO] [stdout]     |                    -- captured by this `FnMut` closure
[INFO] [stdout] 704 |                 let r = t.ifft_axes(axes).expect("ifft must succeed");
[INFO] [stdout]     |                         ^ --------------- `t` moved due to this method call
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `t` is moved here
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/bencher.rs:85:12
[INFO] [stdout]     |
[INFO] [stdout]  85 |         R: FnMut() -> O,
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] note: `tensor_math::math::fft_ops::<impl tensor_math::definitions::tensor::Tensor<num::Complex<f64>>>::ifft_axes` takes ownership of the receiver `self`, which moves `t`
[INFO] [stdout]    --> src/math/fft_ops.rs:97:26
[INFO] [stdout]     |
[INFO] [stdout]  97 |     pub fn ifft_axes(mut self, axes: &HashSet<usize>) -> Result<Tensor<Complex64>, TensorErrors> {
[INFO] [stdout]     |                          ^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 704 |                 let r = t.clone().ifft_axes(axes).expect("ifft must succeed");
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `t`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/math/fft.rs:728:20
[INFO] [stdout]     |
[INFO] [stdout] 723 |         let t = rand_complex_tensor(s);
[INFO] [stdout]     |             -   ---------------------- move occurs because `t` has type `Tensor<num::Complex<f64>>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 727 |         group.bench_with_input(BenchmarkId::new("c64/tensor", &label), &label, |b, _| {
[INFO] [stdout]     |                                                                                ------ captured by this `FnMut` closure
[INFO] [stdout] 728 |             b.iter(|| {
[INFO] [stdout]     |                    ^^ `t` is moved here
[INFO] [stdout] 729 |                 let r = t.ifft().expect("ifft must succeed");
[INFO] [stdout]     |                         - variable moved due to use in closure
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/benchmark_group.rs:265:12
[INFO] [stdout]     |
[INFO] [stdout] 265 |         F: FnMut(&mut Bencher<'_, M>, &I),
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 729 |                 let r = t.clone().ifft().expect("ifft must succeed");
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `t`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/math/fft.rs:729:25
[INFO] [stdout]     |
[INFO] [stdout] 723 |         let t = rand_complex_tensor(s);
[INFO] [stdout]     |             -   ---------------------- move occurs because `t` has type `Tensor<num::Complex<f64>>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 728 |             b.iter(|| {
[INFO] [stdout]     |                    -- captured by this `FnMut` closure
[INFO] [stdout] 729 |                 let r = t.ifft().expect("ifft must succeed");
[INFO] [stdout]     |                         ^ ------ `t` moved due to this method call
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `t` is moved here
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/bencher.rs:85:12
[INFO] [stdout]     |
[INFO] [stdout]  85 |         R: FnMut() -> O,
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] note: `tensor_math::math::fft_ops::<impl tensor_math::definitions::tensor::Tensor<num::Complex<f64>>>::ifft` takes ownership of the receiver `self`, which moves `t`
[INFO] [stdout]    --> src/math/fft_ops.rs:111:17
[INFO] [stdout]     |
[INFO] [stdout] 111 |     pub fn ifft(self) -> Result<Tensor<Complex64>, TensorErrors> {
[INFO] [stdout]     |                 ^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 729 |                 let r = t.clone().ifft().expect("ifft must succeed");
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `m`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/math/fft.rs:867:20
[INFO] [stdout]     |
[INFO] [stdout] 862 |         let m = rand_complex_matrix(rows, cols);
[INFO] [stdout]     |             -   ------------------------------- move occurs because `m` has type `Matrix<num::Complex<f64>>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 866 |         group.bench_with_input(BenchmarkId::new("c64/matrix", &label), &label, |b, _| {
[INFO] [stdout]     |                                                                                ------ captured by this `FnMut` closure
[INFO] [stdout] 867 |             b.iter(|| {
[INFO] [stdout]     |                    ^^ `m` is moved here
[INFO] [stdout] 868 |                 let r = m.fft_rows();
[INFO] [stdout]     |                         - variable moved due to use in closure
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/benchmark_group.rs:265:12
[INFO] [stdout]     |
[INFO] [stdout] 265 |         F: FnMut(&mut Bencher<'_, M>, &I),
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 868 |                 let r = m.clone().fft_rows();
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `m`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/math/fft.rs:868:25
[INFO] [stdout]     |
[INFO] [stdout] 862 |         let m = rand_complex_matrix(rows, cols);
[INFO] [stdout]     |             -   ------------------------------- move occurs because `m` has type `Matrix<num::Complex<f64>>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 867 |             b.iter(|| {
[INFO] [stdout]     |                    -- captured by this `FnMut` closure
[INFO] [stdout] 868 |                 let r = m.fft_rows();
[INFO] [stdout]     |                         ^ ---------- `m` moved due to this method call
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `m` is moved here
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/bencher.rs:85:12
[INFO] [stdout]     |
[INFO] [stdout]  85 |         R: FnMut() -> O,
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] note: `tensor_math::math::fft_ops::<impl tensor_math::definitions::matrix::Matrix<num::Complex<f64>>>::fft_rows` takes ownership of the receiver `self`, which moves `m`
[INFO] [stdout]    --> src/math/fft_ops.rs:279:21
[INFO] [stdout]     |
[INFO] [stdout] 279 |     pub fn fft_rows(self) -> Matrix<Complex64> {
[INFO] [stdout]     |                     ^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 868 |                 let r = m.clone().fft_rows();
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `m`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/math/fft.rs:884:20
[INFO] [stdout]     |
[INFO] [stdout] 879 |         let m = rand_complex_matrix(rows, cols);
[INFO] [stdout]     |             -   ------------------------------- move occurs because `m` has type `Matrix<num::Complex<f64>>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 883 |         group.bench_with_input(BenchmarkId::new("c64/matrix", &label), &label, |b, _| {
[INFO] [stdout]     |                                                                                ------ captured by this `FnMut` closure
[INFO] [stdout] 884 |             b.iter(|| {
[INFO] [stdout]     |                    ^^ `m` is moved here
[INFO] [stdout] 885 |                 let r = m.fft_cols();
[INFO] [stdout]     |                         - variable moved due to use in closure
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/benchmark_group.rs:265:12
[INFO] [stdout]     |
[INFO] [stdout] 265 |         F: FnMut(&mut Bencher<'_, M>, &I),
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 885 |                 let r = m.clone().fft_cols();
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `m`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/math/fft.rs:885:25
[INFO] [stdout]     |
[INFO] [stdout] 879 |         let m = rand_complex_matrix(rows, cols);
[INFO] [stdout]     |             -   ------------------------------- move occurs because `m` has type `Matrix<num::Complex<f64>>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 884 |             b.iter(|| {
[INFO] [stdout]     |                    -- captured by this `FnMut` closure
[INFO] [stdout] 885 |                 let r = m.fft_cols();
[INFO] [stdout]     |                         ^ ---------- `m` moved due to this method call
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `m` is moved here
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/bencher.rs:85:12
[INFO] [stdout]     |
[INFO] [stdout]  85 |         R: FnMut() -> O,
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] note: `tensor_math::math::fft_ops::<impl tensor_math::definitions::matrix::Matrix<num::Complex<f64>>>::fft_cols` takes ownership of the receiver `self`, which moves `m`
[INFO] [stdout]    --> src/math/fft_ops.rs:289:21
[INFO] [stdout]     |
[INFO] [stdout] 289 |     pub fn fft_cols(self) -> Matrix<Complex64> {
[INFO] [stdout]     |                     ^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 885 |                 let r = m.clone().fft_cols();
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `m`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/math/fft.rs:901:20
[INFO] [stdout]     |
[INFO] [stdout] 896 |         let m = rand_complex_matrix(rows, cols);
[INFO] [stdout]     |             -   ------------------------------- move occurs because `m` has type `Matrix<num::Complex<f64>>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 900 |         group.bench_with_input(BenchmarkId::new("c64/matrix", &label), &label, |b, _| {
[INFO] [stdout]     |                                                                                ------ captured by this `FnMut` closure
[INFO] [stdout] 901 |             b.iter(|| {
[INFO] [stdout]     |                    ^^ `m` is moved here
[INFO] [stdout] 902 |                 let r = m.fft();
[INFO] [stdout]     |                         - variable moved due to use in closure
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/benchmark_group.rs:265:12
[INFO] [stdout]     |
[INFO] [stdout] 265 |         F: FnMut(&mut Bencher<'_, M>, &I),
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 902 |                 let r = m.clone().fft();
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `m`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/math/fft.rs:902:25
[INFO] [stdout]     |
[INFO] [stdout] 896 |         let m = rand_complex_matrix(rows, cols);
[INFO] [stdout]     |             -   ------------------------------- move occurs because `m` has type `Matrix<num::Complex<f64>>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 901 |             b.iter(|| {
[INFO] [stdout]     |                    -- captured by this `FnMut` closure
[INFO] [stdout] 902 |                 let r = m.fft();
[INFO] [stdout]     |                         ^ ----- `m` moved due to this method call
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `m` is moved here
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/bencher.rs:85:12
[INFO] [stdout]     |
[INFO] [stdout]  85 |         R: FnMut() -> O,
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] note: `tensor_math::math::fft_ops::<impl tensor_math::definitions::matrix::Matrix<num::Complex<f64>>>::fft` takes ownership of the receiver `self`, which moves `m`
[INFO] [stdout]    --> src/math/fft_ops.rs:302:16
[INFO] [stdout]     |
[INFO] [stdout] 302 |     pub fn fft(self) -> Matrix<Complex64> {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 902 |                 let r = m.clone().fft();
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `m`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/math/fft.rs:935:20
[INFO] [stdout]     |
[INFO] [stdout] 930 |         let m = rand_complex_matrix(rows, cols);
[INFO] [stdout]     |             -   ------------------------------- move occurs because `m` has type `Matrix<num::Complex<f64>>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 934 |         group.bench_with_input(BenchmarkId::new("c64/matrix", &label), &label, |b, _| {
[INFO] [stdout]     |                                                                                ------ captured by this `FnMut` closure
[INFO] [stdout] 935 |             b.iter(|| {
[INFO] [stdout]     |                    ^^ `m` is moved here
[INFO] [stdout] 936 |                 let r = m.ifft_cols();
[INFO] [stdout]     |                         - variable moved due to use in closure
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/benchmark_group.rs:265:12
[INFO] [stdout]     |
[INFO] [stdout] 265 |         F: FnMut(&mut Bencher<'_, M>, &I),
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 936 |                 let r = m.clone().ifft_cols();
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `m`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> benches/math/fft.rs:936:25
[INFO] [stdout]     |
[INFO] [stdout] 930 |         let m = rand_complex_matrix(rows, cols);
[INFO] [stdout]     |             -   ------------------------------- move occurs because `m` has type `Matrix<num::Complex<f64>>`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 935 |             b.iter(|| {
[INFO] [stdout]     |                    -- captured by this `FnMut` closure
[INFO] [stdout] 936 |                 let r = m.ifft_cols();
[INFO] [stdout]     |                         ^ ----------- `m` moved due to this method call
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `m` is moved here
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.8.2/src/bencher.rs:85:12
[INFO] [stdout]     |
[INFO] [stdout]  85 |         R: FnMut() -> O,
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] note: `tensor_math::math::fft_ops::<impl tensor_math::definitions::matrix::Matrix<num::Complex<f64>>>::ifft_cols` takes ownership of the receiver `self`, which moves `m`
[INFO] [stdout]    --> src/math/fft_ops.rs:317:22
[INFO] [stdout]     |
[INFO] [stdout] 317 |     pub fn ifft_cols(self) -> Matrix<Complex64> {
[INFO] [stdout]     |                      ^^^^
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 936 |                 let r = m.clone().ifft_cols();
[INFO] [stdout]     |                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0308, E0382, E0507.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `tensor_math` (bench "fft") due to 48 previous errors
[INFO] [stderr] warning: unused dependency `criterion`
[INFO] [stderr]    --> Cargo.toml:113:1
[INFO] [stderr]     |
[INFO] [stderr] 113 | criterion = "0.8.2"
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `criterion`
[INFO] [stderr] help: to still use for development builds, move to `dev-dependencies`
[INFO] [stderr] warning: `tensor_math` (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "inspect" "74d7fe9232fa27ee7b7d4b99fea0510f081645764b2a7f7bd9a12ccddda3aed8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "74d7fe9232fa27ee7b7d4b99fea0510f081645764b2a7f7bd9a12ccddda3aed8", kill_on_drop: false }`
[INFO] [stdout] 74d7fe9232fa27ee7b7d4b99fea0510f081645764b2a7f7bd9a12ccddda3aed8
