mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 11:07:45 +00:00
AK/Hex: Cleanup implementation
Problem: - Post-increment of loop index. - `const` variables are not marked `const`. - Incorrect type for loop index. Solution: - Pre-increment loop index. - Mark all possible variables `const`. - Corret type for loop index.
This commit is contained in:
parent
d462a56163
commit
c1971df4c7
3 changed files with 50 additions and 50 deletions
|
@ -316,11 +316,11 @@ static constexpr bool approx_eq(const Complex<T>& a, const Complex<U>& b, const
|
||||||
return x.magnitude() <= margin;
|
return x.magnitude() <= margin;
|
||||||
}
|
}
|
||||||
|
|
||||||
//complex version of exp()
|
// complex version of exp()
|
||||||
template<AK::Concepts::Arithmetic T>
|
template<AK::Concepts::Arithmetic T>
|
||||||
static constexpr Complex<T> cexp(const Complex<T>& a)
|
static constexpr Complex<T> cexp(const Complex<T>& a)
|
||||||
{
|
{
|
||||||
//FIXME: this can probably be faster and not use so many expensive trigonometric functions
|
// FIXME: this can probably be faster and not use so many expensive trigonometric functions
|
||||||
if constexpr (sizeof(T) <= sizeof(float)) {
|
if constexpr (sizeof(T) <= sizeof(float)) {
|
||||||
return expf(a.real()) * Complex<T>(cosf(a.imag()), sinf(a.imag()));
|
return expf(a.real()) * Complex<T>(cosf(a.imag()), sinf(a.imag()));
|
||||||
} else if constexpr (sizeof(T) <= sizeof(double)) {
|
} else if constexpr (sizeof(T) <= sizeof(double)) {
|
||||||
|
|
|
@ -42,12 +42,12 @@ Optional<ByteBuffer> decode_hex(const StringView& input)
|
||||||
|
|
||||||
auto output = ByteBuffer::create_zeroed(input.length() / 2);
|
auto output = ByteBuffer::create_zeroed(input.length() / 2);
|
||||||
|
|
||||||
for (long unsigned int i = 0; i < input.length() / 2; i++) {
|
for (size_t i = 0; i < input.length() / 2; ++i) {
|
||||||
auto c1 = decode_hex_digit(input[i * 2]);
|
const auto c1 = decode_hex_digit(input[i * 2]);
|
||||||
if (c1 >= 16)
|
if (c1 >= 16)
|
||||||
return {};
|
return {};
|
||||||
|
|
||||||
auto c2 = decode_hex_digit(input[i * 2 + 1]);
|
const auto c2 = decode_hex_digit(input[i * 2 + 1]);
|
||||||
if (c2 >= 16)
|
if (c2 >= 16)
|
||||||
return {};
|
return {};
|
||||||
|
|
||||||
|
@ -57,7 +57,7 @@ Optional<ByteBuffer> decode_hex(const StringView& input)
|
||||||
return output;
|
return output;
|
||||||
}
|
}
|
||||||
|
|
||||||
String encode_hex(ReadonlyBytes input)
|
String encode_hex(const ReadonlyBytes input)
|
||||||
{
|
{
|
||||||
StringBuilder output(input.size() * 2);
|
StringBuilder output(input.size() * 2);
|
||||||
|
|
||||||
|
|
|
@ -30,54 +30,54 @@
|
||||||
|
|
||||||
TEST_CASE(should_decode_hex_digit)
|
TEST_CASE(should_decode_hex_digit)
|
||||||
{
|
{
|
||||||
EXPECT_EQ(0u, decode_hex_digit('0'));
|
EXPECT_EQ(0u, decode_hex_digit('0'));
|
||||||
EXPECT_EQ(1u, decode_hex_digit('1'));
|
EXPECT_EQ(1u, decode_hex_digit('1'));
|
||||||
EXPECT_EQ(2u, decode_hex_digit('2'));
|
EXPECT_EQ(2u, decode_hex_digit('2'));
|
||||||
EXPECT_EQ(3u, decode_hex_digit('3'));
|
EXPECT_EQ(3u, decode_hex_digit('3'));
|
||||||
EXPECT_EQ(4u, decode_hex_digit('4'));
|
EXPECT_EQ(4u, decode_hex_digit('4'));
|
||||||
EXPECT_EQ(5u, decode_hex_digit('5'));
|
EXPECT_EQ(5u, decode_hex_digit('5'));
|
||||||
EXPECT_EQ(6u, decode_hex_digit('6'));
|
EXPECT_EQ(6u, decode_hex_digit('6'));
|
||||||
EXPECT_EQ(7u, decode_hex_digit('7'));
|
EXPECT_EQ(7u, decode_hex_digit('7'));
|
||||||
EXPECT_EQ(8u, decode_hex_digit('8'));
|
EXPECT_EQ(8u, decode_hex_digit('8'));
|
||||||
EXPECT_EQ(9u, decode_hex_digit('9'));
|
EXPECT_EQ(9u, decode_hex_digit('9'));
|
||||||
EXPECT_EQ(10u, decode_hex_digit('a'));
|
EXPECT_EQ(10u, decode_hex_digit('a'));
|
||||||
EXPECT_EQ(11u, decode_hex_digit('b'));
|
EXPECT_EQ(11u, decode_hex_digit('b'));
|
||||||
EXPECT_EQ(12u, decode_hex_digit('c'));
|
EXPECT_EQ(12u, decode_hex_digit('c'));
|
||||||
EXPECT_EQ(13u, decode_hex_digit('d'));
|
EXPECT_EQ(13u, decode_hex_digit('d'));
|
||||||
EXPECT_EQ(14u, decode_hex_digit('e'));
|
EXPECT_EQ(14u, decode_hex_digit('e'));
|
||||||
EXPECT_EQ(15u, decode_hex_digit('f'));
|
EXPECT_EQ(15u, decode_hex_digit('f'));
|
||||||
EXPECT_EQ(10u, decode_hex_digit('A'));
|
EXPECT_EQ(10u, decode_hex_digit('A'));
|
||||||
EXPECT_EQ(11u, decode_hex_digit('B'));
|
EXPECT_EQ(11u, decode_hex_digit('B'));
|
||||||
EXPECT_EQ(12u, decode_hex_digit('C'));
|
EXPECT_EQ(12u, decode_hex_digit('C'));
|
||||||
EXPECT_EQ(13u, decode_hex_digit('D'));
|
EXPECT_EQ(13u, decode_hex_digit('D'));
|
||||||
EXPECT_EQ(14u, decode_hex_digit('E'));
|
EXPECT_EQ(14u, decode_hex_digit('E'));
|
||||||
EXPECT_EQ(15u, decode_hex_digit('F'));
|
EXPECT_EQ(15u, decode_hex_digit('F'));
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_CASE(should_constexpr_decode_hex_digit)
|
TEST_CASE(should_constexpr_decode_hex_digit)
|
||||||
{
|
{
|
||||||
static_assert(0u == decode_hex_digit('0'));
|
static_assert(0u == decode_hex_digit('0'));
|
||||||
static_assert(1u == decode_hex_digit('1'));
|
static_assert(1u == decode_hex_digit('1'));
|
||||||
static_assert(2u == decode_hex_digit('2'));
|
static_assert(2u == decode_hex_digit('2'));
|
||||||
static_assert(3u == decode_hex_digit('3'));
|
static_assert(3u == decode_hex_digit('3'));
|
||||||
static_assert(4u == decode_hex_digit('4'));
|
static_assert(4u == decode_hex_digit('4'));
|
||||||
static_assert(5u == decode_hex_digit('5'));
|
static_assert(5u == decode_hex_digit('5'));
|
||||||
static_assert(6u == decode_hex_digit('6'));
|
static_assert(6u == decode_hex_digit('6'));
|
||||||
static_assert(7u == decode_hex_digit('7'));
|
static_assert(7u == decode_hex_digit('7'));
|
||||||
static_assert(8u == decode_hex_digit('8'));
|
static_assert(8u == decode_hex_digit('8'));
|
||||||
static_assert(9u == decode_hex_digit('9'));
|
static_assert(9u == decode_hex_digit('9'));
|
||||||
static_assert(10u == decode_hex_digit('a'));
|
static_assert(10u == decode_hex_digit('a'));
|
||||||
static_assert(11u == decode_hex_digit('b'));
|
static_assert(11u == decode_hex_digit('b'));
|
||||||
static_assert(12u == decode_hex_digit('c'));
|
static_assert(12u == decode_hex_digit('c'));
|
||||||
static_assert(13u == decode_hex_digit('d'));
|
static_assert(13u == decode_hex_digit('d'));
|
||||||
static_assert(14u == decode_hex_digit('e'));
|
static_assert(14u == decode_hex_digit('e'));
|
||||||
static_assert(15u == decode_hex_digit('f'));
|
static_assert(15u == decode_hex_digit('f'));
|
||||||
static_assert(10u == decode_hex_digit('A'));
|
static_assert(10u == decode_hex_digit('A'));
|
||||||
static_assert(11u == decode_hex_digit('B'));
|
static_assert(11u == decode_hex_digit('B'));
|
||||||
static_assert(12u == decode_hex_digit('C'));
|
static_assert(12u == decode_hex_digit('C'));
|
||||||
static_assert(13u == decode_hex_digit('D'));
|
static_assert(13u == decode_hex_digit('D'));
|
||||||
static_assert(14u == decode_hex_digit('E'));
|
static_assert(14u == decode_hex_digit('E'));
|
||||||
static_assert(15u == decode_hex_digit('F'));
|
static_assert(15u == decode_hex_digit('F'));
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_MAIN(Hex)
|
TEST_MAIN(Hex)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue