Loading...
Searching...
No Matches
ExactReduction.cpp File Reference
#include "eon/ExactReduction.h"
#include <array>
#include <bit>
#include <cmath>
#include <cstdint>
#include <cstring>

Go to the source code of this file.

Namespaces

namespace  eonc
 RAII resource manager for the ARTn C library with global synchronization.
namespace  eonc::exact

Macros

#define EONC_EXACT_INLINE   inline

Functions

double eonc::exact::dot (const double *x, const double *y, std::size_t n)
 Round-to-nearest-even value of the exact sum of x[i] * y[i].
double eonc::exact::orderedDot (const double *x, const double *y, std::size_t n)
 A fixed summation tree: four lanes (term i goes to lane i mod 4, each lane a left-to-right sum of rounded products), then (l0 + l1) + (l2 + l3).
double eonc::exact::sum (const double *x, std::size_t n)
 Round-to-nearest-even value of the exact sum of x[i].
double eonc::exact::sumStrided (const double *x, std::size_t n, std::size_t stride)
 Same sum for x[i * stride].

Variables

constexpr std::size_t eonc::exact::kLanes = 4

Macro Definition Documentation

◆ EONC_EXACT_INLINE

#define EONC_EXACT_INLINE   inline

Definition at line 322 of file ExactReduction.cpp.