FreeBSD Manual Pages
std::experimental::clamp(3) C++ Standard Libary std::experimental::clamp(3) NAME std::experimental::clamp - std::experimental::clamp Synopsis Defined in header <experimental/simd> template< class T, class Abi > simd<T, Abi> (parallelism TS v2) clamp( const simd<T, Abi>& v, const simd<T, Abi>& lo, const simd<T, Abi>& hi ); Parameters v - the elements to clamp lo, hi - the boundaries to clamp v to Return value The result of element-wise application of std::clamp(v[i], lo[i], hi[i]) for all i [0, size()). Example // Run this code #include <cstddef> #include <cstdint> #include <experimental/simd> #include <iomanip> #include <iostream> namespace stdx = std::experimental; void println(auto rem, auto const v) { std::cout << rem << ": "; for (std::size_t i = 0; i != v.size(); ++i) std::cout << std::setw(4) << v[i] << ' '; std::cout << '\n'; } int main() { stdx::fixed_size_simd<int, 8> a{[](int i) { static constexpr auto c = {-129, -128, -1, 0, 42, 127, 128, 255}; return c.begin()[i]; }}; println("a", a); stdx::fixed_size_simd<int, 8> lo1{INT8_MIN}; stdx::fixed_size_simd<int, 8> hi1{INT8_MAX}; const auto b = stdx::clamp(a, lo1, hi1); println("b", b); stdx::fixed_size_simd<int, 8> lo2{0}; stdx::fixed_size_simd<int, 8> hi2{UINT8_MAX}; const auto c = stdx::clamp(a, lo2, hi2); println("c", c); } Output: a: -129 -128 -1 0 42 127 128 255 b: -128 -128 -1 0 42 127 127 127 c: 0 0 0 0 42 127 128 255 See also clamp clamps a value between a pair of boundary values (C++17) (function template) http://cppreference.com 2024.06.10 std::experimental::clamp(3)
NAME | Synopsis | Parameters | Return value | Example | Output: | See also
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::experimental::clamp&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>
