Skip to content

Commit

Permalink
fix div 0 error in floormod (PaddlePaddle#49997)
Browse files Browse the repository at this point in the history
* fix mod 0 error

* fix div 0 error in floormod
  • Loading branch information
Liyulingyue authored and pangengzheng committed Feb 2, 2023
1 parent 29cadfb commit 7dbf24d
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 0 deletions.
1 change: 1 addition & 0 deletions paddle/phi/kernels/funcs/elementwise_functor.h
Original file line number Diff line number Diff line change
Expand Up @@ -501,6 +501,7 @@ struct MinGradXYFunctor {
template <typename T, typename Enable = void>
struct RemainderFunctor {
inline HOSTDEVICE T operator()(const T a, const T b) const {
PADDLE_ENFORCE(b != 0, DIV_ERROR_INFO);
T res = a % b;

// Accoding to #PR26732: in dividen % divsor
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Copyright (c) 2023 PaddlePaddle Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.


import unittest

import paddle
import paddle.fluid as fluid


class TestFloorModOp(unittest.TestCase):
def test_dygraph(self):
with fluid.dygraph.guard(fluid.CPUPlace()):
# mod by zero
x = paddle.to_tensor([59], dtype='int32')
y = paddle.to_tensor([0], dtype='int32')
try:
paddle.floor_mod(x, y)
except Exception as e:
print("Error: Mod by zero encounter in floor_mod\n")


if __name__ == '__main__':
unittest.main()

0 comments on commit 7dbf24d

Please sign in to comment.