MostlyHarmless 0.0.1
 
Loading...
Searching...
No Matches
marvin_VecOps.h File Reference
#include <marvin/library/marvin_Concepts.h>
#include <marvin/library/marvin_Literals.h>
#include <type_traits>
#include <cstring>
#include <cassert>

Go to the source code of this file.

Namespaces

namespace  marvin
 A mostly harmless top-level namespace.
 
namespace  marvin::math
 Math helper functions and classes.
 
namespace  marvin::math::vecops
 Collection of basic arithmetic operations on vectors, SIMD accelerated where possible.
 

Functions

template<FloatType T>
void marvin::math::vecops::add (T *lhs, const T *rhs, size_t size) noexcept
 
template<FloatType T>
void marvin::math::vecops::add (T *arr, T scalar, size_t size) noexcept
 
template<FloatArrayLike T>
void marvin::math::vecops::add (T &lhs, T &rhs) noexcept
 
template<FloatArrayLike T>
void marvin::math::vecops::add (T &arr, typename T::value_type scalar) noexcept
 
template<FloatType T>
void marvin::math::vecops::subtract (T *lhs, const T *rhs, size_t size) noexcept
 
template<FloatType T>
void marvin::math::vecops::subtract (T *arr, T scalar, size_t size) noexcept
 
template<FloatArrayLike T>
requires std::is_floating_point_v<typename T::value_type>
void marvin::math::vecops::subtract (T &lhs, const T &rhs) noexcept
 
template<FloatArrayLike T>
void marvin::math::vecops::subtract (T &arr, typename T::value_type scalar) noexcept
 
template<FloatType T>
void marvin::math::vecops::multiply (T *lhs, const T *rhs, size_t size) noexcept
 
template<FloatType T>
void marvin::math::vecops::multiply (T *arr, T scalar, size_t size) noexcept
 
template<FloatArrayLike T>
void marvin::math::vecops::multiply (T &lhs, const T &rhs) noexcept
 
template<FloatArrayLike T>
void marvin::math::vecops::multiply (T &arr, typename T::value_type scalar) noexcept
 
template<FloatType T>
void marvin::math::vecops::divide (T *lhs, const T *rhs, size_t size) noexcept
 
template<FloatType T>
void marvin::math::vecops::divide (T *arr, T scalar, size_t size) noexcept
 
template<FloatArrayLike T>
void marvin::math::vecops::divide (T &lhs, const T &rhs) noexcept
 
template<FloatArrayLike T>
void marvin::math::vecops::divide (T &arr, typename T::value_type scalar) noexcept
 
template<NumericType T>
void marvin::math::vecops::copy (T *lhs, const T *rhs, size_t size) noexcept
 
template<ArrayLike T>
void marvin::math::vecops::copy (T &lhs, const T &rhs) noexcept