You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
1.4KB

  1. /*
  2. * DISTRHO Cardinal Plugin
  3. * Copyright (C) 2021-2022 Filipe Coelho <falktx@falktx.com>
  4. *
  5. * This program is free software; you can redistribute it and/or
  6. * modify it under the terms of the GNU General Public License as
  7. * published by the Free Software Foundation; either version 3 of
  8. * the License, or any later version.
  9. *
  10. * This program is distributed in the hope that it will be useful,
  11. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. * GNU General Public License for more details.
  14. *
  15. * For a full copy of the GNU General Public License see the LICENSE file.
  16. */
  17. #pragma once
  18. #include_next <algorithm>
  19. #include_next <complex>
  20. namespace std {
  21. static inline
  22. float max(const float a, const double b) {
  23. return std::max<float>(a, static_cast<float>(b));
  24. }
  25. static inline
  26. float min(const float a, const double b) {
  27. return std::min<float>(a, static_cast<float>(b));
  28. }
  29. static inline
  30. std::complex<float> operator*(const std::complex<double>& a, const float b) {
  31. return static_cast<std::complex<float>>(a) * b;
  32. }
  33. static inline
  34. std::complex<float> operator*(const float a, const std::complex<double>& b) {
  35. return a * static_cast<std::complex<float>>(b);
  36. }
  37. static inline
  38. std::complex<float> operator/(const std::complex<double>& a, const std::complex<float>& b) {
  39. return static_cast<std::complex<float>>(a) / b;
  40. }
  41. }