POET

Getting Started

  • Installation
    • Local CMake project
    • Installed package
    • FetchContent
    • Non-CMake builds

Guides

  • Static Loops
    • Basic form
    • Step and direction
    • Block size
    • Runnable example
  • Dynamic Loops
    • Basic form
    • Lane-aware callbacks
    • Compile-time step
    • C++20 adaptor
    • Runnable example
  • Dispatch
    • Single parameter
    • Multiple parameters
    • Sparse combinations
    • Error handling
    • Runnable examples
  • Benchmarks
    • Run locally
    • Key takeaways
    • Run a microbench on Compiler Explorer

API Reference

  • POET API Reference
    • Class Hierarchy
    • File Hierarchy
    • Full API
      • Functions
        • Function poet::available_registers
        • Function poet::cache_line
        • Function poet::constructive_interference_size
        • Function poet::destructive_interference_size
        • Function poet::detected_isa
        • Template Function poet::dispatch(Functor&&, FirstParam&&, Rest&&…)
        • Template Function poet::dispatch(Functor&&, ParamTuple const&, Args&&…)
        • Template Function poet::dispatch(Functor&&, const dispatch_set<Tuples…>&, Args&&…)
        • Template Function poet::dispatch(throw_on_no_match_t, Functor&&, const dispatch_set<Tuples…>&, Args&&…)
        • Template Function poet::dispatch(throw_on_no_match_t, Functor&&, FirstParam&&, Rest&&…)
        • Template Function poet::dispatch(throw_on_no_match_t, Functor&&, ParamTuple const&, Args&&…)
        • Template Function poet::dynamic_for(T1, T2, T3, Func&&)
        • Template Function poet::dynamic_for(T1, T2, Func&&)
        • Function poet::registers_for
        • Template Function poet::static_for
        • Function poet::vector_lanes_32bit
        • Function poet::vector_lanes_64bit
        • Function poet::vector_register_count
        • Function poet::vector_width_bits
      • Directories
        • Directory include
        • Directory poet
        • Directory core
      • Files
        • File cpu_info.hpp
        • File dispatch.hpp
        • File dynamic_for.hpp
        • File for_utils.hpp
        • File mdspan_utils.hpp
        • File poet.hpp
        • File static_for.hpp
        • File version.hpp
POET
  • Namespace poet
  • Edit on GitHub

Namespace poet

Contents

  • Classes

  • Enums

  • Functions

  • Typedefs

  • Variables

Classes

  • Struct cache_line_info

  • Template Struct dispatch_param

  • Template Struct dispatch_set

  • Template Struct dispatch_set::convert_tuple

  • Template Struct dispatch_set::convert_tuple< tuple_< Vs… > >

  • Template Struct dispatch_set::same_arity

  • Struct no_match_error

  • Struct register_info

  • Struct throw_on_no_match_t

  • Template Struct tuple_

Enums

  • Enum instruction_set

Functions

  • Function poet::available_registers

  • Function poet::cache_line

  • Function poet::constructive_interference_size

  • Function poet::destructive_interference_size

  • Function poet::detected_isa

  • Function poet::registers_for

  • Function poet::vector_lanes_32bit

  • Function poet::vector_lanes_64bit

  • Function poet::vector_register_count

  • Function poet::vector_width_bits

Typedefs

  • Typedef poet::inclusive_range

Variables

  • Variable poet::throw_on_no_match

  • Variable poet::version_full

  • Variable poet::version_major

  • Variable poet::version_minor

  • Variable poet::version_patch

  • Variable poet::version_string


© Copyright 2025-2026, POET Authors.

Built with Sphinx using a theme provided by Read the Docs.