| 1871 | } |
| 1872 | |
| 1873 | struct ggml_tensor * ggml_get_first_tensor(const struct ggml_context * ctx) { |
| 1874 | struct ggml_object * obj = ctx->objects_begin; |
| 1875 | |
| 1876 | char * const mem_buffer = ctx->mem_buffer; |
| 1877 | |
| 1878 | while (obj != NULL) { |
| 1879 | if (obj->type == GGML_OBJECT_TYPE_TENSOR) { |
| 1880 | return (struct ggml_tensor *)(mem_buffer + obj->offs); |
| 1881 | } |
| 1882 | |
| 1883 | obj = obj->next; |
| 1884 | } |
| 1885 | |
| 1886 | return NULL; |
| 1887 | } |
| 1888 | |
| 1889 | struct ggml_tensor * ggml_get_next_tensor(const struct ggml_context * ctx, struct ggml_tensor * tensor) { |
| 1890 | struct ggml_object * obj = (struct ggml_object *) ((char *)tensor - GGML_OBJECT_SIZE); |
no outgoing calls