| 5872 | // gmml_unary |
| 5873 | |
| 5874 | static struct ggml_tensor * ggml_unary_impl( |
| 5875 | struct ggml_context * ctx, |
| 5876 | struct ggml_tensor * a, |
| 5877 | enum ggml_unary_op op, |
| 5878 | bool inplace) { |
| 5879 | bool is_node = false; |
| 5880 | |
| 5881 | if (!inplace && (a->grad)) { |
| 5882 | is_node = true; |
| 5883 | } |
| 5884 | |
| 5885 | struct ggml_tensor * result = inplace ? ggml_view_tensor(ctx, a) : ggml_dup_tensor(ctx, a); |
| 5886 | |
| 5887 | ggml_set_op_params_i32(result, 0, (int32_t) op); |
| 5888 | |
| 5889 | result->op = GGML_OP_UNARY; |
| 5890 | result->grad = is_node ? ggml_dup_tensor(ctx, result) : NULL; |
| 5891 | result->src[0] = a; |
| 5892 | |
| 5893 | return result; |
| 5894 | } |
| 5895 | |
| 5896 | struct ggml_tensor * ggml_unary( |
| 5897 | struct ggml_context * ctx, |
no test coverage detected