# VcDevel/Vc

SIMD Vector Classes for C++

Repository: https://github.com/VcDevel/Vc
Canonical: https://ross.abutalabs.com/products/vc
Language: C++
License: BSD-3-Clause
License Family: permissive
Topics: vectorization, parallel, simd-vector, simd-instructions, simd, avx, c-plus-plus, avx512, sse, neon, cpp, portable, cpp11, cpp14, cpp17, avx2, simd-programming, data-parallel, parallel-computing
Last push: 2026-07-07T14:19:59+00:00

## Health v2 (maintenance only)
Score: 64/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 91, release rhythm 8, longevity 100
- inputs: {"age_days": 4572, "days_push": 57, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1542, forks 152 (observed 2026-08-28T04:05:01.158536+00:00)

## What it is
Vc is a portable, zero-overhead C++ library providing vector class types for explicit data-parallel (SIMD) programming. It lets developers state parallelism via the type system and compile the same code for AVX, AVX2, SSE2-SSE4.2, or scalar targets across different compilers.

## Use cases
- explicitly vectorize C++ code with SIMD instructions
- write portable data-parallel code that compiles for AVX, SSE, or scalar targets
- speed up numeric loops that compilers fail to auto-vectorize efficiently
- apply the same operations to multiple values in parallel on the CPU
- migrate scalar math-heavy code to SIMD without writing intrinsics
- benchmark or compare vectorized vs scalar implementations across instruction sets

## When to choose
- you need explicit, fine-grained SIMD control in C++ without hand-written intrinsics
- you want one codebase portable across x86 SIMD instruction sets and compilers
- you are maintaining an existing project already built on Vc
- you need zero-overhead abstractions where parallelism is expressed through types

## When to avoid
- you are starting a new project - the README recommends std::simd (std-simd) instead
- you need AVX-512, NEON, or GPU/CUDA support, which is not available in the 1.x releases
- you rely on auto-vectorization of large loops spanning multiple translation units rather than explicit types
- you need actively developed features or new instruction set support

## Facets
- artifact type: library
- maturity: maintenance
- function: math, concurrency, compiler
- domain: performance, cross-platform
- platform: cpp, windows, cross-platform
- tags: simd, vectorization, data-parallel, avx, sse, explicit-vectorization, cpu-optimization, high-performance-computing, cpp11, cpp17, algorithms, linux, macos

## Member repositories
- VcDevel/Vc (main) score 64

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:05:01.158536+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T04:30:43.196915+00:00, confidence not recorded.
  - readme: https://github.com/VcDevel/Vc (fetched 2026-08-28T04:05:01.158536+00:00, sha 8ae910003624)
- Data as of 2026-08-30T08:39:29.467469+00:00.
