You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: src/convolution.rs
+154
Original file line number
Diff line number
Diff line change
@@ -1,3 +1,16 @@
1
+
//! Functions that calculate $(+, \times)$ convolution.
2
+
//!
3
+
//! Given two non-empty sequences $a_0, a_1, \ldots, a_{N - 1}$ and $b_0, b_1, \ldots, b_{M - 1}$, they calculate the sequence $c$ of length $N + M - 1$ defined by
4
+
//!
5
+
//! \\[
6
+
//! c_i = \sum_ {j = 0}^i a_j b_{i - j}
7
+
//! \\]
8
+
//!
9
+
//! # Major changes from the original ACL
10
+
//!
11
+
//! - Separated the overloaded `convolution` into `convolution<_>` and `convolution_raw<_, _>`.
12
+
//! - Renamed `convolution_ll` to `convolution_i64`.
13
+
1
14
macro_rules! modulus {
2
15
($($name:ident),*) => {
3
16
$(
@@ -29,6 +42,54 @@ use std::{
29
42
fmt,
30
43
};
31
44
45
+
/// Calculates the $(+, \times)$ convolution in $\mathbb{Z}/p\mathbb{Z}$.
46
+
///
47
+
/// See the [module-level documentation] for more details.
0 commit comments