| 3595 | // ggml_sum |
| 3596 | |
| 3597 | struct ggml_tensor * ggml_sum( |
| 3598 | struct ggml_context * ctx, |
| 3599 | struct ggml_tensor * a) { |
| 3600 | bool is_node = false; |
| 3601 | |
| 3602 | if (a->grad) { |
| 3603 | is_node = true; |
| 3604 | } |
| 3605 | |
| 3606 | struct ggml_tensor * result = ggml_new_tensor_1d(ctx, a->type, 1); |
| 3607 | |
| 3608 | result->op = GGML_OP_SUM; |
| 3609 | result->grad = is_node ? ggml_dup_tensor(ctx, result) : NULL; |
| 3610 | result->src[0] = a; |
| 3611 | |
| 3612 | return result; |
| 3613 | } |
| 3614 | |
| 3615 | // ggml_sum_rows |
| 3616 |