cutcutcodec.core.compilation.sympy_to_torch.printer_atom.c_max

cutcutcodec.core.compilation.sympy_to_torch.printer_atom.c_max(out: Symbol, indexing: defaultdict[Symbol, str], c_type: str, *parts: Atom) tuple[set[str], set[Symbol], list[str]][source]

C maximum operation.

Examples

>>> from collections import defaultdict
>>> from sympy.abc import x, y
>>> from sympy.functions.elementary.miscellaneous import Max
>>> from cutcutcodec.core.compilation.sympy_to_torch.printer import _print_atomic
>>> _print_atomic(Max(2, x), x, defaultdict(lambda: ""), "float")
(set(), set(), ['x = 2.0f > x ? 2.0f : x;'])
>>> _print_atomic(Max(2, x), y, defaultdict(lambda: ""), "float complex")  
(set(), set(), ['y = (crealf((2.0f + 0.0f * _Complex_I))... ? (2.0f + 0.0f * _Complex_I) : x;'])
>>> _print_atomic(Max(2, x, y), x, defaultdict(lambda: ""), "float")
(set(), set(), ['x = 2.0f > x ? 2.0f : x;', 'x = x > y ? x : y;'])
>>>