xtensor-stack/xtensor

C++ tensors with broadcasting and lazy computing

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 12 minutes ago
Added to GitGenius on September 18th, 2026
Created on October 30th, 2016
Open Issues & Pull Requests: 425 (+0)
GitHub issues: Enabled
Number of forks: 440
Total Stargazers: 3,762 (+0)
Total Subscribers: 82 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 19.3 days
Mean response time: 251.1 days
90th percentile: 974.3 days
Tracked items: 62

Most active contributors

Sign in to see contributor activity.

How this project is maintained

92% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Three people close 83% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 39
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 1,018 days
Stale 30+ days: 37
Stale 90+ days: 36

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • Bug (9)
  • Question (4)
  • Feature Request (3)
  • C++20 (2)
  • Enhancement (2)
  • Answered (1)
  • C++17 (1)
  • Compiler bug (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

xtensor is a C++ library for numerical analysis with multi-dimensional arrays that provides lazy broadcasting and expression-based computation.

The library solves the problem of performing efficient numerical operations on multi-dimensional data in C++ by offering an expression system that delays computation until results are needed, enabling lazy evaluation and automatic broadcasting. It follows C++ standard library idioms and provides an API inspired by NumPy, making it familiar to developers accustomed to Python's array programming model. The tool includes adaptors that allow existing data structures to be integrated into its expression system, and it can process NumPy, Julia, and R arrays in-place through language bindings.

Developers should choose xtensor for projects requiring high-performance numerical computing in C++ where lazy evaluation and broadcasting semantics are valuable. It suits applications that need to interoperate with Python data structures or other scientific computing ecosystems. The library is available as a header-only installation through package managers including mamba, conda, and vcpkg, making integration straightforward. It depends on the xtl library and optionally on xsimd for SIMD acceleration, which can be enabled by defining a preprocessor macro before including headers.

The project maintains active development with regular updates to support newer C++ standards, progressing from C++14 through C++17 and C++20 across successive versions. The tool is documented with comprehensive reference materials and supports interactive exploration through Jupyter notebooks via the xeus-cling kernel, enabling a NumPy-like workflow directly in C++.