cutcutcodec.core.compilation.sympy_to_torch.printer_atom.c_add

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

C + operation.

Examples

>>> from collections import defaultdict
>>> from sympy.abc import x, y, z
>>> from cutcutcodec.core.compilation.sympy_to_torch.printer import _print_atomic
>>> _print_atomic(1 + x, x, defaultdict(lambda: ""), "float")
(set(), set(), ['x += 1.0f;'])
>>> _print_atomic(1 + x, y, defaultdict(lambda: ""), "float")
(set(), set(), ['y = 1.0f + x;'])
>>> _print_atomic(1 + x + y, z, defaultdict(lambda: ""), "float")
(set(), set(), ['z = 1.0f + x;', 'z += y;'])
>>>