From 4397c91570f1c7e8afb4bff346a4a1b8505216c4 Mon Sep 17 00:00:00 2001 From: Luis Moreno Date: Wed, 20 Oct 2021 13:50:14 -0500 Subject: [PATCH] Fix clippy warnings --- src/algorithm/neighbour/cover_tree.rs | 10 +++++----- src/algorithm/neighbour/linear_search.rs | 4 ++-- src/algorithm/sort/heap_select.rs | 3 +-- src/lib.rs | 2 +- src/linalg/naive/dense_matrix.rs | 2 +- src/linalg/ndarray_bindings.rs | 6 +++--- src/optimization/first_order/gradient_descent.rs | 6 +++--- src/optimization/first_order/lbfgs.rs | 6 +++--- src/preprocessing/series_encoder.rs | 6 ++---- src/svm/svc.rs | 4 ++-- src/tree/decision_tree_classifier.rs | 4 ++-- src/tree/decision_tree_regressor.rs | 2 +- 12 files changed, 26 insertions(+), 29 deletions(-) diff --git a/src/algorithm/neighbour/cover_tree.rs b/src/algorithm/neighbour/cover_tree.rs index e8fc937..8fb8b7d 100644 --- a/src/algorithm/neighbour/cover_tree.rs +++ b/src/algorithm/neighbour/cover_tree.rs @@ -117,7 +117,7 @@ impl> CoverTree } let e = self.get_data_value(self.root.idx); - let mut d = self.distance.distance(&e, p); + let mut d = self.distance.distance(e, p); let mut current_cover_set: Vec<(F, &Node)> = Vec::new(); let mut zero_set: Vec<(F, &Node)> = Vec::new(); @@ -175,7 +175,7 @@ impl> CoverTree if ds.0 <= upper_bound { let v = self.get_data_value(ds.1.idx); if !self.identical_excluded || v != p { - neighbors.push((ds.1.idx, ds.0, &v)); + neighbors.push((ds.1.idx, ds.0, v)); } } } @@ -200,7 +200,7 @@ impl> CoverTree let mut zero_set: Vec<(F, &Node)> = Vec::new(); let e = self.get_data_value(self.root.idx); - let mut d = self.distance.distance(&e, p); + let mut d = self.distance.distance(e, p); current_cover_set.push((d, &self.root)); while !current_cover_set.is_empty() { @@ -230,7 +230,7 @@ impl> CoverTree for ds in zero_set { let v = self.get_data_value(ds.1.idx); if !self.identical_excluded || v != p { - neighbors.push((ds.1.idx, ds.0, &v)); + neighbors.push((ds.1.idx, ds.0, v)); } } @@ -287,7 +287,7 @@ impl> CoverTree if point_set.is_empty() { self.new_leaf(p) } else { - let max_dist = self.max(&point_set); + let max_dist = self.max(point_set); let next_scale = (max_scale - 1).min(self.get_scale(max_dist)); if next_scale == std::i64::MIN { let mut children: Vec> = Vec::new(); diff --git a/src/algorithm/neighbour/linear_search.rs b/src/algorithm/neighbour/linear_search.rs index fd8cc6a..e2a1b6d 100644 --- a/src/algorithm/neighbour/linear_search.rs +++ b/src/algorithm/neighbour/linear_search.rs @@ -74,7 +74,7 @@ impl> LinearKNNSearch { } for i in 0..self.data.len() { - let d = self.distance.distance(&from, &self.data[i]); + let d = self.distance.distance(from, &self.data[i]); let datum = heap.peek_mut(); if d < datum.distance { datum.distance = d; @@ -104,7 +104,7 @@ impl> LinearKNNSearch { let mut neighbors: Vec<(usize, F, &T)> = Vec::new(); for i in 0..self.data.len() { - let d = self.distance.distance(&from, &self.data[i]); + let d = self.distance.distance(from, &self.data[i]); if d <= radius { neighbors.push((i, d, &self.data[i])); diff --git a/src/algorithm/sort/heap_select.rs b/src/algorithm/sort/heap_select.rs index 86a74ac..beb698f 100644 --- a/src/algorithm/sort/heap_select.rs +++ b/src/algorithm/sort/heap_select.rs @@ -53,8 +53,7 @@ impl<'a, T: PartialOrd + Debug> HeapSelection { if self.sorted { &self.heap[0] } else { - &self - .heap + self.heap .iter() .max_by(|a, b| a.partial_cmp(b).unwrap()) .unwrap() diff --git a/src/lib.rs b/src/lib.rs index c117039..2edada4 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -6,7 +6,7 @@ clippy::upper_case_acronyms )] #![warn(missing_docs)] -#![warn(missing_doc_code_examples)] +#![warn(rustdoc::missing_doc_code_examples)] //! # SmartCore //! diff --git a/src/linalg/naive/dense_matrix.rs b/src/linalg/naive/dense_matrix.rs index ae68015..9866618 100644 --- a/src/linalg/naive/dense_matrix.rs +++ b/src/linalg/naive/dense_matrix.rs @@ -330,7 +330,7 @@ impl DenseMatrix { cur_r: 0, max_c: self.ncols, max_r: self.nrows, - m: &self, + m: self, } } } diff --git a/src/linalg/ndarray_bindings.rs b/src/linalg/ndarray_bindings.rs index 0aa97aa..2e70e8d 100644 --- a/src/linalg/ndarray_bindings.rs +++ b/src/linalg/ndarray_bindings.rs @@ -178,7 +178,7 @@ impl BaseVector for ArrayBase, Ix } fn copy_from(&mut self, other: &Self) { - self.assign(&other); + self.assign(other); } } @@ -385,7 +385,7 @@ impl &Self { @@ -966,7 +966,7 @@ mod tests { let error: f64 = y .into_iter() .zip(y_hat.into_iter()) - .map(|(&a, &b)| (a - b).abs()) + .map(|(a, b)| (a - b).abs()) .sum(); assert!(error <= 1.0); diff --git a/src/optimization/first_order/gradient_descent.rs b/src/optimization/first_order/gradient_descent.rs index aba48a5..a936ae4 100644 --- a/src/optimization/first_order/gradient_descent.rs +++ b/src/optimization/first_order/gradient_descent.rs @@ -50,14 +50,14 @@ impl FirstOrderOptimizer for GradientDescent { let f_alpha = |alpha: T| -> T { let mut dx = step.clone(); dx.mul_scalar_mut(alpha); - f(&dx.add_mut(&x)) // f(x) = f(x .+ gvec .* alpha) + f(dx.add_mut(&x)) // f(x) = f(x .+ gvec .* alpha) }; let df_alpha = |alpha: T| -> T { let mut dx = step.clone(); let mut dg = gvec.clone(); dx.mul_scalar_mut(alpha); - df(&mut dg, &dx.add_mut(&x)); //df(x) = df(x .+ gvec .* alpha) + df(&mut dg, dx.add_mut(&x)); //df(x) = df(x .+ gvec .* alpha) gvec.dot(&dg) }; @@ -66,7 +66,7 @@ impl FirstOrderOptimizer for GradientDescent { let ls_r = ls.search(&f_alpha, &df_alpha, alpha, fx, df0); alpha = ls_r.alpha; fx = ls_r.f_x; - x.add_mut(&step.mul_scalar_mut(alpha)); + x.add_mut(step.mul_scalar_mut(alpha)); df(&mut gvec, &x); gnorm = gvec.norm2(); } diff --git a/src/optimization/first_order/lbfgs.rs b/src/optimization/first_order/lbfgs.rs index aaf2c89..6c0b89b 100644 --- a/src/optimization/first_order/lbfgs.rs +++ b/src/optimization/first_order/lbfgs.rs @@ -117,14 +117,14 @@ impl LBFGS { let f_alpha = |alpha: T| -> T { let mut dx = state.s.clone(); dx.mul_scalar_mut(alpha); - f(&dx.add_mut(&state.x)) // f(x) = f(x .+ gvec .* alpha) + f(dx.add_mut(&state.x)) // f(x) = f(x .+ gvec .* alpha) }; let df_alpha = |alpha: T| -> T { let mut dx = state.s.clone(); let mut dg = state.x_df.clone(); dx.mul_scalar_mut(alpha); - df(&mut dg, &dx.add_mut(&state.x)); //df(x) = df(x .+ gvec .* alpha) + df(&mut dg, dx.add_mut(&state.x)); //df(x) = df(x .+ gvec .* alpha) state.x_df.dot(&dg) }; @@ -206,7 +206,7 @@ impl FirstOrderOptimizer for LBFGS { ) -> OptimizerResult { let mut state = self.init_state(x0); - df(&mut state.x_df, &x0); + df(&mut state.x_df, x0); let g_converged = state.x_df.norm(T::infinity()) < self.g_atol; let mut converged = g_converged; diff --git a/src/preprocessing/series_encoder.rs b/src/preprocessing/series_encoder.rs index 2cd4133..ab99b08 100644 --- a/src/preprocessing/series_encoder.rs +++ b/src/preprocessing/series_encoder.rs @@ -134,10 +134,8 @@ where U: RealNumber, V: BaseVector, { - match self.get_num(category) { - None => None, - Some(&idx) => Some(make_one_hot::(idx, self.num_categories)), - } + self.get_num(category) + .map(|&idx| make_one_hot::(idx, self.num_categories)) } /// Invert one-hot vector, back to the category diff --git a/src/svm/svc.rs b/src/svm/svc.rs index 9c141e5..b12e558 100644 --- a/src/svm/svc.rs +++ b/src/svm/svc.rs @@ -377,7 +377,7 @@ impl<'a, T: RealNumber, M: Matrix, K: Kernel> Optimizer<'a, Optimizer { x, y, - parameters: ¶meters, + parameters, svmin: 0, svmax: 0, gmin: T::max_value(), @@ -589,7 +589,7 @@ impl<'a, T: RealNumber, M: Matrix, K: Kernel> Optimizer<'a, for i in 0..self.sv.len() { let v = &self.sv[i]; let z = v.grad - gm; - let k = cache.get(sv1, &v); + let k = cache.get(sv1, v); let mut curv = km + v.k - T::two() * k; if curv <= T::zero() { curv = self.tau; diff --git a/src/tree/decision_tree_classifier.rs b/src/tree/decision_tree_classifier.rs index 5ba096e..200fee5 100644 --- a/src/tree/decision_tree_classifier.rs +++ b/src/tree/decision_tree_classifier.rs @@ -380,7 +380,7 @@ impl DecisionTreeClassifier { depth: 0, }; - let mut visitor = NodeVisitor::::new(0, samples, &order, &x, &yi, 1); + let mut visitor = NodeVisitor::::new(0, samples, &order, x, &yi, 1); let mut visitor_queue: LinkedList> = LinkedList::new(); @@ -541,7 +541,7 @@ impl DecisionTreeClassifier { - T::from(tc).unwrap() / T::from(n).unwrap() * impurity(&self.parameters.criterion, &true_count, tc) - T::from(fc).unwrap() / T::from(n).unwrap() - * impurity(&self.parameters.criterion, &false_count, fc); + * impurity(&self.parameters.criterion, false_count, fc); if self.nodes[visitor.node].split_score == Option::None || gain > self.nodes[visitor.node].split_score.unwrap() diff --git a/src/tree/decision_tree_regressor.rs b/src/tree/decision_tree_regressor.rs index 21a6d00..6a0705f 100644 --- a/src/tree/decision_tree_regressor.rs +++ b/src/tree/decision_tree_regressor.rs @@ -280,7 +280,7 @@ impl DecisionTreeRegressor { depth: 0, }; - let mut visitor = NodeVisitor::::new(0, samples, &order, &x, &y_m, 1); + let mut visitor = NodeVisitor::::new(0, samples, &order, x, &y_m, 1); let mut visitor_queue: LinkedList> = LinkedList::new();