[INFO] cloning repository https://github.com/Romira915/combinatorial_optimization_solver
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Romira915/combinatorial_optimization_solver" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRomira915%2Fcombinatorial_optimization_solver", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRomira915%2Fcombinatorial_optimization_solver'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 92307df55dc7cb6dde131d636e9f1dfcd696b8f2
[INFO] building Romira915/combinatorial_optimization_solver against master#ad85bc524b1ad696e42061ad8338d382dffbdbe5 for pr-146237-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRomira915%2Fcombinatorial_optimization_solver" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] [stderr] Updating files:  32% (50/152)
Updating files:  33% (51/152)
Updating files:  34% (52/152)
Updating files:  35% (54/152)
Updating files:  36% (55/152)
Updating files:  37% (57/152)
Updating files:  38% (58/152)
Updating files:  39% (60/152)
Updating files:  40% (61/152)
Updating files:  41% (63/152)
Updating files:  42% (64/152)
Updating files:  43% (66/152)
Updating files:  44% (67/152)
Updating files:  45% (69/152)
Updating files:  46% (70/152)
Updating files:  47% (72/152)
Updating files:  48% (73/152)
Updating files:  49% (75/152)
Updating files:  50% (76/152)
Updating files:  51% (78/152)
Updating files:  52% (80/152)
Updating files:  53% (81/152)
Updating files:  54% (83/152)
Updating files:  55% (84/152)
Updating files:  56% (86/152)
Updating files:  57% (87/152)
Updating files:  58% (89/152)
Updating files:  59% (90/152)
Updating files:  60% (92/152)
Updating files:  61% (93/152)
Updating files:  62% (95/152)
Updating files:  63% (96/152)
Updating files:  64% (98/152)
Updating files:  65% (99/152)
Updating files:  66% (101/152)
Updating files:  67% (102/152)
Updating files:  67% (103/152)
Updating files:  68% (104/152)
Updating files:  69% (105/152)
Updating files:  70% (107/152)
Updating files:  71% (108/152)
Updating files:  72% (110/152)
Updating files:  73% (111/152)
Updating files:  74% (113/152)
Updating files:  75% (114/152)
Updating files:  76% (116/152)
Updating files:  77% (118/152)
Updating files:  78% (119/152)
Updating files:  79% (121/152)
Updating files:  80% (122/152)
Updating files:  81% (124/152)
Updating files:  82% (125/152)
Updating files:  83% (127/152)
Updating files:  84% (128/152)
Updating files:  85% (130/152)
Updating files:  86% (131/152)
Updating files:  87% (133/152)
Updating files:  88% (134/152)
Updating files:  89% (136/152)
Updating files:  90% (137/152)
Updating files:  91% (139/152)
Updating files:  92% (140/152)
Updating files:  93% (142/152)
Updating files:  94% (143/152)
Updating files:  95% (145/152)
Updating files:  96% (146/152)
Updating files:  97% (148/152)
Updating files:  98% (149/152)
Updating files:  99% (151/152)
Updating files: 100% (152/152)
Updating files: 100% (152/152), done.
[INFO] started tweaking git repo https://github.com/Romira915/combinatorial_optimization_solver
[INFO] finished tweaking git repo https://github.com/Romira915/combinatorial_optimization_solver
[INFO] tweaked toml for git repo https://github.com/Romira915/combinatorial_optimization_solver written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Romira915/combinatorial_optimization_solver on toolchain ad85bc524b1ad696e42061ad8338d382dffbdbe5
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Romira915/combinatorial_optimization_solver 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" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded proc-macro2 v1.0.28
[INFO] [stderr]   Downloaded typemap_rev v0.1.5
[INFO] [stderr]   Downloaded bytes v1.0.1
[INFO] [stderr]   Downloaded tracing v0.1.26
[INFO] [stderr]   Downloaded tokio-rustls v0.22.0
[INFO] [stderr]   Downloaded http-body v0.4.3
[INFO] [stderr]   Downloaded futures-macro v0.3.16
[INFO] [stderr]   Downloaded proc-macro-nested v0.1.7
[INFO] [stderr]   Downloaded tokio-util v0.6.7
[INFO] [stderr]   Downloaded command_attr v0.3.7
[INFO] [stderr]   Downloaded bitflags v1.2.1
[INFO] [stderr]   Downloaded sct v0.6.1
[INFO] [stderr]   Downloaded cauchy v0.4.0
[INFO] [stderr]   Downloaded futures-core v0.3.16
[INFO] [stderr]   Downloaded lapack v0.18.0
[INFO] [stderr]   Downloaded matrixmultiply v0.3.1
[INFO] [stderr]   Downloaded thiserror-impl v1.0.26
[INFO] [stderr]   Downloaded rand_distr v0.4.1
[INFO] [stderr]   Downloaded getset v0.1.1
[INFO] [stderr]   Downloaded redox_users v0.4.0
[INFO] [stderr]   Downloaded dirs v3.0.2
[INFO] [stderr]   Downloaded webpki-roots v0.20.0
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.75
[INFO] [stderr]   Downloaded ndarray-linalg v0.14.0
[INFO] [stderr]   Downloaded ndarray v0.15.3
[INFO] [stderr]   Downloaded futures-util v0.3.16
[INFO] [stderr]   Downloaded rayon v1.5.1
[INFO] [stderr]   Downloaded pin-project v1.0.8
[INFO] [stderr]   Downloaded generic-array v0.14.4
[INFO] [stderr]   Downloaded tungstenite v0.11.1
[INFO] [stderr]   Downloaded rustls v0.19.1
[INFO] [stderr]   Downloaded serde_json v1.0.66
[INFO] [stderr]   Downloaded syn v1.0.74
[INFO] [stderr]   Downloaded crossbeam-channel v0.5.1
[INFO] [stderr]   Downloaded memoffset v0.6.4
[INFO] [stderr]   Downloaded crossbeam-deque v0.8.1
[INFO] [stderr]   Downloaded cpufeatures v0.1.5
[INFO] [stderr]   Downloaded webpki v0.21.4
[INFO] [stderr]   Downloaded reqwest v0.11.4
[INFO] [stderr]   Downloaded serde v1.0.127
[INFO] [stderr]   Downloaded dirs-sys v0.3.6
[INFO] [stderr]   Downloaded bytes v0.5.6
[INFO] [stderr]   Downloaded async-tungstenite v0.11.0
[INFO] [stderr]   Downloaded libm v0.2.1
[INFO] [stderr]   Downloaded time v0.1.43
[INFO] [stderr]   Downloaded futures v0.3.16
[INFO] [stderr]   Downloaded rayon-core v1.9.1
[INFO] [stderr]   Downloaded input_buffer v0.3.1
[INFO] [stderr]   Downloaded httpdate v1.0.1
[INFO] [stderr]   Downloaded webpki-roots v0.21.1
[INFO] [stderr]   Downloaded bumpalo v3.7.0
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.75
[INFO] [stderr]   Downloaded thiserror v1.0.26
[INFO] [stderr]   Downloaded web-sys v0.3.52
[INFO] [stderr]   Downloaded approx v0.4.0
[INFO] [stderr]   Downloaded cblas-sys v0.1.4
[INFO] [stderr]   Downloaded rawpointer v0.2.1
[INFO] [stderr]   Downloaded ndarray-rand v0.14.0
[INFO] [stderr]   Downloaded sha-1 v0.9.7
[INFO] [stderr]   Downloaded crossbeam-epoch v0.9.5
[INFO] [stderr]   Downloaded typenum v1.13.0
[INFO] [stderr]   Downloaded cc v1.0.69
[INFO] [stderr]   Downloaded wasm-bindgen-backend v0.2.75
[INFO] [stderr]   Downloaded itoa v0.4.7
[INFO] [stderr]   Downloaded tracing-attributes v0.1.15
[INFO] [stderr]   Downloaded pin-project-internal v1.0.8
[INFO] [stderr]   Downloaded unicase v2.6.0
[INFO] [stderr]   Downloaded serde_derive v1.0.127
[INFO] [stderr]   Downloaded walkdir v2.3.2
[INFO] [stderr]   Downloaded openblas-build v0.1.1
[INFO] [stderr]   Downloaded lax v0.2.0
[INFO] [stderr]   Downloaded num-complex v0.4.0
[INFO] [stderr]   Downloaded crossbeam-utils v0.8.5
[INFO] [stderr]   Downloaded opaque-debug v0.3.0
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.75
[INFO] [stderr]   Downloaded hyper v0.14.11
[INFO] [stderr]   Downloaded unicode-bidi v0.3.5
[INFO] [stderr]   Downloaded memchr v2.4.0
[INFO] [stderr]   Downloaded flate2 v1.0.20
[INFO] [stderr]   Downloaded futures-channel v0.3.16
[INFO] [stderr]   Downloaded futures-io v0.3.16
[INFO] [stderr]   Downloaded futures-task v0.3.16
[INFO] [stderr]   Downloaded futures-sink v0.3.16
[INFO] [stderr]   Downloaded http v0.2.4
[INFO] [stderr]   Downloaded js-sys v0.3.52
[INFO] [stderr]   Downloaded h2 v0.3.3
[INFO] [stderr]   Downloaded mime_guess v2.0.3
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.75
[INFO] [stderr]   Downloaded httparse v1.4.1
[INFO] [stderr]   Downloaded hyper-rustls v0.22.1
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.25
[INFO] [stderr]   Downloaded tracing-core v0.1.18
[INFO] [stderr]   Downloaded serenity v0.10.8
[INFO] [stderr]   Downloaded mio v0.8.4
[INFO] [stderr]   Downloaded lapack-sys v0.12.1
[INFO] [stderr]   Downloaded openblas-src v0.10.4
[INFO] [stderr]   Downloaded async-trait v0.1.51
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 23b80c970133c436ddb8ad818b73eb7cfe2e08a9c90b389d546fff9e770aa83d
[INFO] running `Command { std: "docker" "start" "-a" "23b80c970133c436ddb8ad818b73eb7cfe2e08a9c90b389d546fff9e770aa83d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "23b80c970133c436ddb8ad818b73eb7cfe2e08a9c90b389d546fff9e770aa83d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "23b80c970133c436ddb8ad818b73eb7cfe2e08a9c90b389d546fff9e770aa83d", kill_on_drop: false }`
[INFO] [stdout] 23b80c970133c436ddb8ad818b73eb7cfe2e08a9c90b389d546fff9e770aa83d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-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" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 2209bf8aba61814f26508c64ce38080090bfcc8935b6fd263ca177b7da36182c
[INFO] running `Command { std: "docker" "start" "-a" "2209bf8aba61814f26508c64ce38080090bfcc8935b6fd263ca177b7da36182c", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.126
[INFO] [stderr]    Compiling proc-macro2 v1.0.28
[INFO] [stderr]    Compiling syn v1.0.74
[INFO] [stderr]    Compiling version_check v0.9.3
[INFO] [stderr]    Compiling log v0.4.14
[INFO] [stderr]    Compiling libm v0.2.1
[INFO] [stderr]    Compiling once_cell v1.8.0
[INFO] [stderr]    Compiling serde_derive v1.0.127
[INFO] [stderr]    Compiling serde v1.0.127
[INFO] [stderr]    Compiling memchr v2.4.0
[INFO] [stderr]    Compiling cc v1.0.69
[INFO] [stderr]    Compiling num-traits v0.2.14
[INFO] [stderr]    Compiling pin-project-lite v0.2.7
[INFO] [stderr]    Compiling bytes v1.0.1
[INFO] [stderr]    Compiling futures-core v0.3.16
[INFO] [stderr]    Compiling spin v0.5.2
[INFO] [stderr]    Compiling itoa v0.4.7
[INFO] [stderr]    Compiling untrusted v0.7.1
[INFO] [stderr]    Compiling futures-macro v0.3.16
[INFO] [stderr]    Compiling futures-task v0.3.16
[INFO] [stderr]    Compiling futures-sink v0.3.16
[INFO] [stderr]    Compiling futures-channel v0.3.16
[INFO] [stderr]    Compiling proc-macro-nested v0.1.7
[INFO] [stderr]    Compiling futures-util v0.3.16
[INFO] [stderr]    Compiling typenum v1.13.0
[INFO] [stderr]    Compiling http v0.2.4
[INFO] [stderr]    Compiling pin-utils v0.1.0
[INFO] [stderr]    Compiling futures-io v0.3.16
[INFO] [stderr]    Compiling httparse v1.4.1
[INFO] [stderr]    Compiling indexmap v1.7.0
[INFO] [stderr]    Compiling crossbeam-utils v0.8.5
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling generic-array v0.14.4
[INFO] [stderr]    Compiling unicase v2.6.0
[INFO] [stderr]    Compiling walkdir v2.3.2
[INFO] [stderr]    Compiling unicode-bidi v0.3.5
[INFO] [stderr]    Compiling memoffset v0.6.4
[INFO] [stderr]    Compiling tracing-core v0.1.18
[INFO] [stderr]    Compiling base64 v0.13.0
[INFO] [stderr]    Compiling quote v1.0.9
[INFO] [stderr]    Compiling try-lock v0.2.3
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.5
[INFO] [stderr]    Compiling ring v0.16.20
[INFO] [stderr]    Compiling idna v0.2.3
[INFO] [stderr]    Compiling want v0.3.0
[INFO] [stderr]    Compiling mime_guess v2.0.3
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]    Compiling rayon-core v1.9.1
[INFO] [stderr]    Compiling opaque-debug v0.3.0
[INFO] [stderr]    Compiling httpdate v1.0.1
[INFO] [stderr]    Compiling bytes v0.5.6
[INFO] [stderr]    Compiling rawpointer v0.2.1
[INFO] [stderr]    Compiling num_cpus v1.13.0
[INFO] [stderr]    Compiling getrandom v0.2.3
[INFO] [stderr]    Compiling socket2 v0.4.4
[INFO] [stderr]    Compiling rand_core v0.6.3
[INFO] [stderr]    Compiling mio v0.8.4
[INFO] [stderr]    Compiling getrandom v0.1.16
[INFO] [stderr]    Compiling dirs-sys v0.3.6
[INFO] [stderr]    Compiling serde_json v1.0.66
[INFO] [stderr]    Compiling tower-service v0.3.1
[INFO] [stderr]    Compiling url v2.2.2
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling dirs v3.0.2
[INFO] [stderr]    Compiling rand_core v0.5.1
[INFO] [stderr]    Compiling cpufeatures v0.1.5
[INFO] [stderr]    Compiling matrixmultiply v0.3.1
[INFO] [stderr]    Compiling cblas-sys v0.1.4
[INFO] [stderr]    Compiling lapack-sys v0.12.1
[INFO] [stderr]    Compiling rand v0.8.4
[INFO] [stderr]    Compiling rand_chacha v0.2.2
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling num-integer v0.1.44
[INFO] [stderr]    Compiling approx v0.4.0
[INFO] [stderr]    Compiling async-trait v0.1.51
[INFO] [stderr]    Compiling rand v0.7.3
[INFO] [stderr]    Compiling base64 v0.12.3
[INFO] [stderr]    Compiling utf-8 v0.7.6
[INFO] [stderr]    Compiling input_buffer v0.3.1
[INFO] [stderr]    Compiling bitflags v1.2.1
[INFO] [stderr]    Compiling crossbeam-deque v0.8.1
[INFO] [stderr]    Compiling time v0.1.43
[INFO] [stderr]    Compiling crossbeam-channel v0.5.1
[INFO] [stderr]    Compiling rayon v1.5.1
[INFO] [stderr]    Compiling serenity v0.10.8
[INFO] [stderr]    Compiling ipnet v2.3.1
[INFO] [stderr]    Compiling flate2 v1.0.20
[INFO] [stderr]    Compiling typemap_rev v0.1.5
[INFO] [stderr]    Compiling either v1.6.1
[INFO] [stderr]    Compiling static_assertions v1.1.0
[INFO] [stderr]    Compiling uwl v0.6.0
[INFO] [stderr]    Compiling dotenv v0.15.0
[INFO] [stderr]    Compiling block-buffer v0.9.0
[INFO] [stderr]    Compiling digest v0.9.0
[INFO] [stderr]    Compiling sha-1 v0.9.7
[INFO] [stderr]    Compiling rand_distr v0.4.1
[INFO] [stderr]    Compiling http-body v0.4.3
[INFO] [stderr]    Compiling tungstenite v0.11.1
[INFO] [stderr]    Compiling webpki v0.21.4
[INFO] [stderr]    Compiling sct v0.6.1
[INFO] [stderr]    Compiling rustls v0.19.1
[INFO] [stderr]    Compiling webpki-roots v0.20.0
[INFO] [stderr]    Compiling webpki-roots v0.21.1
[INFO] [stderr]    Compiling tokio-macros v1.8.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.26
[INFO] [stderr]    Compiling tracing-attributes v0.1.15
[INFO] [stderr]    Compiling pin-project-internal v1.0.8
[INFO] [stderr]    Compiling command_attr v0.3.7
[INFO] [stderr]    Compiling getset v0.1.1
[INFO] [stderr]    Compiling tokio v1.19.2
[INFO] [stderr]    Compiling tracing v0.1.26
[INFO] [stderr]    Compiling pin-project v1.0.8
[INFO] [stderr]    Compiling thiserror v1.0.26
[INFO] [stderr]    Compiling openblas-build v0.1.1
[INFO] [stderr]    Compiling openblas-src v0.10.4
[INFO] [stderr]    Compiling futures v0.3.16
[INFO] [stderr]    Compiling tokio-util v0.6.7
[INFO] [stderr]    Compiling tokio-rustls v0.22.0
[INFO] [stderr]    Compiling async-tungstenite v0.11.0
[INFO] [stderr]    Compiling h2 v0.3.3
[INFO] [stderr]    Compiling num-complex v0.4.0
[INFO] [stderr]    Compiling serde_urlencoded v0.7.0
[INFO] [stderr]    Compiling chrono v0.4.19
[INFO] [stderr]    Compiling ndarray v0.15.3
[INFO] [stderr]    Compiling cauchy v0.4.0
[INFO] [stderr]    Compiling lapack v0.18.0
[INFO] [stderr]    Compiling hyper v0.14.11
[INFO] [stderr]    Compiling ndarray-rand v0.14.0
[INFO] [stderr]    Compiling hyper-rustls v0.22.1
[INFO] [stderr]    Compiling reqwest v0.11.4
[INFO] [stderr]    Compiling lax v0.2.0
[INFO] [stderr]    Compiling ndarray-linalg v0.14.0
[INFO] [stderr]    Compiling combinatorial_optimization_solver v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `PathBuf` and `convert::TryFrom`
[INFO] [stdout]  --> src/dataset.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     convert::TryFrom,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 3 |     io::Error,
[INFO] [stdout] 4 |     path::{Path, PathBuf},
[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: `ReadBuf`
[INFO] [stdout]   --> src/dataset.rs:11:59
[INFO] [stdout]    |
[INFO] [stdout] 11 |     io::{AsyncBufRead, AsyncBufReadExt, BufReader, Lines, ReadBuf},
[INFO] [stdout]    |                                                           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray_linalg::IntoTriangular`
[INFO] [stdout]  --> src/math.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ndarray_linalg::IntoTriangular;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Add`, `MulAssign`, `Mul`, and `iter::Sum`
[INFO] [stdout]  --> src/model.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     iter::Sum,
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 3 |     ops::{Add, Mul, MulAssign},
[INFO] [stdout]   |           ^^^  ^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ArrayBase`, `Array`, and `RawData`
[INFO] [stdout]   --> src/model.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  9 |     Array, Array1, Array2, ArrayBase, ArrayView1, ArrayViewMut1, ArrayViewMut2, FixedInitializer,
[INFO] [stdout]    |     ^^^^^                  ^^^^^^^^^
[INFO] [stdout] 10 |     RawData,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::thread_rng`
[INFO] [stdout]   --> src/model.rs:13:20
[INFO] [stdout]    |
[INFO] [stdout] 13 | use ndarray_rand::{rand::thread_rng, rand_distr::WeightedAliasIndex};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/opt.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 |     io::{self, BufRead, BufReader},
[INFO] [stdout]   |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Array1` and `Array4`
[INFO] [stdout]  --> src/opt.rs:9:15
[INFO] [stdout]   |
[INFO] [stdout] 9 | use ndarray::{Array1, Array2, Array4, ArrayView1};
[INFO] [stdout]   |               ^^^^^^          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToPrimitive`
[INFO] [stdout]   --> src/opt.rs:10:30
[INFO] [stdout]    |
[INFO] [stdout] 10 | use num_traits::{Float, Pow, ToPrimitive, Zero};
[INFO] [stdout]    |                              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::net::ToSocketAddrs`
[INFO] [stdout]   --> src/opt.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use tokio::net::ToSocketAddrs;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ThreadPool`
[INFO] [stdout]  --> src/solver/annealing_scheduler.rs:1:25
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rayon::{prelude::*, ThreadPool, ThreadPoolBuilder};
[INFO] [stdout]   |                         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `rc::Rc` and `sync::mpsc`
[INFO] [stdout]  --> src/solver/annealing_scheduler.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{rc::Rc, sync::mpsc};
[INFO] [stdout]   |           ^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `simulated_annealing::SimulatedAnnealing` and `simulated_quantum_annealing::SimulatedQuantumAnnealing`
[INFO] [stdout]  --> src/solver/annealing_scheduler.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |         simulated_annealing::SimulatedAnnealing,
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 8 |         simulated_quantum_annealing::SimulatedQuantumAnnealing, SolutionRecord, Solver,
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cmp::min`
[INFO] [stdout]  --> src/solver/simulated_annealing.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{cmp::min, sync::Arc};
[INFO] [stdout]   |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `getset::Getters`
[INFO] [stdout]  --> src/solver/simulated_annealing.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use getset::Getters;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Array2` and `MathCell`
[INFO] [stdout]  --> src/solver/simulated_annealing.rs:4:30
[INFO] [stdout]   |
[INFO] [stdout] 4 | use ndarray::{Array, Array1, Array2, MathCell};
[INFO] [stdout]   |                              ^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SliceRandom` and `ThreadRng`
[INFO] [stdout]  --> src/solver/simulated_annealing.rs:6:15
[INFO] [stdout]   |
[INFO] [stdout] 6 |     prelude::{SliceRandom, StdRng, ThreadRng},
[INFO] [stdout]   |               ^^^^^^^^^^^          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `array`
[INFO] [stdout]  --> src/solver/simulated_quantum_annealing.rs:1:15
[INFO] [stdout]   |
[INFO] [stdout] 1 | use ndarray::{array, Array, Array1, Array2};
[INFO] [stdout]   |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `getset::Getters`
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use getset::Getters;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Array2`
[INFO] [stdout]  --> src/solver.rs:7:23
[INFO] [stdout]   |
[INFO] [stdout] 7 | use ndarray::{Array1, Array2};
[INFO] [stdout]   |                       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray_rand::rand_distr::WeightedAliasIndex`
[INFO] [stdout]  --> src/solver.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use ndarray_rand::rand_distr::WeightedAliasIndex;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `thread_rng`
[INFO] [stdout]  --> src/solver.rs:9:34
[INFO] [stdout]   |
[INFO] [stdout] 9 | use rand::{prelude::SliceRandom, thread_rng, Rng};
[INFO] [stdout]   |                                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `channel::Embed`, `prelude::HttpError`, and `webhook::Webhook as SerenWebhook`
[INFO] [stdout]  --> src/webhook.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 |     model::{channel::Embed, webhook::Webhook as SerenWebhook},
[INFO] [stdout]   |             ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 5 |     prelude::HttpError,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buf`
[INFO] [stdout]   --> src/dataset.rs:40:13
[INFO] [stdout]    |
[INFO] [stdout] 40 |     let mut buf = String::new();
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_buf`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/dataset.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |     let mut reader = BufReader::new(file);
[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/dataset.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |     let mut buf = String::new();
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FixedInitializer`
[INFO] [stdout]  --> src/model.rs:9:81
[INFO] [stdout]   |
[INFO] [stdout] 9 |     Array, Array1, Array2, ArrayBase, ArrayView1, ArrayViewMut1, ArrayViewMut2, FixedInitializer,
[INFO] [stdout]   |                                                                                 ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray_linalg::Scalar`
[INFO] [stdout]  --> src/solver/simulated_quantum_annealing.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ndarray_linalg::Scalar;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_traits::Float`
[INFO] [stdout]   --> src/model.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use num_traits::Float;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Pow`
[INFO] [stdout]   --> src/opt.rs:10:25
[INFO] [stdout]    |
[INFO] [stdout] 10 | use num_traits::{Float, Pow, ToPrimitive, Zero};
[INFO] [stdout]    |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Solver`
[INFO] [stdout]  --> src/solver/annealing_scheduler.rs:8:81
[INFO] [stdout]   |
[INFO] [stdout] 8 |         simulated_quantum_annealing::SimulatedQuantumAnnealing, SolutionRecord, Solver,
[INFO] [stdout]   |                                                                                 ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_traits::Float`
[INFO] [stdout]  --> src/solver/simulated_quantum_annealing.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use num_traits::Float;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num`
[INFO] [stdout]  --> src/math.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let num = f64::log2(integer as f64) as i32;
[INFO] [stdout]   |         ^^^ help: if this is intentional, prefix it with an underscore: `_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max`
[INFO] [stdout]   --> src/model.rs:94:13
[INFO] [stdout]    |
[INFO] [stdout] 94 |         let max = j_max.abs().max(h_max.abs());
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_max`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solver/simulated_annealing.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |         mut rng: Option<StdRng>,
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solver/simulated_annealing.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |         mut rng: Option<StdRng>,
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solver/simulated_annealing.rs:62:13
[INFO] [stdout]    |
[INFO] [stdout] 62 |         let mut rng = match rng {
[INFO] [stdout]    |             ----^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |         mut rng: Option<StdRng>,
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:68:9
[INFO] [stdout]    |
[INFO] [stdout] 68 |         mut rng: Option<StdRng>,
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:71:13
[INFO] [stdout]    |
[INFO] [stdout] 71 |         let mut rng = match rng {
[INFO] [stdout]    |             ----^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j_max`
[INFO] [stdout]    --> src/solver/simulated_quantum_annealing.rs:175:21
[INFO] [stdout]     |
[INFO] [stdout] 175 |                 let j_max = self.model.J().fold(0. / 0., |m, v| v.max(m)) * 0.3;
[INFO] [stdout]     |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_j_max`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]    --> src/solver/simulated_quantum_annealing.rs:271:17
[INFO] [stdout]     |
[INFO] [stdout] 271 |             for k in 0..self.P {
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `calculate_dE` is never used
[INFO] [stdout]    --> src/solver/simulated_quantum_annealing.rs:100:8
[INFO] [stdout]     |
[INFO] [stdout]  28 | impl SimulatedQuantumAnnealing {
[INFO] [stdout]     | ------------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 100 |     fn calculate_dE(
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `J` should have a snake case name
[INFO] [stdout]   --> src/model.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     J: Array2<f64>,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `j`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]   --> src/model.rs:39:27
[INFO] [stdout]    |
[INFO] [stdout] 39 |     fn init_dim1_spins<R>(N: usize, items: &[(i8, usize); 2], rng: &mut R) -> Array1<i8>
[INFO] [stdout]    |                           ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `J` should have a snake case name
[INFO] [stdout]   --> src/model.rs:63:13
[INFO] [stdout]    |
[INFO] [stdout] 63 |         let J = q.clone().into_triangular(UPLO::Upper) - q.to_daigonal_matrix();
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `J` should have a snake case name
[INFO] [stdout]   --> src/model.rs:86:20
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub fn new(mut J: Array2<f64>, mut h: Array1<f64>) -> Self {
[INFO] [stdout]    |                    ^ help: convert the identifier to snake case: `j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> src/model.rs:100:9
[INFO] [stdout]     |
[INFO] [stdout] 100 |         N: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> src/model.rs:122:26
[INFO] [stdout]     |
[INFO] [stdout] 122 |     pub fn init_spins<R>(N: usize, rng: &mut R) -> Array1<i8>
[INFO] [stdout]     |                          ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `calculate_dE` should have a snake case name
[INFO] [stdout]    --> src/model.rs:146:12
[INFO] [stdout]     |
[INFO] [stdout] 146 |     pub fn calculate_dE(&self, spins: ArrayView1<i8>, flip_spin: usize) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^ help: convert the identifier to snake case: `calculate_d_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `dE` should have a snake case name
[INFO] [stdout]    --> src/model.rs:147:17
[INFO] [stdout]     |
[INFO] [stdout] 147 |         let mut dE = self.h()[flip_spin];
[INFO] [stdout]     |                 ^^ help: convert the identifier to snake case: `d_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Q` should have a snake case name
[INFO] [stdout]    --> src/model.rs:176:5
[INFO] [stdout]     |
[INFO] [stdout] 176 |     Q: Array2<f64>,
[INFO] [stdout]     |     ^ help: convert the identifier to snake case: `q`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Q` should have a snake case name
[INFO] [stdout]    --> src/model.rs:183:16
[INFO] [stdout]     |
[INFO] [stdout] 183 |     pub fn new(Q: Array2<f64>) -> Self {
[INFO] [stdout]     |                ^ help: convert the identifier to snake case: `q`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Q` should have a snake case name
[INFO] [stdout]    --> src/model.rs:185:13
[INFO] [stdout]     |
[INFO] [stdout] 185 |         let Q = Q.clone().into_triangular(UPLO::Upper)
[INFO] [stdout]     |             ^ help: convert the identifier to snake case: `q`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> src/model.rs:191:9
[INFO] [stdout]     |
[INFO] [stdout] 191 |         N: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> src/model.rs:203:25
[INFO] [stdout]     |
[INFO] [stdout] 203 |     pub fn init_bits<R>(N: usize, rng: &mut R) -> Array1<i8>
[INFO] [stdout]     |                         ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Q` should have a snake case name
[INFO] [stdout]    --> src/opt.rs:227:17
[INFO] [stdout]     |
[INFO] [stdout] 227 |         let mut Q = Array2::zeros((tsp.dim.pow(2), tsp.dim.pow(2)));
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case: `q`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `T0` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_annealing.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     T0: f64,
[INFO] [stdout]    |     ^^ help: convert the identifier to snake case: `t0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Tf` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_annealing.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     Tf: f64,
[INFO] [stdout]    |     ^^ help: convert the identifier to snake case: `tf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `N` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_annealing.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     N: usize,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `T0` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_annealing.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |         T0: f64,
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case: `t0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Tf` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_annealing.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 |         Tf: f64,
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case: `tf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_annealing.rs:36:13
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let N = model.J().dim().0;
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `T0` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_annealing.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 54 |         T0: f64,
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case: `t0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Tf` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_annealing.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 55 |         Tf: f64,
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case: `tf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_annealing.rs:61:13
[INFO] [stdout]    |
[INFO] [stdout] 61 |         let N = model.J().dim().0;
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `T_array` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_annealing.rs:81:13
[INFO] [stdout]    |
[INFO] [stdout] 81 |         let T_array = Array::linspace(self.T0, self.Tf, self.steps);
[INFO] [stdout]    |             ^^^^^^^ help: convert the identifier to snake case: `t_array`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `T` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_annealing.rs:83:13
[INFO] [stdout]    |
[INFO] [stdout] 83 |         for T in &T_array {
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `delta_E` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_annealing.rs:85:17
[INFO] [stdout]    |
[INFO] [stdout] 85 |             let delta_E = self.model.calculate_dE(self.spins.view(), flip_index) as f64;
[INFO] [stdout]    |                 ^^^^^^^ help: convert the identifier to snake case: `delta_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `G0` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     G0: f64,
[INFO] [stdout]    |     ^^ help: convert the identifier to snake case: `g0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Gf` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     Gf: f64,
[INFO] [stdout]    |     ^^ help: convert the identifier to snake case: `gf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `T` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     T: f64,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `N` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     N: usize,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `P` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     P: usize,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `PT` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     PT: f64,
[INFO] [stdout]    |     ^^ help: convert the identifier to snake case: `pt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `G0` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 |         G0: f64,
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case: `g0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Gf` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |         Gf: f64,
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case: `gf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `T` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |         T: f64,
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `P` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |         P: usize,
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:39:13
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let N = model.J().dim().0;
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `G0` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:61:9
[INFO] [stdout]    |
[INFO] [stdout] 61 |         G0: f64,
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case: `g0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Gf` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 62 |         Gf: f64,
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case: `gf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `T` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:63:9
[INFO] [stdout]    |
[INFO] [stdout] 63 |         T: f64,
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `P` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |         P: usize,
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |         let N = model.J().dim().0;
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `calculate_dE` should have a snake case name
[INFO] [stdout]    --> src/solver/simulated_quantum_annealing.rs:100:8
[INFO] [stdout]     |
[INFO] [stdout] 100 |     fn calculate_dE(
[INFO] [stdout]     |        ^^^^^^^^^^^^ help: convert the identifier to snake case: `calculate_d_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `G_array` should have a snake case name
[INFO] [stdout]    --> src/solver/simulated_quantum_annealing.rs:162:13
[INFO] [stdout]     |
[INFO] [stdout] 162 |         let G_array = Array::linspace(self.G0, self.Gf, self.steps);
[INFO] [stdout]     |             ^^^^^^^ help: convert the identifier to snake case: `g_array`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `G` should have a snake case name
[INFO] [stdout]    --> src/solver/simulated_quantum_annealing.rs:164:13
[INFO] [stdout]     |
[INFO] [stdout] 164 |         for G in &G_array {
[INFO] [stdout]     |             ^ help: convert the identifier to snake case: `g`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `B` should have a snake case name
[INFO] [stdout]    --> src/solver/simulated_quantum_annealing.rs:177:21
[INFO] [stdout]     |
[INFO] [stdout] 177 |                 let B = -self.T / 2. * (1.0 / (G / self.PT).tanh()).log(consts::E);
[INFO] [stdout]     |                     ^ help: convert the identifier to snake case: `b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `delta_E` should have a snake case name
[INFO] [stdout]    --> src/solver/simulated_quantum_annealing.rs:179:21
[INFO] [stdout]     |
[INFO] [stdout] 179 |                 let delta_E = self.model.calculate_dE(self.spins.row(k), flip_local_index) as f64;
[INFO] [stdout]     |                     ^^^^^^^ help: convert the identifier to snake case: `delta_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `G_array` should have a snake case name
[INFO] [stdout]    --> src/solver/simulated_quantum_annealing.rs:267:13
[INFO] [stdout]     |
[INFO] [stdout] 267 |         let G_array = Array::linspace(self.G0, self.Gf, self.steps);
[INFO] [stdout]     |             ^^^^^^^ help: convert the identifier to snake case: `g_array`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `G` should have a snake case name
[INFO] [stdout]    --> src/solver/simulated_quantum_annealing.rs:269:13
[INFO] [stdout]     |
[INFO] [stdout] 269 |         for G in &G_array {
[INFO] [stdout]     |             ^ help: convert the identifier to snake case: `g`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `B` should have a snake case name
[INFO] [stdout]    --> src/solver/simulated_quantum_annealing.rs:276:25
[INFO] [stdout]     |
[INFO] [stdout] 276 |                     let B = self.T * (1.0 / (G / self.PT).tanh()).log(consts::E);
[INFO] [stdout]     |                         ^ help: convert the identifier to snake case: `b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `delta_E` should have a snake case name
[INFO] [stdout]    --> src/solver/simulated_quantum_annealing.rs:282:25
[INFO] [stdout]     |
[INFO] [stdout] 282 |                     let delta_E =
[INFO] [stdout]     |                         ^^^^^^^ help: convert the identifier to snake case: `delta_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: incorrect NaN comparison, NaN cannot be directly compared to itself
[INFO] [stdout]    --> src/solver/simulated_quantum_annealing.rs:299:24
[INFO] [stdout]     |
[INFO] [stdout] 299 |                     if acc.1 == f64::NAN {
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(invalid_nan_comparisons)]` on by default
[INFO] [stdout] help: use `f32::is_nan()` or `f64::is_nan()` instead
[INFO] [stdout]     |
[INFO] [stdout] 299 -                     if acc.1 == f64::NAN {
[INFO] [stdout] 299 +                     if acc.1.is_nan() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::num`
[INFO] [stdout]  --> src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::num;
[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: `std::process::exit`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::process::exit;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `clone_array_row_matrix`
[INFO] [stdout]  --> src/main.rs:7:48
[INFO] [stdout]   |
[INFO] [stdout] 7 | use combinatorial_optimization_solver::model::{clone_array_row_matrix, IsingModel, QuboModel};
[INFO] [stdout]   |                                                ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Solver`
[INFO] [stdout]   --> src/main.rs:12:49
[INFO] [stdout]    |
[INFO] [stdout] 12 | use combinatorial_optimization_solver::solver::{Solver, SolverVariant};
[INFO] [stdout]    |                                                 ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ArrayBase`, `ArrayView1`, `ArrayView`, `Dim`, and `OwnedRepr`
[INFO] [stdout]   --> src/main.rs:14:41
[INFO] [stdout]    |
[INFO] [stdout] 14 | use ndarray::{array, s, Array1, Array2, ArrayBase, ArrayView, ArrayView1, Dim, OwnedRepr};
[INFO] [stdout]    |                                         ^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^^  ^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray_linalg::Scalar`
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use ndarray_linalg::Scalar;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Float`
[INFO] [stdout]   --> src/main.rs:16:23
[INFO] [stdout]    |
[INFO] [stdout] 16 | use num_traits::{pow, Float};
[INFO] [stdout]    |                       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rng`
[INFO] [stdout]   --> src/main.rs:61:14
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn tsp_ising(rng: &mut StdRng) -> (TspNode, Arc<IsingModel>, f64, f64) {
[INFO] [stdout]    |              ^^^ help: if this is intentional, prefix it with an underscore: `_rng`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cost`
[INFO] [stdout]   --> src/main.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |     let cost = rng
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_cost`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `weight`
[INFO] [stdout]   --> src/main.rs:83:13
[INFO] [stdout]    |
[INFO] [stdout] 83 |     let mut weight = rng
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_weight`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:83:9
[INFO] [stdout]    |
[INFO] [stdout] 83 |     let mut weight = rng
[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: unused variable: `rng`
[INFO] [stdout]    --> src/main.rs:202:13
[INFO] [stdout]     |
[INFO] [stdout] 202 |     let mut rng = rand::rngs::StdRng::from_rng(rand::thread_rng()).unwrap();
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_rng`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opt_weight_bin`
[INFO] [stdout]    --> src/main.rs:214:9
[INFO] [stdout]     |
[INFO] [stdout] 214 |     let opt_weight_bin = {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_opt_weight_bin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:217:13
[INFO] [stdout]     |
[INFO] [stdout] 217 |         for i in 0..y_num {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `best_bin`
[INFO] [stdout]    --> src/main.rs:280:17
[INFO] [stdout]     |
[INFO] [stdout] 280 |             let best_bin = best_spins.slice(s![*data.n()..best_spins.len()]);
[INFO] [stdout]     |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_best_bin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `worst_bin`
[INFO] [stdout]    --> src/main.rs:293:17
[INFO] [stdout]     |
[INFO] [stdout] 293 |             let worst_bin = worst_spins.slice(s![*data.n()..worst_spins.len()]);
[INFO] [stdout]     |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_worst_bin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:202:9
[INFO] [stdout]     |
[INFO] [stdout] 202 |     let mut rng = rand::rngs::StdRng::from_rng(rand::thread_rng()).unwrap();
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `number_partitioning` is never used
[INFO] [stdout]   --> src/main.rs:24:4
[INFO] [stdout]    |
[INFO] [stdout] 24 | fn number_partitioning(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tsp_ising` is never used
[INFO] [stdout]   --> src/main.rs:61:4
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn tsp_ising(rng: &mut StdRng) -> (TspNode, Arc<IsingModel>, f64, f64) {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `knapsack` is never used
[INFO] [stdout]   --> src/main.rs:74:4
[INFO] [stdout]    |
[INFO] [stdout] 74 | fn knapsack(
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `J` should have a snake case name
[INFO] [stdout]   --> src/main.rs:36:17
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let mut J = Array2::zeros((n, n));
[INFO] [stdout]    |                 ^ help: convert the identifier to snake case: `j`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `J` should have a snake case name
[INFO] [stdout]   --> src/main.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |     let J = {
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Q` should have a snake case name
[INFO] [stdout]    --> src/main.rs:101:17
[INFO] [stdout]     |
[INFO] [stdout] 101 |         let mut Q = Array2::zeros((n, n));
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case: `q`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `B` should have a snake case name
[INFO] [stdout]    --> src/main.rs:102:13
[INFO] [stdout]     |
[INFO] [stdout] 102 |         let B = 40.;
[INFO] [stdout]     |             ^ help: convert the identifier to snake case: `b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `A` should have a snake case name
[INFO] [stdout]    --> src/main.rs:103:13
[INFO] [stdout]     |
[INFO] [stdout] 103 |         let A = 10. * B * max_c as f64;
[INFO] [stdout]     |             ^ help: convert the identifier to snake case: `a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Q` should have a snake case name
[INFO] [stdout]    --> src/main.rs:100:9
[INFO] [stdout]     |
[INFO] [stdout] 100 |     let Q = {
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `q`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `B` should have a snake case name
[INFO] [stdout]    --> src/main.rs:139:13
[INFO] [stdout]     |
[INFO] [stdout] 139 |         let B = 1.;
[INFO] [stdout]     |             ^ help: convert the identifier to snake case: `b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `A` should have a snake case name
[INFO] [stdout]    --> src/main.rs:140:13
[INFO] [stdout]     |
[INFO] [stdout] 140 |         let A = max_c * B * 3.;
[INFO] [stdout]     |             ^ help: convert the identifier to snake case: `a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Q` should have a snake case name
[INFO] [stdout]    --> src/main.rs:146:17
[INFO] [stdout]     |
[INFO] [stdout] 146 |         let mut Q = Array2::zeros((n + bin_n, n + bin_n));
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case: `q`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Q` should have a snake case name
[INFO] [stdout]    --> src/main.rs:137:9
[INFO] [stdout]     |
[INFO] [stdout] 137 |     let Q = {
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `q`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `T` should have a snake case name
[INFO] [stdout]    --> src/main.rs:229:9
[INFO] [stdout]     |
[INFO] [stdout] 229 |     let T = 10000.;
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 7m 04s
[INFO] running `Command { std: "docker" "inspect" "2209bf8aba61814f26508c64ce38080090bfcc8935b6fd263ca177b7da36182c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2209bf8aba61814f26508c64ce38080090bfcc8935b6fd263ca177b7da36182c", kill_on_drop: false }`
[INFO] [stdout] 2209bf8aba61814f26508c64ce38080090bfcc8935b6fd263ca177b7da36182c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-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" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 079a434c2f1865829c05c7f47dc2722b264119e31e4bffbdb90dc56ac4fdd28e
[INFO] running `Command { std: "docker" "start" "-a" "079a434c2f1865829c05c7f47dc2722b264119e31e4bffbdb90dc56ac4fdd28e", kill_on_drop: false }`
[INFO] [stdout] warning: unused imports: `PathBuf` and `convert::TryFrom`
[INFO] [stdout]  --> src/dataset.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     convert::TryFrom,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 3 |     io::Error,
[INFO] [stdout] 4 |     path::{Path, PathBuf},
[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: `ReadBuf`
[INFO] [stdout]   --> src/dataset.rs:11:59
[INFO] [stdout]    |
[INFO] [stdout] 11 |     io::{AsyncBufRead, AsyncBufReadExt, BufReader, Lines, ReadBuf},
[INFO] [stdout]    |                                                           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray_linalg::IntoTriangular`
[INFO] [stdout]  --> src/math.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ndarray_linalg::IntoTriangular;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Add`, `MulAssign`, `Mul`, and `iter::Sum`
[INFO] [stdout]  --> src/model.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     iter::Sum,
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 3 |     ops::{Add, Mul, MulAssign},
[INFO] [stdout]   |           ^^^  ^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ArrayBase`, `Array`, and `RawData`
[INFO] [stdout]   --> src/model.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  9 |     Array, Array1, Array2, ArrayBase, ArrayView1, ArrayViewMut1, ArrayViewMut2, FixedInitializer,
[INFO] [stdout]    |     ^^^^^                  ^^^^^^^^^
[INFO] [stdout] 10 |     RawData,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::thread_rng`
[INFO] [stdout]   --> src/model.rs:13:20
[INFO] [stdout]    |
[INFO] [stdout] 13 | use ndarray_rand::{rand::thread_rng, rand_distr::WeightedAliasIndex};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/opt.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 |     io::{self, BufRead, BufReader},
[INFO] [stdout]   |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Array1` and `Array4`
[INFO] [stdout]  --> src/opt.rs:9:15
[INFO] [stdout]   |
[INFO] [stdout] 9 | use ndarray::{Array1, Array2, Array4, ArrayView1};
[INFO] [stdout]   |               ^^^^^^          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToPrimitive`
[INFO] [stdout]   --> src/opt.rs:10:30
[INFO] [stdout]    |
[INFO] [stdout] 10 | use num_traits::{Float, Pow, ToPrimitive, Zero};
[INFO] [stdout]    |                              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::net::ToSocketAddrs`
[INFO] [stdout]   --> src/opt.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use tokio::net::ToSocketAddrs;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ThreadPool`
[INFO] [stdout]  --> src/solver/annealing_scheduler.rs:1:25
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rayon::{prelude::*, ThreadPool, ThreadPoolBuilder};
[INFO] [stdout]   |                         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `rc::Rc` and `sync::mpsc`
[INFO] [stdout]  --> src/solver/annealing_scheduler.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{rc::Rc, sync::mpsc};
[INFO] [stdout]   |           ^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `simulated_annealing::SimulatedAnnealing` and `simulated_quantum_annealing::SimulatedQuantumAnnealing`
[INFO] [stdout]  --> src/solver/annealing_scheduler.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |         simulated_annealing::SimulatedAnnealing,
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 8 |         simulated_quantum_annealing::SimulatedQuantumAnnealing, SolutionRecord, Solver,
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cmp::min`
[INFO] [stdout]  --> src/solver/simulated_annealing.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{cmp::min, sync::Arc};
[INFO] [stdout]   |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `getset::Getters`
[INFO] [stdout]  --> src/solver/simulated_annealing.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use getset::Getters;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Array2` and `MathCell`
[INFO] [stdout]  --> src/solver/simulated_annealing.rs:4:30
[INFO] [stdout]   |
[INFO] [stdout] 4 | use ndarray::{Array, Array1, Array2, MathCell};
[INFO] [stdout]   |                              ^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SliceRandom` and `ThreadRng`
[INFO] [stdout]  --> src/solver/simulated_annealing.rs:6:15
[INFO] [stdout]   |
[INFO] [stdout] 6 |     prelude::{SliceRandom, StdRng, ThreadRng},
[INFO] [stdout]   |               ^^^^^^^^^^^          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `array`
[INFO] [stdout]  --> src/solver/simulated_quantum_annealing.rs:1:15
[INFO] [stdout]   |
[INFO] [stdout] 1 | use ndarray::{array, Array, Array1, Array2};
[INFO] [stdout]   |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `getset::Getters`
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use getset::Getters;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Array2`
[INFO] [stdout]  --> src/solver.rs:7:23
[INFO] [stdout]   |
[INFO] [stdout] 7 | use ndarray::{Array1, Array2};
[INFO] [stdout]   |                       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray_rand::rand_distr::WeightedAliasIndex`
[INFO] [stdout]  --> src/solver.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use ndarray_rand::rand_distr::WeightedAliasIndex;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `thread_rng`
[INFO] [stdout]  --> src/solver.rs:9:34
[INFO] [stdout]   |
[INFO] [stdout] 9 | use rand::{prelude::SliceRandom, thread_rng, Rng};
[INFO] [stdout]   |                                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `channel::Embed`, `prelude::HttpError`, and `webhook::Webhook as SerenWebhook`
[INFO] [stdout]  --> src/webhook.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 |     model::{channel::Embed, webhook::Webhook as SerenWebhook},
[INFO] [stdout]   |             ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 5 |     prelude::HttpError,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buf`
[INFO] [stdout]   --> src/dataset.rs:40:13
[INFO] [stdout]    |
[INFO] [stdout] 40 |     let mut buf = String::new();
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_buf`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/dataset.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |     let mut reader = BufReader::new(file);
[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/dataset.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |     let mut buf = String::new();
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FixedInitializer`
[INFO] [stdout]  --> src/model.rs:9:81
[INFO] [stdout]   |
[INFO] [stdout] 9 |     Array, Array1, Array2, ArrayBase, ArrayView1, ArrayViewMut1, ArrayViewMut2, FixedInitializer,
[INFO] [stdout]   |                                                                                 ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray_linalg::Scalar`
[INFO] [stdout]  --> src/solver/simulated_quantum_annealing.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ndarray_linalg::Scalar;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_traits::Float`
[INFO] [stdout]   --> src/model.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use num_traits::Float;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Pow`
[INFO] [stdout]   --> src/opt.rs:10:25
[INFO] [stdout]    |
[INFO] [stdout] 10 | use num_traits::{Float, Pow, ToPrimitive, Zero};
[INFO] [stdout]    |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Solver`
[INFO] [stdout]  --> src/solver/annealing_scheduler.rs:8:81
[INFO] [stdout]   |
[INFO] [stdout] 8 |         simulated_quantum_annealing::SimulatedQuantumAnnealing, SolutionRecord, Solver,
[INFO] [stdout]   |                                                                                 ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_traits::Float`
[INFO] [stdout]  --> src/solver/simulated_quantum_annealing.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use num_traits::Float;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num`
[INFO] [stdout]  --> src/math.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let num = f64::log2(integer as f64) as i32;
[INFO] [stdout]   |         ^^^ help: if this is intentional, prefix it with an underscore: `_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max`
[INFO] [stdout]   --> src/model.rs:94:13
[INFO] [stdout]    |
[INFO] [stdout] 94 |         let max = j_max.abs().max(h_max.abs());
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_max`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solver/simulated_annealing.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |         mut rng: Option<StdRng>,
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solver/simulated_annealing.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |         mut rng: Option<StdRng>,
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solver/simulated_annealing.rs:62:13
[INFO] [stdout]    |
[INFO] [stdout] 62 |         let mut rng = match rng {
[INFO] [stdout]    |             ----^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |         mut rng: Option<StdRng>,
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:68:9
[INFO] [stdout]    |
[INFO] [stdout] 68 |         mut rng: Option<StdRng>,
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:71:13
[INFO] [stdout]    |
[INFO] [stdout] 71 |         let mut rng = match rng {
[INFO] [stdout]    |             ----^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j_max`
[INFO] [stdout]    --> src/solver/simulated_quantum_annealing.rs:175:21
[INFO] [stdout]     |
[INFO] [stdout] 175 |                 let j_max = self.model.J().fold(0. / 0., |m, v| v.max(m)) * 0.3;
[INFO] [stdout]     |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_j_max`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]    --> src/solver/simulated_quantum_annealing.rs:271:17
[INFO] [stdout]     |
[INFO] [stdout] 271 |             for k in 0..self.P {
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `calculate_dE` is never used
[INFO] [stdout]    --> src/solver/simulated_quantum_annealing.rs:100:8
[INFO] [stdout]     |
[INFO] [stdout]  28 | impl SimulatedQuantumAnnealing {
[INFO] [stdout]     | ------------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 100 |     fn calculate_dE(
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `J` should have a snake case name
[INFO] [stdout]   --> src/model.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     J: Array2<f64>,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `j`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]   --> src/model.rs:39:27
[INFO] [stdout]    |
[INFO] [stdout] 39 |     fn init_dim1_spins<R>(N: usize, items: &[(i8, usize); 2], rng: &mut R) -> Array1<i8>
[INFO] [stdout]    |                           ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `J` should have a snake case name
[INFO] [stdout]   --> src/model.rs:63:13
[INFO] [stdout]    |
[INFO] [stdout] 63 |         let J = q.clone().into_triangular(UPLO::Upper) - q.to_daigonal_matrix();
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `J` should have a snake case name
[INFO] [stdout]   --> src/model.rs:86:20
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub fn new(mut J: Array2<f64>, mut h: Array1<f64>) -> Self {
[INFO] [stdout]    |                    ^ help: convert the identifier to snake case: `j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> src/model.rs:100:9
[INFO] [stdout]     |
[INFO] [stdout] 100 |         N: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> src/model.rs:122:26
[INFO] [stdout]     |
[INFO] [stdout] 122 |     pub fn init_spins<R>(N: usize, rng: &mut R) -> Array1<i8>
[INFO] [stdout]     |                          ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `calculate_dE` should have a snake case name
[INFO] [stdout]    --> src/model.rs:146:12
[INFO] [stdout]     |
[INFO] [stdout] 146 |     pub fn calculate_dE(&self, spins: ArrayView1<i8>, flip_spin: usize) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^ help: convert the identifier to snake case: `calculate_d_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `dE` should have a snake case name
[INFO] [stdout]    --> src/model.rs:147:17
[INFO] [stdout]     |
[INFO] [stdout] 147 |         let mut dE = self.h()[flip_spin];
[INFO] [stdout]     |                 ^^ help: convert the identifier to snake case: `d_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Q` should have a snake case name
[INFO] [stdout]    --> src/model.rs:176:5
[INFO] [stdout]     |
[INFO] [stdout] 176 |     Q: Array2<f64>,
[INFO] [stdout]     |     ^ help: convert the identifier to snake case: `q`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Q` should have a snake case name
[INFO] [stdout]    --> src/model.rs:183:16
[INFO] [stdout]     |
[INFO] [stdout] 183 |     pub fn new(Q: Array2<f64>) -> Self {
[INFO] [stdout]     |                ^ help: convert the identifier to snake case: `q`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Q` should have a snake case name
[INFO] [stdout]    --> src/model.rs:185:13
[INFO] [stdout]     |
[INFO] [stdout] 185 |         let Q = Q.clone().into_triangular(UPLO::Upper)
[INFO] [stdout]     |             ^ help: convert the identifier to snake case: `q`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> src/model.rs:191:9
[INFO] [stdout]     |
[INFO] [stdout] 191 |         N: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> src/model.rs:203:25
[INFO] [stdout]     |
[INFO] [stdout] 203 |     pub fn init_bits<R>(N: usize, rng: &mut R) -> Array1<i8>
[INFO] [stdout]     |                         ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Q` should have a snake case name
[INFO] [stdout]    --> src/opt.rs:227:17
[INFO] [stdout]     |
[INFO] [stdout] 227 |         let mut Q = Array2::zeros((tsp.dim.pow(2), tsp.dim.pow(2)));
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case: `q`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `T0` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_annealing.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     T0: f64,
[INFO] [stdout]    |     ^^ help: convert the identifier to snake case: `t0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Tf` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_annealing.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     Tf: f64,
[INFO] [stdout]    |     ^^ help: convert the identifier to snake case: `tf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `N` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_annealing.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     N: usize,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `T0` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_annealing.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |         T0: f64,
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case: `t0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Tf` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_annealing.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 |         Tf: f64,
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case: `tf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_annealing.rs:36:13
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let N = model.J().dim().0;
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `T0` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_annealing.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 54 |         T0: f64,
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case: `t0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Tf` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_annealing.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 55 |         Tf: f64,
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case: `tf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_annealing.rs:61:13
[INFO] [stdout]    |
[INFO] [stdout] 61 |         let N = model.J().dim().0;
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `T_array` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_annealing.rs:81:13
[INFO] [stdout]    |
[INFO] [stdout] 81 |         let T_array = Array::linspace(self.T0, self.Tf, self.steps);
[INFO] [stdout]    |             ^^^^^^^ help: convert the identifier to snake case: `t_array`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `T` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_annealing.rs:83:13
[INFO] [stdout]    |
[INFO] [stdout] 83 |         for T in &T_array {
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `delta_E` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_annealing.rs:85:17
[INFO] [stdout]    |
[INFO] [stdout] 85 |             let delta_E = self.model.calculate_dE(self.spins.view(), flip_index) as f64;
[INFO] [stdout]    |                 ^^^^^^^ help: convert the identifier to snake case: `delta_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `G0` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     G0: f64,
[INFO] [stdout]    |     ^^ help: convert the identifier to snake case: `g0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Gf` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     Gf: f64,
[INFO] [stdout]    |     ^^ help: convert the identifier to snake case: `gf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `T` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     T: f64,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `N` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     N: usize,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `P` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     P: usize,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `PT` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     PT: f64,
[INFO] [stdout]    |     ^^ help: convert the identifier to snake case: `pt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `G0` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 |         G0: f64,
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case: `g0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Gf` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |         Gf: f64,
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case: `gf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `T` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |         T: f64,
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `P` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |         P: usize,
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:39:13
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let N = model.J().dim().0;
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `G0` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:61:9
[INFO] [stdout]    |
[INFO] [stdout] 61 |         G0: f64,
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case: `g0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Gf` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 62 |         Gf: f64,
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case: `gf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling combinatorial_optimization_solver v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: variable `T` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:63:9
[INFO] [stdout]    |
[INFO] [stdout] 63 |         T: f64,
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `P` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |         P: usize,
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |         let N = model.J().dim().0;
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `calculate_dE` should have a snake case name
[INFO] [stdout]    --> src/solver/simulated_quantum_annealing.rs:100:8
[INFO] [stdout]     |
[INFO] [stdout] 100 |     fn calculate_dE(
[INFO] [stdout]     |        ^^^^^^^^^^^^ help: convert the identifier to snake case: `calculate_d_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `G_array` should have a snake case name
[INFO] [stdout]    --> src/solver/simulated_quantum_annealing.rs:162:13
[INFO] [stdout]     |
[INFO] [stdout] 162 |         let G_array = Array::linspace(self.G0, self.Gf, self.steps);
[INFO] [stdout]     |             ^^^^^^^ help: convert the identifier to snake case: `g_array`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `G` should have a snake case name
[INFO] [stdout]    --> src/solver/simulated_quantum_annealing.rs:164:13
[INFO] [stdout]     |
[INFO] [stdout] 164 |         for G in &G_array {
[INFO] [stdout]     |             ^ help: convert the identifier to snake case: `g`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `B` should have a snake case name
[INFO] [stdout]    --> src/solver/simulated_quantum_annealing.rs:177:21
[INFO] [stdout]     |
[INFO] [stdout] 177 |                 let B = -self.T / 2. * (1.0 / (G / self.PT).tanh()).log(consts::E);
[INFO] [stdout]     |                     ^ help: convert the identifier to snake case: `b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `delta_E` should have a snake case name
[INFO] [stdout]    --> src/solver/simulated_quantum_annealing.rs:179:21
[INFO] [stdout]     |
[INFO] [stdout] 179 |                 let delta_E = self.model.calculate_dE(self.spins.row(k), flip_local_index) as f64;
[INFO] [stdout]     |                     ^^^^^^^ help: convert the identifier to snake case: `delta_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `G_array` should have a snake case name
[INFO] [stdout]    --> src/solver/simulated_quantum_annealing.rs:267:13
[INFO] [stdout]     |
[INFO] [stdout] 267 |         let G_array = Array::linspace(self.G0, self.Gf, self.steps);
[INFO] [stdout]     |             ^^^^^^^ help: convert the identifier to snake case: `g_array`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `G` should have a snake case name
[INFO] [stdout]    --> src/solver/simulated_quantum_annealing.rs:269:13
[INFO] [stdout]     |
[INFO] [stdout] 269 |         for G in &G_array {
[INFO] [stdout]     |             ^ help: convert the identifier to snake case: `g`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `B` should have a snake case name
[INFO] [stdout]    --> src/solver/simulated_quantum_annealing.rs:276:25
[INFO] [stdout]     |
[INFO] [stdout] 276 |                     let B = self.T * (1.0 / (G / self.PT).tanh()).log(consts::E);
[INFO] [stdout]     |                         ^ help: convert the identifier to snake case: `b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `delta_E` should have a snake case name
[INFO] [stdout]    --> src/solver/simulated_quantum_annealing.rs:282:25
[INFO] [stdout]     |
[INFO] [stdout] 282 |                     let delta_E =
[INFO] [stdout]     |                         ^^^^^^^ help: convert the identifier to snake case: `delta_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: incorrect NaN comparison, NaN cannot be directly compared to itself
[INFO] [stdout]    --> src/solver/simulated_quantum_annealing.rs:299:24
[INFO] [stdout]     |
[INFO] [stdout] 299 |                     if acc.1 == f64::NAN {
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(invalid_nan_comparisons)]` on by default
[INFO] [stdout] help: use `f32::is_nan()` or `f64::is_nan()` instead
[INFO] [stdout]     |
[INFO] [stdout] 299 -                     if acc.1 == f64::NAN {
[INFO] [stdout] 299 +                     if acc.1.is_nan() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::num`
[INFO] [stdout]  --> src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::num;
[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: `std::process::exit`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::process::exit;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `clone_array_row_matrix`
[INFO] [stdout]  --> src/main.rs:7:48
[INFO] [stdout]   |
[INFO] [stdout] 7 | use combinatorial_optimization_solver::model::{clone_array_row_matrix, IsingModel, QuboModel};
[INFO] [stdout]   |                                                ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Solver`
[INFO] [stdout]   --> src/main.rs:12:49
[INFO] [stdout]    |
[INFO] [stdout] 12 | use combinatorial_optimization_solver::solver::{Solver, SolverVariant};
[INFO] [stdout]    |                                                 ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ArrayBase`, `ArrayView1`, `ArrayView`, `Dim`, and `OwnedRepr`
[INFO] [stdout]   --> src/main.rs:14:41
[INFO] [stdout]    |
[INFO] [stdout] 14 | use ndarray::{array, s, Array1, Array2, ArrayBase, ArrayView, ArrayView1, Dim, OwnedRepr};
[INFO] [stdout]    |                                         ^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^^  ^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray_linalg::Scalar`
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use ndarray_linalg::Scalar;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Float`
[INFO] [stdout]   --> src/main.rs:16:23
[INFO] [stdout]    |
[INFO] [stdout] 16 | use num_traits::{pow, Float};
[INFO] [stdout]    |                       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rng`
[INFO] [stdout]   --> src/main.rs:61:14
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn tsp_ising(rng: &mut StdRng) -> (TspNode, Arc<IsingModel>, f64, f64) {
[INFO] [stdout]    |              ^^^ help: if this is intentional, prefix it with an underscore: `_rng`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cost`
[INFO] [stdout]   --> src/main.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |     let cost = rng
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_cost`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `weight`
[INFO] [stdout]   --> src/main.rs:83:13
[INFO] [stdout]    |
[INFO] [stdout] 83 |     let mut weight = rng
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_weight`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:83:9
[INFO] [stdout]    |
[INFO] [stdout] 83 |     let mut weight = rng
[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: unused variable: `rng`
[INFO] [stdout]    --> src/main.rs:202:13
[INFO] [stdout]     |
[INFO] [stdout] 202 |     let mut rng = rand::rngs::StdRng::from_rng(rand::thread_rng()).unwrap();
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_rng`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opt_weight_bin`
[INFO] [stdout]    --> src/main.rs:214:9
[INFO] [stdout]     |
[INFO] [stdout] 214 |     let opt_weight_bin = {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_opt_weight_bin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:217:13
[INFO] [stdout]     |
[INFO] [stdout] 217 |         for i in 0..y_num {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `best_bin`
[INFO] [stdout]    --> src/main.rs:280:17
[INFO] [stdout]     |
[INFO] [stdout] 280 |             let best_bin = best_spins.slice(s![*data.n()..best_spins.len()]);
[INFO] [stdout]     |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_best_bin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `worst_bin`
[INFO] [stdout]    --> src/main.rs:293:17
[INFO] [stdout]     |
[INFO] [stdout] 293 |             let worst_bin = worst_spins.slice(s![*data.n()..worst_spins.len()]);
[INFO] [stdout]     |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_worst_bin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:202:9
[INFO] [stdout]     |
[INFO] [stdout] 202 |     let mut rng = rand::rngs::StdRng::from_rng(rand::thread_rng()).unwrap();
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `number_partitioning` is never used
[INFO] [stdout]   --> src/main.rs:24:4
[INFO] [stdout]    |
[INFO] [stdout] 24 | fn number_partitioning(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tsp_ising` is never used
[INFO] [stdout]   --> src/main.rs:61:4
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn tsp_ising(rng: &mut StdRng) -> (TspNode, Arc<IsingModel>, f64, f64) {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `knapsack` is never used
[INFO] [stdout]   --> src/main.rs:74:4
[INFO] [stdout]    |
[INFO] [stdout] 74 | fn knapsack(
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `J` should have a snake case name
[INFO] [stdout]   --> src/main.rs:36:17
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let mut J = Array2::zeros((n, n));
[INFO] [stdout]    |                 ^ help: convert the identifier to snake case: `j`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `J` should have a snake case name
[INFO] [stdout]   --> src/main.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |     let J = {
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Q` should have a snake case name
[INFO] [stdout]    --> src/main.rs:101:17
[INFO] [stdout]     |
[INFO] [stdout] 101 |         let mut Q = Array2::zeros((n, n));
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case: `q`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `B` should have a snake case name
[INFO] [stdout]    --> src/main.rs:102:13
[INFO] [stdout]     |
[INFO] [stdout] 102 |         let B = 40.;
[INFO] [stdout]     |             ^ help: convert the identifier to snake case: `b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `A` should have a snake case name
[INFO] [stdout]    --> src/main.rs:103:13
[INFO] [stdout]     |
[INFO] [stdout] 103 |         let A = 10. * B * max_c as f64;
[INFO] [stdout]     |             ^ help: convert the identifier to snake case: `a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Q` should have a snake case name
[INFO] [stdout]    --> src/main.rs:100:9
[INFO] [stdout]     |
[INFO] [stdout] 100 |     let Q = {
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `q`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `B` should have a snake case name
[INFO] [stdout]    --> src/main.rs:139:13
[INFO] [stdout]     |
[INFO] [stdout] 139 |         let B = 1.;
[INFO] [stdout]     |             ^ help: convert the identifier to snake case: `b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `A` should have a snake case name
[INFO] [stdout]    --> src/main.rs:140:13
[INFO] [stdout]     |
[INFO] [stdout] 140 |         let A = max_c * B * 3.;
[INFO] [stdout]     |             ^ help: convert the identifier to snake case: `a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Q` should have a snake case name
[INFO] [stdout]    --> src/main.rs:146:17
[INFO] [stdout]     |
[INFO] [stdout] 146 |         let mut Q = Array2::zeros((n + bin_n, n + bin_n));
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case: `q`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Q` should have a snake case name
[INFO] [stdout]    --> src/main.rs:137:9
[INFO] [stdout]     |
[INFO] [stdout] 137 |     let Q = {
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `q`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `T` should have a snake case name
[INFO] [stdout]    --> src/main.rs:229:9
[INFO] [stdout]     |
[INFO] [stdout] 229 |     let T = 10000.;
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::array`
[INFO] [stdout]  --> tests/opt.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::array;
[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: `combinatorial_optimization_solver::math::DiagonalMatrix`
[INFO] [stdout]  --> tests/opt.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use combinatorial_optimization_solver::math::DiagonalMatrix;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Array2`
[INFO] [stdout]  --> tests/opt.rs:7:23
[INFO] [stdout]   |
[INFO] [stdout] 7 | use ndarray::{Array1, Array2};
[INFO] [stdout]   |                       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IntoTriangular` and `UPLO`
[INFO] [stdout]  --> tests/opt.rs:8:22
[INFO] [stdout]   |
[INFO] [stdout] 8 | use ndarray_linalg::{IntoTriangular, Scalar, UPLO};
[INFO] [stdout]   |                      ^^^^^^^^^^^^^^          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::num`
[INFO] [stdout]  --> src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::num;
[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: `std::process::exit`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::process::exit;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `clone_array_row_matrix`
[INFO] [stdout]  --> src/main.rs:7:48
[INFO] [stdout]   |
[INFO] [stdout] 7 | use combinatorial_optimization_solver::model::{clone_array_row_matrix, IsingModel, QuboModel};
[INFO] [stdout]   |                                                ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Solver`
[INFO] [stdout]   --> src/main.rs:12:49
[INFO] [stdout]    |
[INFO] [stdout] 12 | use combinatorial_optimization_solver::solver::{Solver, SolverVariant};
[INFO] [stdout]    |                                                 ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ArrayBase`, `ArrayView1`, `ArrayView`, `Dim`, and `OwnedRepr`
[INFO] [stdout]   --> src/main.rs:14:41
[INFO] [stdout]    |
[INFO] [stdout] 14 | use ndarray::{array, s, Array1, Array2, ArrayBase, ArrayView, ArrayView1, Dim, OwnedRepr};
[INFO] [stdout]    |                                         ^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^^  ^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PathBuf` and `convert::TryFrom`
[INFO] [stdout]  --> src/dataset.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     convert::TryFrom,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 3 |     io::Error,
[INFO] [stdout] 4 |     path::{Path, PathBuf},
[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: `ReadBuf`
[INFO] [stdout]   --> src/dataset.rs:11:59
[INFO] [stdout]    |
[INFO] [stdout] 11 |     io::{AsyncBufRead, AsyncBufReadExt, BufReader, Lines, ReadBuf},
[INFO] [stdout]    |                                                           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray_linalg::IntoTriangular`
[INFO] [stdout]  --> src/math.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ndarray_linalg::IntoTriangular;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Add`, `MulAssign`, `Mul`, and `iter::Sum`
[INFO] [stdout]  --> src/model.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     iter::Sum,
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 3 |     ops::{Add, Mul, MulAssign},
[INFO] [stdout]   |           ^^^  ^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ArrayBase`, `Array`, and `RawData`
[INFO] [stdout]   --> src/model.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  9 |     Array, Array1, Array2, ArrayBase, ArrayView1, ArrayViewMut1, ArrayViewMut2, FixedInitializer,
[INFO] [stdout]    |     ^^^^^                  ^^^^^^^^^
[INFO] [stdout] 10 |     RawData,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::thread_rng`
[INFO] [stdout]   --> src/model.rs:13:20
[INFO] [stdout]    |
[INFO] [stdout] 13 | use ndarray_rand::{rand::thread_rng, rand_distr::WeightedAliasIndex};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::thread_rng`
[INFO] [stdout]    --> src/model.rs:228:9
[INFO] [stdout]     |
[INFO] [stdout] 228 |     use rand::thread_rng;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/opt.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 |     io::{self, BufRead, BufReader},
[INFO] [stdout]   |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Array1` and `Array4`
[INFO] [stdout]  --> src/opt.rs:9:15
[INFO] [stdout]   |
[INFO] [stdout] 9 | use ndarray::{Array1, Array2, Array4, ArrayView1};
[INFO] [stdout]   |               ^^^^^^          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToPrimitive`
[INFO] [stdout]   --> src/opt.rs:10:30
[INFO] [stdout]    |
[INFO] [stdout] 10 | use num_traits::{Float, Pow, ToPrimitive, Zero};
[INFO] [stdout]    |                              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::net::ToSocketAddrs`
[INFO] [stdout]   --> src/opt.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use tokio::net::ToSocketAddrs;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ThreadPool`
[INFO] [stdout]  --> src/solver/annealing_scheduler.rs:1:25
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rayon::{prelude::*, ThreadPool, ThreadPoolBuilder};
[INFO] [stdout]   |                         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `rc::Rc` and `sync::mpsc`
[INFO] [stdout]  --> src/solver/annealing_scheduler.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{rc::Rc, sync::mpsc};
[INFO] [stdout]   |           ^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `simulated_annealing::SimulatedAnnealing` and `simulated_quantum_annealing::SimulatedQuantumAnnealing`
[INFO] [stdout]  --> src/solver/annealing_scheduler.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |         simulated_annealing::SimulatedAnnealing,
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 8 |         simulated_quantum_annealing::SimulatedQuantumAnnealing, SolutionRecord, Solver,
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cmp::min`
[INFO] [stdout]  --> src/solver/simulated_annealing.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{cmp::min, sync::Arc};
[INFO] [stdout]   |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `getset::Getters`
[INFO] [stdout]  --> src/solver/simulated_annealing.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use getset::Getters;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Array2` and `MathCell`
[INFO] [stdout]  --> src/solver/simulated_annealing.rs:4:30
[INFO] [stdout]   |
[INFO] [stdout] 4 | use ndarray::{Array, Array1, Array2, MathCell};
[INFO] [stdout]   |                              ^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SliceRandom` and `ThreadRng`
[INFO] [stdout]  --> src/solver/simulated_annealing.rs:6:15
[INFO] [stdout]   |
[INFO] [stdout] 6 |     prelude::{SliceRandom, StdRng, ThreadRng},
[INFO] [stdout]   |               ^^^^^^^^^^^          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `array`
[INFO] [stdout]  --> src/solver/simulated_quantum_annealing.rs:1:15
[INFO] [stdout]   |
[INFO] [stdout] 1 | use ndarray::{array, Array, Array1, Array2};
[INFO] [stdout]   |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `getset::Getters`
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use getset::Getters;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Array2`
[INFO] [stdout]  --> src/solver.rs:7:23
[INFO] [stdout]   |
[INFO] [stdout] 7 | use ndarray::{Array1, Array2};
[INFO] [stdout]   |                       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray_rand::rand_distr::WeightedAliasIndex`
[INFO] [stdout]  --> src/solver.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use ndarray_rand::rand_distr::WeightedAliasIndex;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `thread_rng`
[INFO] [stdout]  --> src/solver.rs:9:34
[INFO] [stdout]   |
[INFO] [stdout] 9 | use rand::{prelude::SliceRandom, thread_rng, Rng};
[INFO] [stdout]   |                                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `channel::Embed`, `prelude::HttpError`, and `webhook::Webhook as SerenWebhook`
[INFO] [stdout]  --> src/webhook.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 |     model::{channel::Embed, webhook::Webhook as SerenWebhook},
[INFO] [stdout]   |             ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 5 |     prelude::HttpError,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Scalar`
[INFO] [stdout]  --> tests/opt.rs:8:38
[INFO] [stdout]   |
[INFO] [stdout] 8 | use ndarray_linalg::{IntoTriangular, Scalar, UPLO};
[INFO] [stdout]   |                                      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buf`
[INFO] [stdout]   --> src/dataset.rs:40:13
[INFO] [stdout]    |
[INFO] [stdout] 40 |     let mut buf = String::new();
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_buf`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/dataset.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |     let mut reader = BufReader::new(file);
[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/dataset.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |     let mut buf = String::new();
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray_linalg::Scalar`
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use ndarray_linalg::Scalar;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Float`
[INFO] [stdout]   --> src/main.rs:16:23
[INFO] [stdout]    |
[INFO] [stdout] 16 | use num_traits::{pow, Float};
[INFO] [stdout]    |                       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rng`
[INFO] [stdout]   --> src/main.rs:61:14
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn tsp_ising(rng: &mut StdRng) -> (TspNode, Arc<IsingModel>, f64, f64) {
[INFO] [stdout]    |              ^^^ help: if this is intentional, prefix it with an underscore: `_rng`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cost`
[INFO] [stdout]   --> src/main.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |     let cost = rng
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_cost`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `weight`
[INFO] [stdout]   --> src/main.rs:83:13
[INFO] [stdout]    |
[INFO] [stdout] 83 |     let mut weight = rng
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_weight`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:83:9
[INFO] [stdout]    |
[INFO] [stdout] 83 |     let mut weight = rng
[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: unused variable: `rng`
[INFO] [stdout]    --> src/main.rs:202:13
[INFO] [stdout]     |
[INFO] [stdout] 202 |     let mut rng = rand::rngs::StdRng::from_rng(rand::thread_rng()).unwrap();
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_rng`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opt_weight_bin`
[INFO] [stdout]    --> src/main.rs:214:9
[INFO] [stdout]     |
[INFO] [stdout] 214 |     let opt_weight_bin = {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_opt_weight_bin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:217:13
[INFO] [stdout]     |
[INFO] [stdout] 217 |         for i in 0..y_num {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `best_bin`
[INFO] [stdout]    --> src/main.rs:280:17
[INFO] [stdout]     |
[INFO] [stdout] 280 |             let best_bin = best_spins.slice(s![*data.n()..best_spins.len()]);
[INFO] [stdout]     |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_best_bin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `worst_bin`
[INFO] [stdout]    --> src/main.rs:293:17
[INFO] [stdout]     |
[INFO] [stdout] 293 |             let worst_bin = worst_spins.slice(s![*data.n()..worst_spins.len()]);
[INFO] [stdout]     |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_worst_bin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:202:9
[INFO] [stdout]     |
[INFO] [stdout] 202 |     let mut rng = rand::rngs::StdRng::from_rng(rand::thread_rng()).unwrap();
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `number_partitioning` is never used
[INFO] [stdout]   --> src/main.rs:24:4
[INFO] [stdout]    |
[INFO] [stdout] 24 | fn number_partitioning(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tsp_ising` is never used
[INFO] [stdout]   --> src/main.rs:61:4
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn tsp_ising(rng: &mut StdRng) -> (TspNode, Arc<IsingModel>, f64, f64) {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `knapsack` is never used
[INFO] [stdout]   --> src/main.rs:74:4
[INFO] [stdout]    |
[INFO] [stdout] 74 | fn knapsack(
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `J` should have a snake case name
[INFO] [stdout]   --> src/main.rs:36:17
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let mut J = Array2::zeros((n, n));
[INFO] [stdout]    |                 ^ help: convert the identifier to snake case: `j`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `J` should have a snake case name
[INFO] [stdout]   --> src/main.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |     let J = {
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Q` should have a snake case name
[INFO] [stdout]    --> src/main.rs:101:17
[INFO] [stdout]     |
[INFO] [stdout] 101 |         let mut Q = Array2::zeros((n, n));
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case: `q`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `B` should have a snake case name
[INFO] [stdout]    --> src/main.rs:102:13
[INFO] [stdout]     |
[INFO] [stdout] 102 |         let B = 40.;
[INFO] [stdout]     |             ^ help: convert the identifier to snake case: `b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `A` should have a snake case name
[INFO] [stdout]    --> src/main.rs:103:13
[INFO] [stdout]     |
[INFO] [stdout] 103 |         let A = 10. * B * max_c as f64;
[INFO] [stdout]     |             ^ help: convert the identifier to snake case: `a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Q` should have a snake case name
[INFO] [stdout]    --> src/main.rs:100:9
[INFO] [stdout]     |
[INFO] [stdout] 100 |     let Q = {
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `q`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `B` should have a snake case name
[INFO] [stdout]    --> src/main.rs:139:13
[INFO] [stdout]     |
[INFO] [stdout] 139 |         let B = 1.;
[INFO] [stdout]     |             ^ help: convert the identifier to snake case: `b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `A` should have a snake case name
[INFO] [stdout]    --> src/main.rs:140:13
[INFO] [stdout]     |
[INFO] [stdout] 140 |         let A = max_c * B * 3.;
[INFO] [stdout]     |             ^ help: convert the identifier to snake case: `a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Q` should have a snake case name
[INFO] [stdout]    --> src/main.rs:146:17
[INFO] [stdout]     |
[INFO] [stdout] 146 |         let mut Q = Array2::zeros((n + bin_n, n + bin_n));
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case: `q`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Q` should have a snake case name
[INFO] [stdout]    --> src/main.rs:137:9
[INFO] [stdout]     |
[INFO] [stdout] 137 |     let Q = {
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `q`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `T` should have a snake case name
[INFO] [stdout]    --> src/main.rs:229:9
[INFO] [stdout]     |
[INFO] [stdout] 229 |     let T = 10000.;
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FixedInitializer`
[INFO] [stdout]  --> src/model.rs:9:81
[INFO] [stdout]   |
[INFO] [stdout] 9 |     Array, Array1, Array2, ArrayBase, ArrayView1, ArrayViewMut1, ArrayViewMut2, FixedInitializer,
[INFO] [stdout]   |                                                                                 ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray_linalg::Scalar`
[INFO] [stdout]  --> src/solver/simulated_quantum_annealing.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ndarray_linalg::Scalar;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_traits::Float`
[INFO] [stdout]   --> src/model.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use num_traits::Float;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Pow`
[INFO] [stdout]   --> src/opt.rs:10:25
[INFO] [stdout]    |
[INFO] [stdout] 10 | use num_traits::{Float, Pow, ToPrimitive, Zero};
[INFO] [stdout]    |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Solver`
[INFO] [stdout]  --> src/solver/annealing_scheduler.rs:8:81
[INFO] [stdout]   |
[INFO] [stdout] 8 |         simulated_quantum_annealing::SimulatedQuantumAnnealing, SolutionRecord, Solver,
[INFO] [stdout]   |                                                                                 ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_traits::Float`
[INFO] [stdout]  --> src/solver/simulated_quantum_annealing.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use num_traits::Float;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num`
[INFO] [stdout]  --> src/math.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let num = f64::log2(integer as f64) as i32;
[INFO] [stdout]   |         ^^^ help: if this is intentional, prefix it with an underscore: `_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max`
[INFO] [stdout]   --> src/model.rs:94:13
[INFO] [stdout]    |
[INFO] [stdout] 94 |         let max = j_max.abs().max(h_max.abs());
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_max`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solver/simulated_annealing.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |         mut rng: Option<StdRng>,
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solver/simulated_annealing.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |         mut rng: Option<StdRng>,
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solver/simulated_annealing.rs:62:13
[INFO] [stdout]    |
[INFO] [stdout] 62 |         let mut rng = match rng {
[INFO] [stdout]    |             ----^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |         mut rng: Option<StdRng>,
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:68:9
[INFO] [stdout]    |
[INFO] [stdout] 68 |         mut rng: Option<StdRng>,
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:71:13
[INFO] [stdout]    |
[INFO] [stdout] 71 |         let mut rng = match rng {
[INFO] [stdout]    |             ----^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j_max`
[INFO] [stdout]    --> src/solver/simulated_quantum_annealing.rs:175:21
[INFO] [stdout]     |
[INFO] [stdout] 175 |                 let j_max = self.model.J().fold(0. / 0., |m, v| v.max(m)) * 0.3;
[INFO] [stdout]     |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_j_max`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]    --> src/solver/simulated_quantum_annealing.rs:271:17
[INFO] [stdout]     |
[INFO] [stdout] 271 |             for k in 0..self.P {
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `calculate_dE` is never used
[INFO] [stdout]    --> src/solver/simulated_quantum_annealing.rs:100:8
[INFO] [stdout]     |
[INFO] [stdout]  28 | impl SimulatedQuantumAnnealing {
[INFO] [stdout]     | ------------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 100 |     fn calculate_dE(
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `J` should have a snake case name
[INFO] [stdout]   --> src/model.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     J: Array2<f64>,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `j`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]   --> src/model.rs:39:27
[INFO] [stdout]    |
[INFO] [stdout] 39 |     fn init_dim1_spins<R>(N: usize, items: &[(i8, usize); 2], rng: &mut R) -> Array1<i8>
[INFO] [stdout]    |                           ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `J` should have a snake case name
[INFO] [stdout]   --> src/model.rs:63:13
[INFO] [stdout]    |
[INFO] [stdout] 63 |         let J = q.clone().into_triangular(UPLO::Upper) - q.to_daigonal_matrix();
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `J` should have a snake case name
[INFO] [stdout]   --> src/model.rs:86:20
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub fn new(mut J: Array2<f64>, mut h: Array1<f64>) -> Self {
[INFO] [stdout]    |                    ^ help: convert the identifier to snake case: `j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> src/model.rs:100:9
[INFO] [stdout]     |
[INFO] [stdout] 100 |         N: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> src/model.rs:122:26
[INFO] [stdout]     |
[INFO] [stdout] 122 |     pub fn init_spins<R>(N: usize, rng: &mut R) -> Array1<i8>
[INFO] [stdout]     |                          ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `calculate_dE` should have a snake case name
[INFO] [stdout]    --> src/model.rs:146:12
[INFO] [stdout]     |
[INFO] [stdout] 146 |     pub fn calculate_dE(&self, spins: ArrayView1<i8>, flip_spin: usize) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^ help: convert the identifier to snake case: `calculate_d_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `dE` should have a snake case name
[INFO] [stdout]    --> src/model.rs:147:17
[INFO] [stdout]     |
[INFO] [stdout] 147 |         let mut dE = self.h()[flip_spin];
[INFO] [stdout]     |                 ^^ help: convert the identifier to snake case: `d_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Q` should have a snake case name
[INFO] [stdout]    --> src/model.rs:176:5
[INFO] [stdout]     |
[INFO] [stdout] 176 |     Q: Array2<f64>,
[INFO] [stdout]     |     ^ help: convert the identifier to snake case: `q`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Q` should have a snake case name
[INFO] [stdout]    --> src/model.rs:183:16
[INFO] [stdout]     |
[INFO] [stdout] 183 |     pub fn new(Q: Array2<f64>) -> Self {
[INFO] [stdout]     |                ^ help: convert the identifier to snake case: `q`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Q` should have a snake case name
[INFO] [stdout]    --> src/model.rs:185:13
[INFO] [stdout]     |
[INFO] [stdout] 185 |         let Q = Q.clone().into_triangular(UPLO::Upper)
[INFO] [stdout]     |             ^ help: convert the identifier to snake case: `q`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> src/model.rs:191:9
[INFO] [stdout]     |
[INFO] [stdout] 191 |         N: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> src/model.rs:203:25
[INFO] [stdout]     |
[INFO] [stdout] 203 |     pub fn init_bits<R>(N: usize, rng: &mut R) -> Array1<i8>
[INFO] [stdout]     |                         ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Q` should have a snake case name
[INFO] [stdout]    --> src/opt.rs:227:17
[INFO] [stdout]     |
[INFO] [stdout] 227 |         let mut Q = Array2::zeros((tsp.dim.pow(2), tsp.dim.pow(2)));
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case: `q`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `T0` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_annealing.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     T0: f64,
[INFO] [stdout]    |     ^^ help: convert the identifier to snake case: `t0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Tf` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_annealing.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     Tf: f64,
[INFO] [stdout]    |     ^^ help: convert the identifier to snake case: `tf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `N` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_annealing.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     N: usize,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `T0` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_annealing.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |         T0: f64,
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case: `t0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Tf` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_annealing.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 |         Tf: f64,
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case: `tf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_annealing.rs:36:13
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let N = model.J().dim().0;
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `T0` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_annealing.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 54 |         T0: f64,
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case: `t0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Tf` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_annealing.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 55 |         Tf: f64,
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case: `tf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_annealing.rs:61:13
[INFO] [stdout]    |
[INFO] [stdout] 61 |         let N = model.J().dim().0;
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `T_array` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_annealing.rs:81:13
[INFO] [stdout]    |
[INFO] [stdout] 81 |         let T_array = Array::linspace(self.T0, self.Tf, self.steps);
[INFO] [stdout]    |             ^^^^^^^ help: convert the identifier to snake case: `t_array`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `T` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_annealing.rs:83:13
[INFO] [stdout]    |
[INFO] [stdout] 83 |         for T in &T_array {
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `delta_E` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_annealing.rs:85:17
[INFO] [stdout]    |
[INFO] [stdout] 85 |             let delta_E = self.model.calculate_dE(self.spins.view(), flip_index) as f64;
[INFO] [stdout]    |                 ^^^^^^^ help: convert the identifier to snake case: `delta_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `G0` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     G0: f64,
[INFO] [stdout]    |     ^^ help: convert the identifier to snake case: `g0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Gf` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     Gf: f64,
[INFO] [stdout]    |     ^^ help: convert the identifier to snake case: `gf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `T` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     T: f64,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `N` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     N: usize,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `P` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     P: usize,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `PT` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     PT: f64,
[INFO] [stdout]    |     ^^ help: convert the identifier to snake case: `pt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `G0` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 |         G0: f64,
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case: `g0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Gf` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |         Gf: f64,
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case: `gf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `T` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |         T: f64,
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `P` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |         P: usize,
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:39:13
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let N = model.J().dim().0;
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `G0` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:61:9
[INFO] [stdout]    |
[INFO] [stdout] 61 |         G0: f64,
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case: `g0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Gf` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 62 |         Gf: f64,
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case: `gf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `T` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:63:9
[INFO] [stdout]    |
[INFO] [stdout] 63 |         T: f64,
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `P` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |         P: usize,
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]   --> src/solver/simulated_quantum_annealing.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |         let N = model.J().dim().0;
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `calculate_dE` should have a snake case name
[INFO] [stdout]    --> src/solver/simulated_quantum_annealing.rs:100:8
[INFO] [stdout]     |
[INFO] [stdout] 100 |     fn calculate_dE(
[INFO] [stdout]     |        ^^^^^^^^^^^^ help: convert the identifier to snake case: `calculate_d_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `G_array` should have a snake case name
[INFO] [stdout]    --> src/solver/simulated_quantum_annealing.rs:162:13
[INFO] [stdout]     |
[INFO] [stdout] 162 |         let G_array = Array::linspace(self.G0, self.Gf, self.steps);
[INFO] [stdout]     |             ^^^^^^^ help: convert the identifier to snake case: `g_array`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `G` should have a snake case name
[INFO] [stdout]    --> src/solver/simulated_quantum_annealing.rs:164:13
[INFO] [stdout]     |
[INFO] [stdout] 164 |         for G in &G_array {
[INFO] [stdout]     |             ^ help: convert the identifier to snake case: `g`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `B` should have a snake case name
[INFO] [stdout]    --> src/solver/simulated_quantum_annealing.rs:177:21
[INFO] [stdout]     |
[INFO] [stdout] 177 |                 let B = -self.T / 2. * (1.0 / (G / self.PT).tanh()).log(consts::E);
[INFO] [stdout]     |                     ^ help: convert the identifier to snake case: `b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `delta_E` should have a snake case name
[INFO] [stdout]    --> src/solver/simulated_quantum_annealing.rs:179:21
[INFO] [stdout]     |
[INFO] [stdout] 179 |                 let delta_E = self.model.calculate_dE(self.spins.row(k), flip_local_index) as f64;
[INFO] [stdout]     |                     ^^^^^^^ help: convert the identifier to snake case: `delta_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `G_array` should have a snake case name
[INFO] [stdout]    --> src/solver/simulated_quantum_annealing.rs:267:13
[INFO] [stdout]     |
[INFO] [stdout] 267 |         let G_array = Array::linspace(self.G0, self.Gf, self.steps);
[INFO] [stdout]     |             ^^^^^^^ help: convert the identifier to snake case: `g_array`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `G` should have a snake case name
[INFO] [stdout]    --> src/solver/simulated_quantum_annealing.rs:269:13
[INFO] [stdout]     |
[INFO] [stdout] 269 |         for G in &G_array {
[INFO] [stdout]     |             ^ help: convert the identifier to snake case: `g`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `B` should have a snake case name
[INFO] [stdout]    --> src/solver/simulated_quantum_annealing.rs:276:25
[INFO] [stdout]     |
[INFO] [stdout] 276 |                     let B = self.T * (1.0 / (G / self.PT).tanh()).log(consts::E);
[INFO] [stdout]     |                         ^ help: convert the identifier to snake case: `b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `delta_E` should have a snake case name
[INFO] [stdout]    --> src/solver/simulated_quantum_annealing.rs:282:25
[INFO] [stdout]     |
[INFO] [stdout] 282 |                     let delta_E =
[INFO] [stdout]     |                         ^^^^^^^ help: convert the identifier to snake case: `delta_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: incorrect NaN comparison, NaN cannot be directly compared to itself
[INFO] [stdout]    --> src/solver/simulated_quantum_annealing.rs:299:24
[INFO] [stdout]     |
[INFO] [stdout] 299 |                     if acc.1 == f64::NAN {
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(invalid_nan_comparisons)]` on by default
[INFO] [stdout] help: use `f32::is_nan()` or `f64::is_nan()` instead
[INFO] [stdout]     |
[INFO] [stdout] 299 -                     if acc.1 == f64::NAN {
[INFO] [stdout] 299 +                     if acc.1.is_nan() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2.64s
[INFO] running `Command { std: "docker" "inspect" "079a434c2f1865829c05c7f47dc2722b264119e31e4bffbdb90dc56ac4fdd28e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "079a434c2f1865829c05c7f47dc2722b264119e31e4bffbdb90dc56ac4fdd28e", kill_on_drop: false }`
[INFO] [stdout] 079a434c2f1865829c05c7f47dc2722b264119e31e4bffbdb90dc56ac4fdd28e
