• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

IntelPython / dpnp / 16322011799

16 Jul 2025 02:17PM UTC coverage: 72.092%. Remained the same
16322011799

Pull #2529

github

web-flow
Merge 7b8386ae6 into e2c04695c
Pull Request #2529: Remove use of `numpy.testing.suppress_warnings` in tests

4899 of 9892 branches covered (49.52%)

Branch coverage included in aggregate %.

18339 of 22342 relevant lines covered (82.08%)

19186.21 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/dpnp/backend/kernels/elementwise_functions/fmax.hpp
1
//*****************************************************************************
2
// Copyright (c) 2024-2025, Intel Corporation
3
// All rights reserved.
4
//
5
// Redistribution and use in source and binary forms, with or without
6
// modification, are permitted provided that the following conditions are met:
7
// - Redistributions of source code must retain the above copyright notice,
8
//   this list of conditions and the following disclaimer.
9
// - Redistributions in binary form must reproduce the above copyright notice,
10
//   this list of conditions and the following disclaimer in the documentation
11
//   and/or other materials provided with the distribution.
12
//
13
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
14
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
17
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23
// THE POSSIBILITY OF SUCH DAMAGE.
24
//*****************************************************************************
25

26
#pragma once
27

28
#include <sycl/sycl.hpp>
29

30
// dpctl tensor headers
31
#include "utils/math_utils.hpp"
32
#include "utils/type_utils.hpp"
33

34
namespace dpnp::kernels::fmax
35
{
36
namespace mu_ns = dpctl::tensor::math_utils;
37
namespace tu_ns = dpctl::tensor::type_utils;
38

39
template <typename argT1, typename argT2, typename resT>
40
struct FmaxFunctor
41
{
42
    using supports_sg_loadstore = std::negation<
43
        std::disjunction<tu_ns::is_complex<argT1>, tu_ns::is_complex<argT2>>>;
44
    using supports_vec =
45
        std::conjunction<std::is_same<argT1, argT2>,
46
                         std::disjunction<std::is_floating_point<argT1>,
47
                                          std::is_same<argT1, sycl::half>>>;
48

49
    resT operator()(const argT1 &in1, const argT2 &in2) const
50
    {
×
51
        if constexpr (std::is_integral_v<argT1> && std::is_integral_v<argT2>) {
×
52
            return in1 >= in2 ? in1 : in2;
×
53
        }
54
        else if constexpr (tu_ns::is_complex<argT1>::value &&
55
                           tu_ns::is_complex<argT2>::value)
56
        {
×
57
            static_assert(std::is_same_v<argT1, argT2>);
×
58

59
            using realT = typename argT1::value_type;
×
60
            const realT in2r = std::real(in2);
×
61
            const realT in2i = std::imag(in2);
×
62

63
            if (sycl::isnan(in2r) || sycl::isnan(in2i) ||
×
64
                mu_ns::greater_equal_complex<argT1>(in1, in2))
×
65
            {
×
66
                return in1;
×
67
            }
×
68
            return in2;
×
69
        }
70
        else {
×
71
            return sycl::fmax(in1, in2);
×
72
        }
×
73
    }
×
74

75
    template <int vec_sz>
76
    sycl::vec<resT, vec_sz>
77
        operator()(const sycl::vec<argT1, vec_sz> &in1,
78
                   const sycl::vec<argT2, vec_sz> &in2) const
79
    {
×
80
        return sycl::fmax(in1, in2);
×
81
    }
×
82
};
83
} // namespace dpnp::kernels::fmax
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc