strides_equivalentについて質問させていただきます。
この関数はDocumentにあるとおり、stride1とstride2がselfのstrideにequivalentかどうかを判断するメソッドだと思います。
その関数内で
rust
1&& izip!(self.slice(), strides1.slice(), strides2.slice()) 2 .all(|(&d, &s1, &s2)| d <= 1 || s1 as isize == s2 as isize)
長さ>1の各軸について、ストライドが等しい場合、そのストライドは等価である。
と書いてありますが、長さ1以下で場合分けする理由がわかりません。
このメソッドが使用されているのは、zip_mut_with_same_shape
などがあります。他のものは見つけられませんでしたので、この部分でのみ利用されていると考えられます。
この中では、最初にself
とrhs
のdimを比較しています(shape
メソッドはdimをスライスの参照にしたものを戻り値としています。)
そのため、dimが同じであるとわかっているならば、stride
の比較のみをすればいいと主ます。なので、
rust
1&& izip!(strides1.slice(), strides2.slice()) 2 .all(|(&s1, &s2)| s1 as isize == s2 as isize)
で事足りると思いました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。