serenity/AK
Jelle Raaijmakers 8483064b59 AK: Add FloatingPoint.h
This is a set of functions that allow you to convert between arbitrary
IEEE 754 floating point types, as long as they can be represented
within 64 bits. Conversion methods between floats and doubles are
provided, as well as a generic `float_to_float()`.

Example usage:

  #include <AK/FloatingPoint.h>

  double val = 1.234;
  auto weird_f16 =
      convert_from_native_double<FloatingPointBits<0, 6, 10>>(val);

Signed and unsigned floats are supported, and both NaN and +/-Inf are
handled correctly. Values that do not fit in the target floating point
type are clamped.
2022-08-27 12:28:05 +02:00
..
.clang-tidy
AllOf.h AK: Add nodiscard attribute to AllOf functions 2022-07-04 05:53:56 +00:00
AnyOf.h AK: Add nodiscard attribute to AnyOf functions 2022-07-04 05:53:56 +00:00
ArbitrarySizedEnum.h AK: Add an ArbitrarySizedEnum template 2022-03-27 18:54:56 +02:00
Array.h AK+Userland: Rename Array::front/back to first/last 2022-04-06 14:31:52 +02:00
Assertions.h AK: Make VERIFY() work in MinSizeRel builds 2022-07-09 22:15:43 +02:00
Atomic.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
AtomicRefCounted.h AK+Kernel: Add AK::AtomicRefCounted and use everywhere in the kernel 2022-08-20 17:15:52 +02:00
Badge.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
Base64.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
Base64.h AK: Add nodiscard attribute to Base64 functions 2022-07-04 05:53:56 +00:00
BinaryBufferWriter.h
BinaryHeap.h AK: Add nodiscard attribute to BinaryHeap functions 2022-07-04 05:53:56 +00:00
BinarySearch.h AK: Add nodiscard attribute to BinarySearch functions 2022-07-04 05:53:56 +00:00
BitCast.h AK: Allow bit_cast to be used in constant evaluated context 2022-08-15 17:11:25 +02:00
Bitmap.h AK: Make Bitmap construction OOM-fallible 2022-02-11 17:49:46 +02:00
BitmapView.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
BitStream.h AK: Add nodiscard attribute to BitStream functions 2022-07-04 05:53:56 +00:00
Buffered.h Everywhere: Switch from EnableIf to requires 2022-03-17 22:15:42 -07:00
BuiltinWrappers.h AK: Fix usage of undefined variables 2022-07-31 11:08:33 +02:00
BumpAllocator.h AK+LibGfx+LibJS: Pass -1 as the file descriptor to anonymous mmap 2022-07-19 12:39:24 +02:00
ByteBuffer.h AK: Add Traits<ByteBuffer>::hash() 2022-07-14 00:42:26 +01:00
ByteReader.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
CharacterTypes.h AK: Change static base36 character map to function-local constexpr 2022-02-10 10:22:54 +00:00
Checked.h AK: Add saturating addition and subtraction to Checked 2022-06-23 23:26:33 +01:00
CheckedFormatString.h AK: Make CheckedFormatString pass the char array size to StringView 2022-07-12 23:11:35 +02:00
CircularDeque.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
CircularDuplexStream.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
CircularQueue.h AK: Add non-const iterator for CircularQueue 2022-04-03 09:49:08 -07:00
CMakeLists.txt
Complex.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
Concepts.h AK: Add a OneOfIgnoringCV concept 2022-04-20 00:15:23 +04:30
DateConstants.h Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
DateTimeLexer.h
Debug.h.in Kernel+LibPartition: Move GUIDPartitionTable into LibPartition 2022-07-21 20:13:44 +01:00
Demangle.h Everywhere: Explicitly specify the size in StringView constructors 2022-07-12 23:11:35 +02:00
DisjointChunks.h AK: Skip over initial empty chunks in DisjointChunks 2022-02-27 00:11:14 +03:30
DistinctNumeric.h Everywhere: Prefix 'TYPEDEF_DISTINCT_ORDERED_ID' with 'AK_' 2022-07-22 23:09:43 +01:00
DoublyLinkedList.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
Endian.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
EnumBits.h
Error.h Everywhere: Split Error::from_string_literal and Error::from_string_view 2022-07-12 23:11:35 +02:00
ExtraMathConstants.h
FileStream.h
Find.h AK: Add nodiscard attribute to Find functions 2022-07-04 05:53:56 +00:00
FixedArray.h AK: Make empty FixedArray smaller 2022-08-27 12:19:37 +02:00
FixedPoint.h AK: Make sure we don't include Math.h or math.h from KERNEL 2022-04-23 10:43:32 -07:00
FloatingPoint.h AK: Add FloatingPoint.h 2022-08-27 12:28:05 +02:00
FlyString.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
FlyString.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
Format.cpp Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
Format.h Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
Forward.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
FPControl.h AK: Add a cpp-y, more fine grained version of fenv.h: FPControl.h 2022-05-07 20:27:05 +02:00
Function.h
FuzzyMatch.h AK: Add FuzzyMatch header 2022-04-20 18:34:09 +02:00
GenericLexer.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
GenericLexer.h Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
GenericShorthands.h AK: Add header for generic shorthands 2022-07-04 11:15:40 +02:00
HashFunctions.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
HashMap.h AK+LibGUI: Pass predicate to *_matching() methods by const reference 2022-05-08 17:02:00 +02:00
HashTable.h AK: Zero previous pointer *after* fixing the insertion list in HashTable 2022-06-23 20:25:12 +03:00
Hex.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
Hex.h AK: Return KString instead of String from encode_hex in the Kernel 2022-02-16 22:21:37 +01:00
IDAllocator.h
IntegralMath.h AK: Add AK::ceil(float) and AK::ceil_log2(integer) 2022-06-30 11:16:22 +02:00
IntrusiveDetails.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
IntrusiveList.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
IntrusiveListRelaxedConst.h
IntrusiveRedBlackTree.h AK: Expose RedBlackTree::find_smallest_not_below() 2022-04-21 13:16:56 +02:00
IPv4Address.h AK: Add IPv4Address::netmask_from_cidr 2022-07-09 09:22:25 +01:00
IPv6Address.h AK: Add Kernel namespace to KStrings in AK::IPv6Address 2022-04-17 16:57:52 -07:00
IterationDecision.h
Iterator.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
JsonArray.h Everywhere: Make JSON serialization fallible 2022-02-27 20:37:57 +01:00
JsonArraySerializer.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
JsonObject.h Everywhere: Replace single-char StringView op. arguments with chars 2022-07-12 23:11:35 +02:00
JsonObjectSerializer.h Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
JsonParser.cpp Everywhere: Split Error::from_string_literal and Error::from_string_view 2022-07-12 23:11:35 +02:00
JsonParser.h AK: Remove unused String[256] from JsonParser 2022-03-10 18:43:09 +01:00
JsonPath.cpp Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
JsonPath.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
JsonValue.cpp AK: Treat empty string as invalid JSON 2022-07-10 23:31:48 +02:00
JsonValue.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
kmalloc.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
kmalloc.h AK+Kernel: Avoid double memory clearing of HashTable buckets 2022-03-15 11:56:46 +01:00
kstdio.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
LEB128.h AK: Always check shift amount in LEB128 read functions 2022-07-09 22:04:31 +00:00
LexicalPath.cpp Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
LexicalPath.h
MACAddress.h Everywhere: Replace single-char StringView op. arguments with chars 2022-07-12 23:11:35 +02:00
Math.h AK: Add AK::ceil(float) and AK::ceil_log2(integer) 2022-06-30 11:16:22 +02:00
MemMem.h AK: Use the correct data types in bitap_bitwise() 2022-07-14 13:10:23 +02:00
Memory.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
MemoryStream.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
NeverDestroyed.h
NoAllocationGuard.h Everywhere: Use my new serenityos.org e-mail :^) 2022-01-14 11:54:09 +01:00
Noncopyable.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
NonnullOwnPtr.h Revert "AK: Add comparison operators to NonnullOwnPtr" 2022-06-18 13:17:49 +01:00
NonnullOwnPtrVector.h
NonnullPtrVector.h LibWeb: Make reverse iterators work for const NonnullPtrVectors 2022-04-13 19:52:25 +02:00
NonnullRefPtr.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
NonnullRefPtrVector.h
NumberFormat.h AK: Add human_readable_digital_time() helper 2022-08-05 13:55:13 +02:00
NumericLimits.h
Optional.h AK: Allow Optional<T&> to exist 2022-04-04 12:48:31 +02:00
OwnPtr.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
Platform.h AK: Prefix CACHE_ALIGNED & SYSTEM_CACHE_ALIGNMENT_SIZE 2022-08-01 00:19:16 +02:00
PrintfImplementation.h AK: Make sure we don't include Math.h or math.h from KERNEL 2022-04-23 10:43:32 -07:00
Ptr32.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
Queue.h
QuickSort.h
Random.cpp
Random.h AK: Add support for building on Android with API version >= 30 2022-07-19 10:44:02 +01:00
RecursionDecision.h
RedBlackTree.h AK: Expose RedBlackTree::find_smallest_not_below() 2022-04-21 13:16:56 +02:00
RefCounted.h AK+Kernel: Add AK::AtomicRefCounted and use everywhere in the kernel 2022-08-20 17:15:52 +02:00
RefCountForwarder.h
RefPtr.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
Result.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
ReverseIterator.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
ScopedValueRollback.h
ScopeGuard.h
ScopeLogger.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
SIMD.h
SIMDExtras.h LibGfx: Implement PNG filtering on write 2022-07-10 15:01:07 +02:00
SIMDMath.h AK: Add clamp(f32x4, float, float) 2022-05-09 21:49:48 +02:00
Singleton.h AK: Add Singleton special-case constructor for SpinlockProtected 2022-08-19 20:26:47 -07:00
SinglyLinkedList.h AK: Add SinglyLinkedList::prepend() 2022-06-10 19:06:46 +01:00
SinglyLinkedListWithCount.h
SourceGenerator.h AK: Add string literal helpers to AK::SourceGenerator 2022-07-12 23:11:35 +02:00
SourceLocation.h Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
Span.h AK: Add last() utility function to Span 2022-04-02 21:50:41 +02:00
Stack.h
StackInfo.cpp AK: Port StackInfo to FreeBSD 2022-07-19 12:39:24 +02:00
StackInfo.h
Statistics.h
StdLibExtraDetails.h AK: Add a OneOfIgnoringCV concept 2022-04-20 00:15:23 +04:30
StdLibExtras.h AK: Suppress -Wunqualified-std-cast-call in the CLion IDE 2022-08-05 12:42:46 +02:00
Stream.h Everywhere: Split Error::from_string_literal and Error::from_string_view 2022-07-12 23:11:35 +02:00
String.cpp AK: Remove String <-> char const* comparison operators 2022-07-12 23:11:35 +02:00
String.h AK: Add a helper to get the last split-group 2022-07-15 12:42:43 +02:00
StringBuilder.cpp Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
StringBuilder.h AK: Add a try variant of StringBuilder::append_escaped_for_json 2022-02-27 20:37:57 +01:00
StringHash.h AK: Define a traits helper for case-insensitive StringView hashing 2022-01-11 00:36:45 +01:00
StringImpl.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
StringImpl.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
StringUtils.cpp Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
StringUtils.h AK: Use an enum instead of a bool for String::replace(all_occurences) 2022-07-06 11:12:45 +02:00
StringView.cpp AK: Use an enum instead of a bool for String::replace(all_occurences) 2022-07-06 11:12:45 +02:00
StringView.h AK: VERIFY() the index is in bounds in StringView::operator[] 2022-07-26 12:41:46 +02:00
TemporaryChange.h
Time.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
Time.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
Traits.h AK: Add missing include to Traits.h 2022-04-10 19:18:16 +02:00
Trie.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
Try.h AK: Mark the error branch of the TRY() macro as unlikely 2022-01-16 02:01:23 +02:00
Tuple.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
TypeCasts.h
TypedTransfer.h
TypeList.h
Types.h AK: Add an align_down_to power of two helper 2022-07-05 11:26:10 +02:00
UBSanitizer.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
UFixedBigInt.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
UnicodeUtils.h AK: Remove now-unused AK::UnicodeUtils methods 2022-01-18 15:13:25 +00:00
URL.cpp Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
URL.h AK+Userland+Tests: Remove URL(char const*) constructor 2022-07-12 23:11:35 +02:00
URLParser.cpp Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
URLParser.h
Userspace.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
Utf8View.cpp AK: Put invalid UTF8 debug spam behind a flag 2022-04-27 00:02:24 +02:00
Utf8View.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
Utf16View.cpp AK: Add a Utf16View::code_unit_offset_of(Utf16CodePointIterator) helper 2022-01-31 21:05:04 +02:00
Utf16View.h AK: Add a Utf16View::code_unit_offset_of(Utf16CodePointIterator) helper 2022-01-31 21:05:04 +02:00
Utf32View.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
UUID.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
UUID.h AK+Kernel: Return KString from UUID::to_string() in the Kernel 2022-02-16 22:21:37 +01:00
Variant.h AK: Use static_cast to cast to base type 2022-05-21 02:18:40 +02:00
Vector.h AK+LibGUI: Pass predicate to *_matching() methods by const reference 2022-05-08 17:02:00 +02:00
Weakable.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
WeakPtr.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00