RawSpeed
fast raw decoding library
Loading...
Searching...
No Matches
Bit.h File Reference
#include "rawspeedconfig.h"
#include "adt/Casts.h"
#include "adt/Invariant.h"
#include <algorithm>
#include <array>
#include <bit>
#include <climits>
#include <concepts>
#include <cstdint>
#include <cstring>
#include <type_traits>
Include dependency graph for Bit.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  rawspeed

Functions

template<typename T>
constexpr bool RAWSPEED_READNONE rawspeed::isPowerOfTwo (T val)
template<class T>
constexpr unsigned RAWSPEED_READNONE rawspeed::bitwidth (T unused={})
template<class T>
requires std::unsigned_integral<T>
unsigned rawspeed::numSignBits (const T v)
template<class T>
requires (std::unsigned_integral<T> && bitwidth<T>() >= bitwidth<uint32_t>())
unsigned rawspeed::numActiveBits (const T v)
template<class T>
requires (std::unsigned_integral<T> && bitwidth<T>() < bitwidth<uint32_t>())
unsigned rawspeed::numActiveBits (const T v)
template<class T>
requires std::unsigned_integral<T>
unsigned rawspeed::numSignificantBits (const T v)
template<typename T>
requires std::is_arithmetic_v<T>
constexpr auto RAWSPEED_READNONE rawspeed::clampBits (T value, unsigned int nBits)
template<typename T>
requires std::is_arithmetic_v<T>
constexpr bool RAWSPEED_READNONE rawspeed::isIntN (T value, unsigned int nBits)
template<class T>
requires std::unsigned_integral<T>
constexpr RAWSPEED_READNONE T rawspeed::extractLowBits (T value, unsigned nBits)
template<class T>
requires std::unsigned_integral<T>
constexpr RAWSPEED_READNONE T rawspeed::extractLowBitsSafe (T value, unsigned nBits)
template<class T>
requires std::is_unsigned_v<T>
constexpr RAWSPEED_READNONE T rawspeed::extractHighBits (T value, unsigned nBits, unsigned effectiveBitwidth=bitwidth< T >())
template<typename T>
requires std::is_unsigned_v<T>
constexpr std::make_signed_t< T > RAWSPEED_READNONE rawspeed::signExtend (T value, unsigned int nBits)
template<class T>
requires std::same_as<T, uint8_t>
T rawspeed::bitreverse (const T v)
template<class T>
requires std::same_as<T, uint8_t>
std::array< T, 4 > rawspeed::bitreverse_each (std::array< T, 4 > x)