[INFO] updating cached repository helloooooo/learn_deep_learning [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/helloooooo/learn_deep_learning [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/helloooooo/learn_deep_learning" "work/ex/clippy-test-run/sources/stable/gh/helloooooo/learn_deep_learning"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/helloooooo/learn_deep_learning'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/helloooooo/learn_deep_learning" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/helloooooo/learn_deep_learning"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/helloooooo/learn_deep_learning'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 094ea00d204262e73fdb1684d499ebf38ea65d5e [INFO] sha for GitHub repo helloooooo/learn_deep_learning: 094ea00d204262e73fdb1684d499ebf38ea65d5e [INFO] validating manifest of helloooooo/learn_deep_learning on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of helloooooo/learn_deep_learning on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing helloooooo/learn_deep_learning [INFO] finished frobbing helloooooo/learn_deep_learning [INFO] frobbed toml for helloooooo/learn_deep_learning written to work/ex/clippy-test-run/sources/stable/gh/helloooooo/learn_deep_learning/Cargo.toml [INFO] started frobbing helloooooo/learn_deep_learning [INFO] finished frobbing helloooooo/learn_deep_learning [INFO] frobbed toml for helloooooo/learn_deep_learning written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/helloooooo/learn_deep_learning/Cargo.toml [INFO] crate helloooooo/learn_deep_learning has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting helloooooo/learn_deep_learning against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-2/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/helloooooo/learn_deep_learning:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] b9285cd3c325b55bafb07d04f5b7c6de9bc29a304788240232820716ba2ed8f9 [INFO] running `"docker" "start" "-a" "b9285cd3c325b55bafb07d04f5b7c6de9bc29a304788240232820716ba2ed8f9"` [INFO] [stderr] Checking gnuplot v0.0.23 [INFO] [stderr] Checking memchr v0.1.11 [INFO] [stderr] Checking base64 v0.8.0 [INFO] [stderr] Checking num-complex v0.1.41 [INFO] [stderr] Checking mio v0.6.11 [INFO] [stderr] Compiling openssl v0.9.23 [INFO] [stderr] Checking tokio-io v0.1.4 [INFO] [stderr] Checking thread-id v2.0.0 [INFO] [stderr] Checking aho-corasick v0.5.3 [INFO] [stderr] Checking thread_local v0.2.7 [INFO] [stderr] Checking regex v0.1.80 [INFO] [stderr] Checking alga v0.5.2 [INFO] [stderr] Checking tokio-core v0.1.11 [INFO] [stderr] Checking tokio-proto v0.1.1 [INFO] [stderr] Checking native-tls v0.1.4 [INFO] [stderr] Checking nalgebra v0.13.1 [INFO] [stderr] Checking tokio-tls v0.1.3 [INFO] [stderr] Checking hyper v0.11.9 [INFO] [stderr] Checking hyper-tls v0.1.2 [INFO] [stderr] Checking egg-mode v0.12.0 [INFO] [stderr] Checking test1 v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lossfunc.rs:30:10 [INFO] [stderr] | [INFO] [stderr] 30 | [0.3654127111314497, 0.23927077686987236, 0.395316511998678] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0.365_412_711_131_449_7` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lossfunc.rs:30:30 [INFO] [stderr] | [INFO] [stderr] 30 | [0.3654127111314497, 0.23927077686987236, 0.395316511998678] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider: `0.239_270_776_869_872_36` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lossfunc.rs:30:51 [INFO] [stderr] | [INFO] [stderr] 30 | [0.3654127111314497, 0.23927077686987236, 0.395316511998678] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider: `0.395_316_511_998_678` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lossfunc.rs:42:16 [INFO] [stderr] | [INFO] [stderr] 42 | assert_eq!(0.51082545709933802, cross_entropy(&y, &t)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider: `0.510_825_457_099_338_02` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lossfunc.rs:43:16 [INFO] [stderr] | [INFO] [stderr] 43 | assert_eq!(0.92806828578640754, cross_entropy(&y1, &t1)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider: `0.928_068_285_786_407_54` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lossfunc.rs:61:16 [INFO] [stderr] | [INFO] [stderr] 61 | assert_eq!(0.097500000000000031, mean_squared_error(y, t)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider: `0.097_500_000_000_000_031` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unused imports: `RefMut`, `Ref` [INFO] [stderr] --> src/gradient.rs:5:26 [INFO] [stderr] | [INFO] [stderr] 5 | use std::cell::{RefCell, Ref, RefMut}; [INFO] [stderr] | ^^^ ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::cell::RefCell` [INFO] [stderr] --> src/nural.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use std::cell::RefCell; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/nural.rs:18:9 [INFO] [stderr] | [INFO] [stderr] 18 | loss [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/nural.rs:17:20 [INFO] [stderr] | [INFO] [stderr] 17 | let loss = lossfunc::cross_entropy(&y, &t); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/nural.rs:60:5 [INFO] [stderr] | [INFO] [stderr] 60 | y [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/nural.rs:59:13 [INFO] [stderr] | [INFO] [stderr] 59 | let y = exp_a.map(|_x| _x / sum_exp_a); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/nural.rs:69:13 [INFO] [stderr] | [INFO] [stderr] 69 | 0.47355232, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0.473_552_32` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/nural.rs:70:13 [INFO] [stderr] | [INFO] [stderr] 70 | 0.85557411, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0.855_574_11` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/nural.rs:71:13 [INFO] [stderr] | [INFO] [stderr] 71 | 0.9977393, [INFO] [stderr] | ^^^^^^^^^ help: consider: `0.997_739_3` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/nural.rs:72:13 [INFO] [stderr] | [INFO] [stderr] 72 | 0.03563661, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0.035_636_61` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/nural.rs:73:13 [INFO] [stderr] | [INFO] [stderr] 73 | 0.84668094, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0.846_680_94` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/nural.rs:74:13 [INFO] [stderr] | [INFO] [stderr] 74 | 0.69422093, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0.694_220_93` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/nural.rs:85:10 [INFO] [stderr] | [INFO] [stderr] 85 | [1.054148091, 0.630716529, 1.132807401].iter().cloned(), [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `1.054_148_091` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/nural.rs:85:23 [INFO] [stderr] | [INFO] [stderr] 85 | [1.054148091, 0.630716529, 1.132807401].iter().cloned(), [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0.630_716_529` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/nural.rs:85:36 [INFO] [stderr] | [INFO] [stderr] 85 | [1.054148091, 0.630716529, 1.132807401].iter().cloned(), [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `1.132_807_401` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/nural.rs:88:16 [INFO] [stderr] | [INFO] [stderr] 88 | let ans2 = 0.92806828578640754; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider: `0.928_068_285_786_407_54` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/nural.rs:98:10 [INFO] [stderr] | [INFO] [stderr] 98 | [0.01821127329554753, 0.24519181293507392, 0.7365969137693786] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider: `0.018_211_273_295_547_53` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/nural.rs:98:31 [INFO] [stderr] | [INFO] [stderr] 98 | [0.01821127329554753, 0.24519181293507392, 0.7365969137693786] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider: `0.245_191_812_935_073_92` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/nural.rs:98:52 [INFO] [stderr] | [INFO] [stderr] 98 | [0.01821127329554753, 0.24519181293507392, 0.7365969137693786] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0.736_596_913_769_378_6` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/nural.rs:110:10 [INFO] [stderr] | [INFO] [stderr] 110 | [0.2689414213699951, 0.7310585786300049, 0.8807970779778823] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0.268_941_421_369_995_1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/nural.rs:110:30 [INFO] [stderr] | [INFO] [stderr] 110 | [0.2689414213699951, 0.7310585786300049, 0.8807970779778823] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0.731_058_578_630_004_9` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/nural.rs:110:50 [INFO] [stderr] | [INFO] [stderr] 110 | [0.2689414213699951, 0.7310585786300049, 0.8807970779778823] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0.880_797_077_977_882_3` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/two_layer_net.rs:35:9 [INFO] [stderr] | [INFO] [stderr] 35 | y [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/two_layer_net.rs:34:17 [INFO] [stderr] | [INFO] [stderr] 34 | let y = nural::softmax(&a2); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/two_layer_net.rs:99:9 [INFO] [stderr] | [INFO] [stderr] 99 | grads [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/two_layer_net.rs:93:21 [INFO] [stderr] | [INFO] [stderr] 93 | let grads = grad { [INFO] [stderr] | _____________________^ [INFO] [stderr] 94 | | w1: gradient::numerical_gradient(loss_w, &self, &self.w1, x, t, &"w1"), [INFO] [stderr] 95 | | b1: gradient::numerical_gradient(loss_w, &self, &self.b1, x, t, &"b1"), [INFO] [stderr] 96 | | w2: gradient::numerical_gradient(loss_w, &self, &self.w2, x, t, &"w2"), [INFO] [stderr] 97 | | b2: gradient::numerical_gradient(loss_w, &self, &self.b2, x, t, &"b2"), [INFO] [stderr] 98 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/two_layer_net.rs:124:9 [INFO] [stderr] | [INFO] [stderr] 124 | grads [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/two_layer_net.rs:118:21 [INFO] [stderr] | [INFO] [stderr] 118 | let grads = grad { [INFO] [stderr] | _____________________^ [INFO] [stderr] 119 | | w1: nural::dot(&x.transpose(), &dz1), [INFO] [stderr] 120 | | b1: nural::axisZerosum(&dz1), [INFO] [stderr] 121 | | w2: nural::dot(&z1.transpose(), &dy), [INFO] [stderr] 122 | | b2: nural::axisZerosum(&dy), [INFO] [stderr] 123 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/two_layer_net.rs:157:5 [INFO] [stderr] | [INFO] [stderr] 157 | y [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/two_layer_net.rs:156:13 [INFO] [stderr] | [INFO] [stderr] 156 | let y = nural::softmax(&a2); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unused imports: `RefMut`, `Ref` [INFO] [stderr] --> src/gradient.rs:5:26 [INFO] [stderr] | [INFO] [stderr] 5 | use std::cell::{RefCell, Ref, RefMut}; [INFO] [stderr] | ^^^ ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::cell::RefCell` [INFO] [stderr] --> src/nural.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use std::cell::RefCell; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/nural.rs:18:9 [INFO] [stderr] | [INFO] [stderr] 18 | loss [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/nural.rs:17:20 [INFO] [stderr] | [INFO] [stderr] 17 | let loss = lossfunc::cross_entropy(&y, &t); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/nural.rs:60:5 [INFO] [stderr] | [INFO] [stderr] 60 | y [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/nural.rs:59:13 [INFO] [stderr] | [INFO] [stderr] 59 | let y = exp_a.map(|_x| _x / sum_exp_a); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/two_layer_net.rs:35:9 [INFO] [stderr] | [INFO] [stderr] 35 | y [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/two_layer_net.rs:34:17 [INFO] [stderr] | [INFO] [stderr] 34 | let y = nural::softmax(&a2); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/two_layer_net.rs:99:9 [INFO] [stderr] | [INFO] [stderr] 99 | grads [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/two_layer_net.rs:93:21 [INFO] [stderr] | [INFO] [stderr] 93 | let grads = grad { [INFO] [stderr] | _____________________^ [INFO] [stderr] 94 | | w1: gradient::numerical_gradient(loss_w, &self, &self.w1, x, t, &"w1"), [INFO] [stderr] 95 | | b1: gradient::numerical_gradient(loss_w, &self, &self.b1, x, t, &"b1"), [INFO] [stderr] 96 | | w2: gradient::numerical_gradient(loss_w, &self, &self.w2, x, t, &"w2"), [INFO] [stderr] 97 | | b2: gradient::numerical_gradient(loss_w, &self, &self.b2, x, t, &"b2"), [INFO] [stderr] 98 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/two_layer_net.rs:124:9 [INFO] [stderr] | [INFO] [stderr] 124 | grads [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/two_layer_net.rs:118:21 [INFO] [stderr] | [INFO] [stderr] 118 | let grads = grad { [INFO] [stderr] | _____________________^ [INFO] [stderr] 119 | | w1: nural::dot(&x.transpose(), &dz1), [INFO] [stderr] 120 | | b1: nural::axisZerosum(&dz1), [INFO] [stderr] 121 | | w2: nural::dot(&z1.transpose(), &dy), [INFO] [stderr] 122 | | b2: nural::axisZerosum(&dy), [INFO] [stderr] 123 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/two_layer_net.rs:157:5 [INFO] [stderr] | [INFO] [stderr] 157 | y [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/two_layer_net.rs:156:13 [INFO] [stderr] | [INFO] [stderr] 156 | let y = nural::softmax(&a2); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rows` [INFO] [stderr] --> src/main.rs:21:16 [INFO] [stderr] | [INFO] [stderr] 21 | let (size, rows, cols) = (60_000, 28, 28); [INFO] [stderr] | ^^^^ help: consider using `_rows` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `cols` [INFO] [stderr] --> src/main.rs:21:22 [INFO] [stderr] | [INFO] [stderr] 21 | let (size, rows, cols) = (60_000, 28, 28); [INFO] [stderr] | ^^^^ help: consider using `_cols` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `batch_size` [INFO] [stderr] --> src/main.rs:40:9 [INFO] [stderr] | [INFO] [stderr] 40 | let batch_size = 100; [INFO] [stderr] | ^^^^^^^^^^ help: consider using `_batch_size` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:33:9 [INFO] [stderr] | [INFO] [stderr] 33 | let mut Two_layer_network = two_layer_net::Two_layer_network { [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `mean_squared_error` [INFO] [stderr] --> src/lossfunc.rs:11:1 [INFO] [stderr] | [INFO] [stderr] 11 | pub fn mean_squared_error(y: DMatrix, t: DMatrix) -> f64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `numerical_gradient` [INFO] [stderr] --> src/gradient.rs:8:1 [INFO] [stderr] | [INFO] [stderr] 8 | / pub fn numerical_gradient< [INFO] [stderr] 9 | | F: Fn(&DMatrix, [INFO] [stderr] 10 | | &DMatrix, [INFO] [stderr] 11 | | &DMatrix, [INFO] [stderr] ... | [INFO] [stderr] 38 | | grad [INFO] [stderr] 39 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `function_2` [INFO] [stderr] --> src/gradient.rs:40:1 [INFO] [stderr] | [INFO] [stderr] 40 | pub fn function_2(x: &mut DMatrix) -> f64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `predict` [INFO] [stderr] --> src/nural.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | pub fn predict(self, x: &DMatrix) -> DMatrix { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `loss` [INFO] [stderr] --> src/nural.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | pub fn loss(self, x: &DMatrix, t: &DMatrix) -> f64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `numerical_gradient` [INFO] [stderr] --> src/two_layer_net.rs:91:5 [INFO] [stderr] | [INFO] [stderr] 91 | pub fn numerical_gradient(&mut self, x: &DMatrix, t: &DMatrix) -> grad { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `loss_w` [INFO] [stderr] --> src/two_layer_net.rs:128:1 [INFO] [stderr] | [INFO] [stderr] 128 | / pub fn loss_w( [INFO] [stderr] 129 | | param: &DMatrix, [INFO] [stderr] 130 | | x: &DMatrix, [INFO] [stderr] 131 | | t: &DMatrix, [INFO] [stderr] ... | [INFO] [stderr] 135 | | two.loss(param, x, t, &patern) [INFO] [stderr] 136 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: function `axisZerosum` should have a snake case name such as `axis_zerosum` [INFO] [stderr] --> src/nural.rs:32:1 [INFO] [stderr] | [INFO] [stderr] 32 | / pub fn axisZerosum(x: &DMatrix) -> DMatrix { [INFO] [stderr] 33 | | let zerosum = DMatrix::::from_iterator( [INFO] [stderr] 34 | | 1, [INFO] [stderr] 35 | | x.shape().1, [INFO] [stderr] ... | [INFO] [stderr] 44 | | [INFO] [stderr] 45 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rows` [INFO] [stderr] --> src/main.rs:21:16 [INFO] [stderr] | [INFO] [stderr] 21 | let (size, rows, cols) = (60_000, 28, 28); [INFO] [stderr] | ^^^^ help: consider using `_rows` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `cols` [INFO] [stderr] --> src/main.rs:21:22 [INFO] [stderr] | [INFO] [stderr] 21 | let (size, rows, cols) = (60_000, 28, 28); [INFO] [stderr] | ^^^^ help: consider using `_cols` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `batch_size` [INFO] [stderr] --> src/main.rs:40:9 [INFO] [stderr] | [INFO] [stderr] 40 | let batch_size = 100; [INFO] [stderr] | ^^^^^^^^^^ help: consider using `_batch_size` instead [INFO] [stderr] warning: function `createVec` should have a snake case name such as `create_vec` [INFO] [stderr] --> src/nural.rs:47:1 [INFO] [stderr] | [INFO] [stderr] 47 | / pub fn createVec(x: usize) -> Vec { [INFO] [stderr] 48 | | let mut vec = Vec::with_capacity(x); [INFO] [stderr] 49 | | for i in 0..x { [INFO] [stderr] 50 | | vec.push(i); [INFO] [stderr] 51 | | } [INFO] [stderr] 52 | | vec [INFO] [stderr] 53 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `/` [INFO] [stderr] --> src/nural.rs:56:27 [INFO] [stderr] | [INFO] [stderr] 56 | let c = a.iter().fold(0.0 / 0.0, |acc, i| i.max(acc)); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::eq_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eq_op [INFO] [stderr] [INFO] [stderr] warning: constant division of 0.0 with 0.0 will always result in NaN [INFO] [stderr] --> src/nural.rs:56:27 [INFO] [stderr] | [INFO] [stderr] 56 | let c = a.iter().fold(0.0 / 0.0, |acc, i| i.max(acc)); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::zero_divided_by_zero)] on by default [INFO] [stderr] = help: Consider using `std::f64::NAN` if you would like a constant representing NaN [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_divided_by_zero [INFO] [stderr] [INFO] [stderr] warning: type `grad` should have a camel case name such as `Grad` [INFO] [stderr] --> src/two_layer_net.rs:13:1 [INFO] [stderr] | [INFO] [stderr] 13 | / pub struct grad { [INFO] [stderr] 14 | | pub w1: DMatrix, [INFO] [stderr] 15 | | pub b1: DMatrix, [INFO] [stderr] 16 | | pub w2: DMatrix, [INFO] [stderr] 17 | | pub b2: DMatrix, [INFO] [stderr] 18 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_camel_case_types)] on by default [INFO] [stderr] [INFO] [stderr] warning: type `Two_layer_network` should have a camel case name such as `TwoLayerNetwork` [INFO] [stderr] --> src/two_layer_net.rs:19:1 [INFO] [stderr] | [INFO] [stderr] 19 | / pub struct Two_layer_network { [INFO] [stderr] 20 | | pub w1: Rc>>, [INFO] [stderr] 21 | | pub b1: Rc>>, [INFO] [stderr] 22 | | pub w2: Rc>>, [INFO] [stderr] 23 | | pub b2: Rc>>, [INFO] [stderr] 24 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/two_layer_net.rs:137:20 [INFO] [stderr] | [INFO] [stderr] 137 | pub fn learn(late: &f64, matrix: &DMatrix) -> DMatrix { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `f64` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:33:9 [INFO] [stderr] | [INFO] [stderr] 33 | let mut Two_layer_network = two_layer_net::Two_layer_network { [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:29:40 [INFO] [stderr] | [INFO] [stderr] 29 | let x_vec = trn_img.iter().map(|i| *i as f64).collect::>(); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(*i)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:30:40 [INFO] [stderr] | [INFO] [stderr] 30 | let t_vec = trn_lbl.iter().map(|i| *i as f64).collect::>(); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(*i)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: variable `Two_layer_network` should have a snake case name such as `two_layer_network` [INFO] [stderr] --> src/main.rs:33:9 [INFO] [stderr] | [INFO] [stderr] 33 | let mut Two_layer_network = two_layer_net::Two_layer_network { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `test1`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: function is never used: `numerical_gradient` [INFO] [stderr] --> src/gradient.rs:8:1 [INFO] [stderr] | [INFO] [stderr] 8 | / pub fn numerical_gradient< [INFO] [stderr] 9 | | F: Fn(&DMatrix, [INFO] [stderr] 10 | | &DMatrix, [INFO] [stderr] 11 | | &DMatrix, [INFO] [stderr] ... | [INFO] [stderr] 38 | | grad [INFO] [stderr] 39 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `numerical_gradient` [INFO] [stderr] --> src/two_layer_net.rs:91:5 [INFO] [stderr] | [INFO] [stderr] 91 | pub fn numerical_gradient(&mut self, x: &DMatrix, t: &DMatrix) -> grad { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `loss_w` [INFO] [stderr] --> src/two_layer_net.rs:128:1 [INFO] [stderr] | [INFO] [stderr] 128 | / pub fn loss_w( [INFO] [stderr] 129 | | param: &DMatrix, [INFO] [stderr] 130 | | x: &DMatrix, [INFO] [stderr] 131 | | t: &DMatrix, [INFO] [stderr] ... | [INFO] [stderr] 135 | | two.loss(param, x, t, &patern) [INFO] [stderr] 136 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: float has excessive precision [INFO] [stderr] --> src/lossfunc.rs:42:16 [INFO] [stderr] | [INFO] [stderr] 42 | assert_eq!(0.51082545709933802, cross_entropy(&y, &t)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider changing the type or truncating it to: `0.510_825_457_099_338` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::excessive_precision)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#excessive_precision [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/lossfunc.rs:42:5 [INFO] [stderr] | [INFO] [stderr] 42 | assert_eq!(0.51082545709933802, cross_entropy(&y, &t)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/lossfunc.rs:42:5 [INFO] [stderr] | [INFO] [stderr] 42 | assert_eq!(0.51082545709933802, cross_entropy(&y, &t)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: float has excessive precision [INFO] [stderr] --> src/lossfunc.rs:43:16 [INFO] [stderr] | [INFO] [stderr] 43 | assert_eq!(0.92806828578640754, cross_entropy(&y1, &t1)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider changing the type or truncating it to: `0.928_068_285_786_407_5` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#excessive_precision [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/lossfunc.rs:43:5 [INFO] [stderr] | [INFO] [stderr] 43 | assert_eq!(0.92806828578640754, cross_entropy(&y1, &t1)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/lossfunc.rs:43:5 [INFO] [stderr] | [INFO] [stderr] 43 | assert_eq!(0.92806828578640754, cross_entropy(&y1, &t1)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: float has excessive precision [INFO] [stderr] --> src/lossfunc.rs:61:16 [INFO] [stderr] | [INFO] [stderr] 61 | assert_eq!(0.097500000000000031, mean_squared_error(y, t)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider changing the type or truncating it to: `0.097_500_000_000_000_03` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#excessive_precision [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/lossfunc.rs:61:5 [INFO] [stderr] | [INFO] [stderr] 61 | assert_eq!(0.097500000000000031, mean_squared_error(y, t)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/lossfunc.rs:61:5 [INFO] [stderr] | [INFO] [stderr] 61 | assert_eq!(0.097500000000000031, mean_squared_error(y, t)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/gradient.rs:54:5 [INFO] [stderr] | [INFO] [stderr] 54 | assert_eq!(385.0, function_2(t)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/gradient.rs:54:5 [INFO] [stderr] | [INFO] [stderr] 54 | assert_eq!(385.0, function_2(t)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: function `axisZerosum` should have a snake case name such as `axis_zerosum` [INFO] [stderr] --> src/nural.rs:32:1 [INFO] [stderr] | [INFO] [stderr] 32 | / pub fn axisZerosum(x: &DMatrix) -> DMatrix { [INFO] [stderr] 33 | | let zerosum = DMatrix::::from_iterator( [INFO] [stderr] 34 | | 1, [INFO] [stderr] 35 | | x.shape().1, [INFO] [stderr] ... | [INFO] [stderr] 44 | | [INFO] [stderr] 45 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: function `createVec` should have a snake case name such as `create_vec` [INFO] [stderr] --> src/nural.rs:47:1 [INFO] [stderr] | [INFO] [stderr] 47 | / pub fn createVec(x: usize) -> Vec { [INFO] [stderr] 48 | | let mut vec = Vec::with_capacity(x); [INFO] [stderr] 49 | | for i in 0..x { [INFO] [stderr] 50 | | vec.push(i); [INFO] [stderr] 51 | | } [INFO] [stderr] 52 | | vec [INFO] [stderr] 53 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `/` [INFO] [stderr] --> src/nural.rs:56:27 [INFO] [stderr] | [INFO] [stderr] 56 | let c = a.iter().fold(0.0 / 0.0, |acc, i| i.max(acc)); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::eq_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eq_op [INFO] [stderr] [INFO] [stderr] warning: constant division of 0.0 with 0.0 will always result in NaN [INFO] [stderr] --> src/nural.rs:56:27 [INFO] [stderr] | [INFO] [stderr] 56 | let c = a.iter().fold(0.0 / 0.0, |acc, i| i.max(acc)); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::zero_divided_by_zero)] on by default [INFO] [stderr] = help: Consider using `std::f64::NAN` if you would like a constant representing NaN [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_divided_by_zero [INFO] [stderr] [INFO] [stderr] warning: float has excessive precision [INFO] [stderr] --> src/nural.rs:88:16 [INFO] [stderr] | [INFO] [stderr] 88 | let ans2 = 0.92806828578640754; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider changing the type or truncating it to: `0.928_068_285_786_407_5` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#excessive_precision [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/nural.rs:90:5 [INFO] [stderr] | [INFO] [stderr] 90 | assert_eq!(ans2, _ne.loss(&_x, &t)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/nural.rs:90:5 [INFO] [stderr] | [INFO] [stderr] 90 | assert_eq!(ans2, _ne.loss(&_x, &t)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: type `grad` should have a camel case name such as `Grad` [INFO] [stderr] --> src/two_layer_net.rs:13:1 [INFO] [stderr] | [INFO] [stderr] 13 | / pub struct grad { [INFO] [stderr] 14 | | pub w1: DMatrix, [INFO] [stderr] 15 | | pub b1: DMatrix, [INFO] [stderr] 16 | | pub w2: DMatrix, [INFO] [stderr] 17 | | pub b2: DMatrix, [INFO] [stderr] 18 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_camel_case_types)] on by default [INFO] [stderr] [INFO] [stderr] warning: type `Two_layer_network` should have a camel case name such as `TwoLayerNetwork` [INFO] [stderr] --> src/two_layer_net.rs:19:1 [INFO] [stderr] | [INFO] [stderr] 19 | / pub struct Two_layer_network { [INFO] [stderr] 20 | | pub w1: Rc>>, [INFO] [stderr] 21 | | pub b1: Rc>>, [INFO] [stderr] 22 | | pub w2: Rc>>, [INFO] [stderr] 23 | | pub b2: Rc>>, [INFO] [stderr] 24 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/two_layer_net.rs:137:20 [INFO] [stderr] | [INFO] [stderr] 137 | pub fn learn(late: &f64, matrix: &DMatrix) -> DMatrix { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `f64` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:29:40 [INFO] [stderr] | [INFO] [stderr] 29 | let x_vec = trn_img.iter().map(|i| *i as f64).collect::>(); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(*i)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:30:40 [INFO] [stderr] | [INFO] [stderr] 30 | let t_vec = trn_lbl.iter().map(|i| *i as f64).collect::>(); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(*i)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: variable `Two_layer_network` should have a snake case name such as `two_layer_network` [INFO] [stderr] --> src/main.rs:33:9 [INFO] [stderr] | [INFO] [stderr] 33 | let mut Two_layer_network = two_layer_net::Two_layer_network { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: aborting due to 6 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `test1`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "b9285cd3c325b55bafb07d04f5b7c6de9bc29a304788240232820716ba2ed8f9"` [INFO] running `"docker" "rm" "-f" "b9285cd3c325b55bafb07d04f5b7c6de9bc29a304788240232820716ba2ed8f9"` [INFO] [stdout] b9285cd3c325b55bafb07d04f5b7c6de9bc29a304788240232820716ba2ed8f9