from cupy.core._kernel import create_ufunc

elementwise_copy = create_ufunc(
    'cupy_copy',
    ('?->?', 'b->b', 'B->B', 'h->h', 'H->H', 'i->i', 'I->I', 'l->l', 'L->L',
     'q->q', 'Q->Q', 'e->e', 'f->f', 'd->d', 'F->F', 'D->D'),
    'out0 = out0_type(in0)', default_casting='unsafe')
# complex numbers requires out0 = complex<T>(in0)

from cupy.core._kernel import create_ufunc

elementwise_copy = create_ufunc(
    'cupy_copy',
    ('?->?', 'b->b', 'B->B', 'h->h', 'H->H', 'i->i', 'I->I', 'l->l', 'L->L',
     'q->q', 'Q->Q', 'e->e', 'f->f', 'd->d', 'F->F', 'D->D'),
    'out0 = out0_type(in0)', default_casting='unsafe')
# complex numbers requires out0 = complex<T>(in0)

# complex numbers requires out0 = complex<T>(in0)