// ===================================================================================================================== // fennec, a free and open source game engine // Copyright (C) 2025 Medusa Slockbower // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // ===================================================================================================================== /// /// \file relational.h /// \brief \ref page_fennec_math_relational /// /// /// \details /// \author Medusa Slockbower /// /// \copyright Copyright © 2025 Medusa Slockbower ([GPLv3](https://www.gnu.org/licenses/gpl-3.0.en.html)) /// /// #ifndef FENNEC_MATH_RELATIONAL_H #define FENNEC_MATH_RELATIONAL_H #include namespace fennec { template constexpr genBType lessThan(genType x, genType y) { return x < y; } template constexpr vector lessThan(const vector& x, const vector& y) { return vector(x[i] < y[i]...); } template constexpr genBType lessThanEqual(genType x, genType y) { return x <= y; } template constexpr vector lessThanEqual(const vector& x, const vector& y) { return vector(x[i] <= y[i]...); } template constexpr genBType greaterThan(genType x, genType y) { return x > y; } template constexpr vector greaterThan(const vector& x, const vector& y) { return vector(x[i] > y[i]...); } template constexpr genBType greaterThanEqual(genType x, genType y) { return x >= y; } template constexpr vector greaterThanEqual(const vector& x, const vector& y) { return vector(x[i] >= y[i]...); } template constexpr genBType equal(genType x, genType y) { return x == y; } template constexpr vector equal(const vector& x, const vector& y) { return vector(x[i] == y[i]...); } template constexpr genBType notEqual(genType x, genType y) { return x != y; } template constexpr vector notEqual(const vector& x, const vector& y) { return vector(x[i] != y[i]...); } template constexpr genBType any(const vector& x) { return (x[i] || ...); } template constexpr genBType all(const vector& x) { return (x[i] && ...); } } #endif // FENNEC_MATH_RELATIONAL_H