Your browser doesn't support javascript.
loading
Show: 20 | 50 | 100
Results 1 - 1 de 1
Filter
Add more filters










Database
Language
Publication year range
1.
Algorithmica ; 86(1): 334-366, 2024.
Article in English | MEDLINE | ID: mdl-38188497

ABSTRACT

In this paper, we consider a general notion of convolution. Let D be a finite domain and let Dn be the set of n-length vectors (tuples) of D. Let f:D×D→D be a function and let ⊕f be a coordinate-wise application of f. The f-Convolution of two functions g,h:Dn→{-M,…,M} is (g⊛fh)(v):=∑vg,vh∈Dns.t.v=vg⊕fvhg(vg)·h(vh)for every v∈Dn. 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 O~(|D|2n·polylog(M)) time. Our main result is an improvement over this naive algorithm. We show that f-Convolution can be computed exactly in O~((c·|D|2)n·polylog(M)) for constant c:=3/4 when D has even cardinality. Our main observation is that a cyclic partition of a function f:D×D→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:Dn→{-M,…,M} alongside with a vector v∈Dn and the task of the f-Query problem is to compute integer (g⊛fh)(v). This is a generalization of the well-known Orthogonal Vectors problem. We show that f-Query can be computed in O~(|D|ω2n·polylog(M)) time, where ω∈[2,2.372) is the exponent of currently fastest matrix multiplication algorithm.

SELECTION OF CITATIONS
SEARCH DETAIL
...