cutcutcodec.core.compilation.sympy_to_torch.printer_atom.c_im

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

C imaginary part.

Examples

>>> from sympy.abc import x
>>> from sympy import im
>>> import numpy as np
>>> from cutcutcodec.core.compilation.sympy_to_torch.lambdify import _lambdify_c
>>> from cutcutcodec.core.compilation.sympy_to_torch.printer import _print_atomic, _printer
>>> func = _lambdify_c(_printer([(x, im(x))], {}, {x}))
>>> func(np.array([0.0, 1.0, -1.0]))
array([0., 0., 0.])
>>> func(np.array([0.0j, 1.0j, -1.0j]))
array([ 0.+0.j,  1.+0.j, -1.+0.j])
>>>