HDMRLib

A unified Python library for HDMR and EMPR

HDMRLib provides a consistent interface for decomposing high-dimensional tensors and multivariate functions into interpretable lower-order components. It supports both High-Dimensional Model Representation (HDMR) and Enhanced Multivariate Products Representation (EMPR) across NumPy, PyTorch, and TensorFlow backends.

HDMRLib overview illustration

Interpretable decomposition for high-dimensional structure

HDMRLib is designed for research and scientific computing workflows that require decomposition, approximation, and interaction analysis in high-dimensional settings. The library makes it easier to compute lower-order representations, inspect component terms, and work within a unified backend-flexible API.

Core capabilities

HDMR and EMPR in one interface

Work with classical HDMR and EMPR-based formulations through a consistent Python workflow.

Lower-order component analysis

Decompose tensors and multivariate functions into interpretable lower-order terms for inspection and analysis.

Multi-backend execution

Use the same workflow across NumPy, PyTorch, and TensorFlow, including tensor-based and GPU-enabled pipelines where supported.

What is HDMRLib?

HDMRLib is a research-oriented library for studying high-dimensional structure through lower-order representations. It supports decomposition, reconstruction, and component extraction for tensor-valued data and multivariate functions, making it suitable for experimentation, analysis, and scientific software workflows.

The library is particularly useful when interaction structure, approximation quality, and computational flexibility are central to the problem setting.

Supported backends

HDMRLib currently supports the following computational backends:

  • NumPy for standard array-based workflows

  • PyTorch for tensor computation and GPU-enabled pipelines

  • TensorFlow for TensorFlow-based numerical workflows

Explore the documentation

  • Start with the Installation guide to set up the library

  • Visit the User Guide for the main workflow

  • See Fundamentals for the underlying decomposition concepts

  • Browse the Examples gallery for practical use cases

  • Use the API Reference for detailed documentation