Loading...
Searching...
No Matches
Namespaces
horizontal.h File Reference
#include <cmath>
#include <numeric>
#include <concepts>
#include <algorithm>
#include <functional>
#include <type_traits>
#include "backbone/math.h"

Go to the source code of this file.

Namespaces

namespace  backbone
 Random number generator; built on top of Drjit.
 

Functions

Horizontal operations on scalars
template<typename T >
requires std::is_scalar_v<T>
hsum (const T &t)
 
template<typename T >
requires std::is_scalar_v<T>
hprod (const T &t)
 
template<typename T >
requires std::is_scalar_v<T>
hmax (const T &t)
 
template<typename T >
requires std::is_scalar_v<T>
hmin (const T &t)
 
template<typename T >
requires std::is_scalar_v<T>
dot (const T &a, const T &b)
 
template<typename T >
requires std::is_scalar_v<T>
norm (const T &t)
 
template<typename T >
requires std::is_scalar_v<T>
squared_norm (const T &t)
 
template<typename T >
requires std::is_scalar_v<T>
normalize (const T &)
 
Mask operations on scalars
template<typename T >
requires std::convertible_to<T, bool>
bool all (const T &t)
 
template<typename T >
requires std::convertible_to<T, bool>
bool any (const T &t)
 
template<typename T >
requires std::convertible_to<T, bool>
bool none (const T &t)
 
template<typename T >
requires std::convertible_to<T, bool>
size_t count (const T &t)
 
Horizontal operations on arrays
template<typename T , size_t N>
auto hsum (const array< T, N > &t)
 
template<typename T , size_t N>
auto hprod (const array< T, N > &t)
 
template<typename T , size_t N>
auto hmax (const array< T, N > &t)
 
template<typename T , size_t N>
auto hmin (const array< T, N > &t)
 
template<typename T , typename U , size_t N>
auto dot (const array< T, N > &a, const array< U, N > &b)
 
template<typename T , size_t N>
auto squared_norm (const array< T, N > &t)
 
template<typename T , size_t N>
auto norm (const array< T, N > &t)
 
template<typename T , size_t N>
auto normalize (const array< T, N > &t)
 
template<size_t N>
bool all (const array< bool, N > &t)
 \Name Mask operations on arrays
 
template<size_t N>
bool any (const array< bool, N > &t)
 
template<size_t N>
bool none (const array< bool, N > &t)
 
template<size_t N>
size_t count (const array< bool, N > &t)