# jfalcou/eve architecture

> Architecture diagram of the GitHub repository jfalcou/eve, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/jfalcou/eve
- Repository: https://github.com/jfalcou/eve

## Overview

EVE is a header-only C++ SIMD library: callers use its value types and callable operations to process scalar or vector data, with architecture-specific implementations selected for supported SIMD targets. Its broader product includes SIMD-friendly range algorithms, memory utilities, and numerical/combinatorial modules. The graph reflects the documented capabilities and paths in the supplied tree; sampled implementation excerpts are limited, so some subsystem wiring is intentionally not shown.

Main entry points: [`include/eve/module/core.hpp`](https://github.com/jfalcou/eve/blob/main/include/eve/module/core.hpp) (Core operations), [`include/eve/module/core/regular/average.hpp`](https://github.com/jfalcou/eve/blob/main/include/eve/module/core/regular/average.hpp) (Arithmetic callables), [`include/eve/detail/implementation.hpp`](https://github.com/jfalcou/eve/blob/main/include/eve/detail/implementation.hpp) (Callable dispatch), [`include/eve/detail/function/simd`](https://github.com/jfalcou/eve/tree/main/include/eve/detail/function/simd) (SIMD backends)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["Public API"]
  node_facade["EVE headers<br/>[eve.hpp]"]
  node_concepts["SIMD concepts<br/>[simd.hpp]"]
  node_conditions["Lane conditions<br/>[conditional.hpp]"]
  node_core["Core operations<br/>[core.hpp]"]
  node_arithmetic["Arithmetic callables<br/>[average.hpp]"]
  node_constants["Constants"]
  node_memory["SIMD memory<br/>[memory.hpp]"]
end

subgraph group_simd["SIMD Runtime"]
  node_wide["Wide values<br/>[wide.hpp]"]
  node_logical["Logical values<br/>[logical.hpp]"]
  node_dispatch["Callable dispatch<br/>[implementation.hpp]"]
  node_arch["Architecture traits<br/>[arch.hpp]"]
  node_backend["SIMD backends"]
  node_shuffle["Lane shuffles"]
end

subgraph group_algorithms["Range Algorithms"]
  node_algo["Range algorithms"]
  node_views["Range views"]
  node_soa["SoA container<br/>[soa_vector.hpp]"]
end

subgraph group_modules["Math Modules"]
  node_bessel["Bessel functions<br/>[bessel.hpp]"]
  node_combinatorial["Combinatorial functions<br/>[combinatorial.hpp]"]
end

node_caller(("C++ caller"))
node_result["Computed values"]

node_caller -->|"includes"| node_facade
node_facade -->|"exposes"| node_core
node_caller -->|"invokes"| node_algo
node_caller -->|"invokes"| node_bessel
node_caller -->|"invokes"| node_combinatorial
node_caller -->|"uses"| node_memory
node_core -->|"exposes"| node_arithmetic
node_core -->|"exposes"| node_constants
node_caller -->|"constructs"| node_wide
node_wide -->|"satisfies"| node_concepts
node_caller -->|"masks lanes"| node_conditions
node_arithmetic -->|"dispatches"| node_dispatch
node_dispatch -->|"selects target"| node_arch
node_dispatch -->|"dispatches to"| node_backend
node_backend -->|"computes"| node_result
node_arithmetic -->|"computes"| node_result
node_caller -->|"composes"| node_views
node_caller -->|"uses"| node_soa
node_caller -->|"receives"| node_result
node_algo -->|"produces"| node_result
node_bessel -->|"computes"| node_result
node_combinatorial -->|"computes"| node_result
node_shuffle -->|"supports"| node_backend

click node_facade "https://github.com/jfalcou/eve/blob/main/include/eve/eve.hpp"
click node_concepts "https://github.com/jfalcou/eve/blob/main/include/eve/concept/simd.hpp"
click node_wide "https://github.com/jfalcou/eve/blob/main/include/eve/arch/wide.hpp"
click node_logical "https://github.com/jfalcou/eve/blob/main/include/eve/logical.hpp"
click node_conditions "https://github.com/jfalcou/eve/blob/main/include/eve/conditional.hpp"
click node_dispatch "https://github.com/jfalcou/eve/blob/main/include/eve/detail/implementation.hpp"
click node_arch "https://github.com/jfalcou/eve/blob/main/include/eve/arch.hpp"
click node_backend "https://github.com/jfalcou/eve/tree/main/include/eve/detail/function/simd"
click node_core "https://github.com/jfalcou/eve/blob/main/include/eve/module/core.hpp"
click node_arithmetic "https://github.com/jfalcou/eve/blob/main/include/eve/module/core/regular/average.hpp"
click node_constants "https://github.com/jfalcou/eve/tree/main/include/eve/module/core/constant"
click node_shuffle "https://github.com/jfalcou/eve/tree/main/include/eve/detail/shuffle_v2"
click node_memory "https://github.com/jfalcou/eve/blob/main/include/eve/memory.hpp"
click node_algo "https://github.com/jfalcou/eve/tree/main/include/eve/module/algo/algo"
click node_views "https://github.com/jfalcou/eve/tree/main/include/eve/module/algo/views"
click node_soa "https://github.com/jfalcou/eve/blob/main/include/eve/module/algo/algo/container/soa_vector.hpp"
click node_bessel "https://github.com/jfalcou/eve/blob/main/include/eve/module/bessel.hpp"
click node_combinatorial "https://github.com/jfalcou/eve/blob/main/include/eve/module/combinatorial.hpp"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_facade,node_concepts,node_conditions,node_core,node_arithmetic,node_constants,node_memory toneBlue
class node_wide,node_logical,node_dispatch,node_arch,node_backend,node_shuffle toneAmber
class node_algo,node_views,node_soa toneMint
class node_bessel,node_combinatorial toneRose
class node_caller,node_result toneIndigo
```

## Components

### Public API

- [EVE headers](https://github.com/jfalcou/eve/blob/main/include/eve/eve.hpp): `include/eve/eve.hpp`
- [SIMD concepts](https://github.com/jfalcou/eve/blob/main/include/eve/concept/simd.hpp): `include/eve/concept/simd.hpp`
- [Lane conditions](https://github.com/jfalcou/eve/blob/main/include/eve/conditional.hpp): `include/eve/conditional.hpp`
- [Core operations](https://github.com/jfalcou/eve/blob/main/include/eve/module/core.hpp): `include/eve/module/core.hpp`
- [Arithmetic callables](https://github.com/jfalcou/eve/blob/main/include/eve/module/core/regular/average.hpp): `include/eve/module/core/regular/average.hpp`
- [Constants](https://github.com/jfalcou/eve/tree/main/include/eve/module/core/constant): `include/eve/module/core/constant`
- [SIMD memory](https://github.com/jfalcou/eve/blob/main/include/eve/memory.hpp): `include/eve/memory.hpp`

### SIMD Runtime

- [Wide values](https://github.com/jfalcou/eve/blob/main/include/eve/arch/wide.hpp): `include/eve/arch/wide.hpp`
- [Logical values](https://github.com/jfalcou/eve/blob/main/include/eve/logical.hpp): `include/eve/logical.hpp`
- [Callable dispatch](https://github.com/jfalcou/eve/blob/main/include/eve/detail/implementation.hpp): `include/eve/detail/implementation.hpp`
- [Architecture traits](https://github.com/jfalcou/eve/blob/main/include/eve/arch.hpp): `include/eve/arch.hpp`
- [SIMD backends](https://github.com/jfalcou/eve/tree/main/include/eve/detail/function/simd): `include/eve/detail/function/simd`
- [Lane shuffles](https://github.com/jfalcou/eve/tree/main/include/eve/detail/shuffle_v2): `include/eve/detail/shuffle_v2`

### Range Algorithms

- [Range algorithms](https://github.com/jfalcou/eve/tree/main/include/eve/module/algo/algo): `include/eve/module/algo/algo`
- [Range views](https://github.com/jfalcou/eve/tree/main/include/eve/module/algo/views): `include/eve/module/algo/views`
- [SoA container](https://github.com/jfalcou/eve/blob/main/include/eve/module/algo/algo/container/soa_vector.hpp): `include/eve/module/algo/algo/container/soa_vector.hpp`

### Math Modules

- [Bessel functions](https://github.com/jfalcou/eve/blob/main/include/eve/module/bessel.hpp): `include/eve/module/bessel.hpp`
- [Combinatorial functions](https://github.com/jfalcou/eve/blob/main/include/eve/module/combinatorial.hpp): `include/eve/module/combinatorial.hpp`

### Other components

- **C++ caller**
- **Computed values**

## Connections

- C++ caller → EVE headers: includes
- EVE headers → Core operations: exposes
- C++ caller → Range algorithms: invokes
- C++ caller → Bessel functions: invokes
- C++ caller → Combinatorial functions: invokes
- C++ caller → SIMD memory: uses
- Core operations → Arithmetic callables: exposes
- Core operations → Constants: exposes
- C++ caller → Wide values: constructs
- Wide values → SIMD concepts: satisfies
- C++ caller → Lane conditions: masks lanes
- Arithmetic callables → Callable dispatch: dispatches
- Callable dispatch → Architecture traits: selects target
- Callable dispatch → SIMD backends: dispatches to
- SIMD backends → Computed values: computes
- Arithmetic callables → Computed values: computes
- C++ caller → Range views: composes
- C++ caller → SoA container: uses
- C++ caller → Computed values: receives
- Range algorithms → Computed values: produces
- Bessel functions → Computed values: computes
- Combinatorial functions → Computed values: computes
- Lane shuffles → SIMD backends: supports
