Library for sparse tensorized polynomials


I am wondering if there is a library for sparse tensorized poynomials?

For x \in \mathbb{R}^n, I am interested in functions f:\mathbb{R}^n \to \mathbb{R} that can be decomposed as a sum of tensorized polynomials:
f(x) = \sum_{\boldsymbol{\alpha}} c_{\boldsymbol{\alpha}} \psi_{\boldsymbol{\alpha}}(\mathbf{x}), where \boldsymbol{\alpha} = (\alpha_1, \ldots, \alpha_n) is a multi-index of non-negative integers and \psi_{\boldsymbol{\alpha}}(\mathbf{x}) = \prod_{j=1}^n \phi_{\alpha_j}(x_j), where \{ \phi_i \}_{i \in \mathbb{N} } is a family of univariate polynomials indexed over \mathbb{N}, e.g. univariate Hermite polynomials. Typically the multi-index \boldsymbol{\alpha} will be sparse.

I am particularly interested in fast computations of quantities like \nabla_x f(x) or \nabla_{c_{\boldsymbol{\beta}}} f by leveraging sparsity of the multi-indices \boldsymbol{\alpha}'s.

AdaptiveSparseGrids.jl and DistributedSparseGrids.jl both implement Smolyak grids for sparse approximation of functions over high-dimensional domains. These might be useful for you.