In this paper, we consider a general notion of convolution. Let D be a finite domain and let D^n be the set of n-length vectors (tuples) of D. Let f :Dtimes Drightarrow D be a function and let oplus _f be a coordinate-wise application of f. The f-Convolution of two functions g,h :D^n rightarrow {-M,ldots ,M} is (g⊛fh)(v):=∑vg,vh∈Dns.t.v=vg⊕fvhg(vg)·h(vh)\\documentclass[12pt]{minimal} \\usepackage{amsmath} \\usepackage{wasysym} \\usepackage{amsfonts} \\usepackage{amssymb} \\usepackage{amsbsy} \\usepackage{mathrsfs} \\usepackage{upgreek} \\setlength{\\oddsidemargin}{-69pt} \\begin{document}$$\\begin{aligned} (g \\mathbin {\\circledast _{f}}h)(\ extbf{v}) {:}{=}\\sum _{\\begin{array}{c} \ extbf{v}_g,\ extbf{v}_h \\in D^n\\\\ \ ext {s.t. } \ extbf{v}= \ extbf{v}_g \\oplus _f \ extbf{v}_h \\end{array}} g(\ extbf{v}_g) \\cdot h(\ extbf{v}_h) \\end{aligned}$$\\end{document}for every textbf{v}in D^n. This problem generalizes many fundamental convolutions such as Subset Convolution, XOR Product, Covering Product or Packing Product, etc. For arbitrary function f and domain D we can compute f-Convolution via brute-force enumeration in widetilde{{mathcal {O}}}(|D|^{2n} cdot textrm{polylog}(M)) time. Our main result is an improvement over this naive algorithm. We show that f-Convolution can be computed exactly in widetilde{{mathcal {O}}}( (c cdot |D|^2)^{n} cdot textrm{polylog}(M)) for constant c {:}{=}3/4 when D has even cardinality. Our main observation is that a cyclic partition of a function f :Dtimes Drightarrow D can be used to speed up the computation of f-Convolution, and we show that an appropriate cyclic partition exists for every f. Furthermore, we demonstrate that a single entry of the f-Convolution can be computed more efficiently. In this variant, we are given two functions g,h :D^n rightarrow {-M,ldots ,M} alongside with a vector textbf{v}in D^n and the task of the f-Query problem is to compute integer (g mathbin {circledast _{f}}h)(textbf{v}). This is a generalization of the well-known Orthogonal Vectors problem. We show that f-Query can be computed in widetilde{{mathcal {O}}}(|D|^{frac{omega }{2} n} cdot textrm{polylog}(M)) time, where omega in [2,2.372) is the exponent of currently fastest matrix multiplication algorithm.
Read full abstract