RAVENNAKIT
Loading...
Searching...
No Matches
util.hpp
Go to the documentation of this file.
1// SPDX-License-Identifier: AGPL-3.0-or-later
2/*
3 * Project: RAVENNAKIT (RAVENNA / AES67 / ST2110-30 SDK)
4 * Copyright (c) 2024-2025 Sound on Digital
5 *
6 * This file is part of RAVENNAKIT.
7 *
8 * RAVENNAKIT is dual-licensed:
9 * 1) Under the terms of the GNU Affero General Public License as published by
10 * the Free Software Foundation, either version 3 of the License, or
11 * (at your option) any later version (the "AGPL License"); and
12 * 2) Under a commercial license from Sound on Digital, for customers who
13 * cannot (or do not wish to) comply with the AGPL License terms.
14 *
15 * If you obtained this file under the AGPL License, you may redistribute it
16 * and/or modify it under the terms of the AGPL License. See the LICENSE
17 * file in the project root for details.
18 *
19 * For commercial licensing, support, and other inquiries, please visit:
20 *
21 * https://ravennakit.com
22 *
23 */
24
25#pragma once
26
27#include <algorithm>
28#include <cmath>
29#include <cstddef>
30
31namespace rav {
32
39template<typename Type, size_t N>
40constexpr size_t num_elements_in_array(Type (&)[N]) noexcept {
41 return N;
42}
43
52template<typename T>
53bool is_within(T a, T b, T tolerance) {
54 return std::fabs(a - b) <= tolerance;
55}
56
65template<typename T>
66bool is_between(T a, T min, T max) {
67 return a >= min && a <= max;
68}
69
70} // namespace rav
constexpr size_t num_elements_in_array(Type(&)[N]) noexcept
Returns the number of elements in a c-style array.
Definition util.hpp:40
bool is_between(T a, T min, T max)
Tests if a value is between two other values, inclusive.
Definition util.hpp:66
bool is_within(T a, T b, T tolerance)
Tests if two values are within a certain tolerance of each other.
Definition util.hpp:53