| 616 | } |
| 617 | |
| 618 | af_err af_arg(af_array *out, const af_array in) { |
| 619 | try { |
| 620 | const ArrayInfo &in_info = getInfo(in); |
| 621 | if (in_info.ndims() == 0) { return af_retain_array(out, in); } |
| 622 | |
| 623 | if (!in_info.isComplex()) { |
| 624 | return af_constant(out, 0, in_info.ndims(), in_info.dims().get(), |
| 625 | in_info.getType()); |
| 626 | } |
| 627 | |
| 628 | af_array real; |
| 629 | af_array imag; |
| 630 | |
| 631 | AF_CHECK(af_real(&real, in)); |
| 632 | AF_CHECK(af_imag(&imag, in)); |
| 633 | |
| 634 | AF_CHECK(af_atan2(out, imag, real, false)); |
| 635 | |
| 636 | AF_CHECK(af_release_array(real)); |
| 637 | AF_CHECK(af_release_array(imag)); |
| 638 | } |
| 639 | CATCHALL; |
| 640 | |
| 641 | return AF_SUCCESS; |
| 642 | } |
| 643 | |
| 644 | af_err af_pow2(af_array *out, const af_array in) { |
| 645 | try { |
no test coverage detected