# Copyright (c) ONNX Project Contributors # SPDX-License-Identifier: Apache-2.0 from __future__ import annotations import numpy as np from onnx.reference.op_run import OpRun class Mod(OpRun): def _run(self, a, b, fmod=None): # type: ignore fmod = fmod or self.fmod # type: ignore if fmod == 1: # type: ignore return (np.fmod(a, b),) if a.dtype in (np.float16, np.float32, np.float64): return (np.nan_to_num(np.fmod(a, b)),) return (np.nan_to_num(np.mod(a, b)),)