This commit is contained in:
CircleCI Docs 2024-10-15 15:12:17 +00:00
parent 37869fc384
commit ecfb26b8e7
2152 changed files with 371728 additions and 44946 deletions

View File

@ -1,4 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
config: afad7f1e99088fbef94fcb4df3f67506
config: 5d79ff0eb4fd2457710e4f29cb9324ed
tags: 645f666f9bcd5a90fca523b33c5a78b7

View File

@ -4,7 +4,7 @@
*
* Sphinx stylesheet -- basic theme.
*
* :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
* :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/

View File

@ -4,7 +4,7 @@
*
* Base JavaScript utilities for all Sphinx HTML documentation.
*
* :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
* :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/

View File

@ -5,7 +5,7 @@
* This script contains the language-specific data used by searchtools.js,
* namely the list of stopwords, stemmer, scorer and splitter.
*
* :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
* :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
@ -13,7 +13,7 @@
var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"];
/* Non-minified version is copied as a separate JS file, is available */
/* Non-minified version is copied as a separate JS file, if available */
/**
* Porter Stemmer

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: ar\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "طباعة إلى PDF"
msgid "Theme by the"
msgstr "موضوع بواسطة"
msgid "Open an issue"
msgstr "افتح قضية"
msgid "Download source file"
msgstr "تنزيل ملف المصدر"
msgid "open issue"
msgstr "قضية مفتوحة"
msgid "Contents"
msgstr "محتويات"
msgid "previous page"
msgstr "الصفحة السابقة"
msgid "Download notebook file"
msgstr "تنزيل ملف دفتر الملاحظات"
msgid "Copyright"
msgstr "حقوق النشر"
msgid "Download this page"
msgstr "قم بتنزيل هذه الصفحة"
msgid "Source repository"
msgstr "مستودع المصدر"
msgid "By"
msgstr "بواسطة"
msgid "repository"
msgstr "مخزن"
msgid "Last updated on"
msgstr "آخر تحديث في"
msgid "Toggle navigation"
msgstr "تبديل التنقل"
msgid "Sphinx Book Theme"
msgstr "موضوع كتاب أبو الهول"
msgid "suggest edit"
msgstr "أقترح تحرير"
msgid "Open an issue"
msgstr "افتح قضية"
msgid "Launch"
msgstr "إطلاق"
msgid "Fullscreen mode"
msgstr "وضع ملء الشاشة"
msgid "Edit this page"
msgstr "قم بتحرير هذه الصفحة"
msgid "By"
msgstr "بواسطة"
msgid "Copyright"
msgstr "حقوق النشر"
msgid "Source repository"
msgstr "مستودع المصدر"
msgid "previous page"
msgstr "الصفحة السابقة"
msgid "next page"
msgstr "الصفحة التالية"
msgid "Toggle navigation"
msgstr "تبديل التنقل"
msgid "repository"
msgstr "مخزن"
msgid "suggest edit"
msgstr "أقترح تحرير"
msgid "open issue"
msgstr "قضية مفتوحة"
msgid "Launch"
msgstr "إطلاق"
msgid "Print to PDF"
msgstr "طباعة إلى PDF"
msgid "By the"
msgstr "بواسطة"
msgid "Last updated on"
msgstr "آخر تحديث في"
msgid "Download source file"
msgstr "تنزيل ملف المصدر"
msgid "Download this page"
msgstr "قم بتنزيل هذه الصفحة"
msgid "next page"
msgstr "الصفحة التالية"

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: bg\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "Печат в PDF"
msgid "Theme by the"
msgstr "Тема от"
msgid "Open an issue"
msgstr "Отворете проблем"
msgid "Download source file"
msgstr "Изтеглете изходния файл"
msgid "open issue"
msgstr "отворен брой"
msgid "Contents"
msgstr "Съдържание"
msgid "previous page"
msgstr "предишна страница"
msgid "Download notebook file"
msgstr "Изтеглете файла на бележника"
msgid "Copyright"
msgstr "Авторско право"
msgid "Download this page"
msgstr "Изтеглете тази страница"
msgid "Source repository"
msgstr "Хранилище на източника"
msgid "By"
msgstr "От"
msgid "repository"
msgstr "хранилище"
msgid "Last updated on"
msgstr "Последна актуализация на"
msgid "Toggle navigation"
msgstr "Превключване на навигацията"
msgid "Sphinx Book Theme"
msgstr "Тема на книгата Sphinx"
msgid "suggest edit"
msgstr "предложи редактиране"
msgid "Open an issue"
msgstr "Отворете проблем"
msgid "Launch"
msgstr "Стартиране"
msgid "Fullscreen mode"
msgstr "Режим на цял екран"
msgid "Edit this page"
msgstr "Редактирайте тази страница"
msgid "By"
msgstr "От"
msgid "Copyright"
msgstr "Авторско право"
msgid "Source repository"
msgstr "Хранилище на източника"
msgid "previous page"
msgstr "предишна страница"
msgid "next page"
msgstr "Следваща страница"
msgid "Toggle navigation"
msgstr "Превключване на навигацията"
msgid "repository"
msgstr "хранилище"
msgid "suggest edit"
msgstr "предложи редактиране"
msgid "open issue"
msgstr "отворен брой"
msgid "Launch"
msgstr "Стартиране"
msgid "Print to PDF"
msgstr "Печат в PDF"
msgid "By the"
msgstr "По"
msgid "Last updated on"
msgstr "Последна актуализация на"
msgid "Download source file"
msgstr "Изтеглете изходния файл"
msgid "Download this page"
msgstr "Изтеглете тази страница"
msgid "next page"
msgstr "Следваща страница"

View File

@ -8,56 +8,56 @@ msgstr ""
"Language: bn\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "পিডিএফ প্রিন্ট করুন"
msgid "Theme by the"
msgstr "থিম দ্বারা"
msgid "Open an issue"
msgstr "একটি সমস্যা খুলুন"
msgid "Download notebook file"
msgstr "নোটবুক ফাইল ডাউনলোড করুন"
msgid "Sphinx Book Theme"
msgstr "স্পিনিক্স বুক থিম"
msgid "Edit this page"
msgstr "এই পৃষ্ঠাটি সম্পাদনা করুন"
msgid "By"
msgstr "দ্বারা"
msgid "Copyright"
msgstr "কপিরাইট"
msgid "Source repository"
msgstr "উত্স সংগ্রহস্থল"
msgid "previous page"
msgstr "আগের পৃষ্ঠা"
msgid "next page"
msgstr "পরবর্তী পৃষ্ঠা"
msgid "Toggle navigation"
msgstr "নেভিগেশন টগল করুন"
msgid "Download source file"
msgstr "উত্স ফাইল ডাউনলোড করুন"
msgid "open issue"
msgstr "খোলা সমস্যা"
msgid "Launch"
msgstr "শুরু করা"
msgid "previous page"
msgstr "আগের পৃষ্ঠা"
msgid "Print to PDF"
msgstr "পিডিএফ প্রিন্ট করুন"
msgid "Download notebook file"
msgstr "নোটবুক ফাইল ডাউনলোড করুন"
msgid "By the"
msgid "Copyright"
msgstr "কপিরাইট"
msgid "Download this page"
msgstr "এই পৃষ্ঠাটি ডাউনলোড করুন"
msgid "Source repository"
msgstr "উত্স সংগ্রহস্থল"
msgid "By"
msgstr "দ্বারা"
msgid "Last updated on"
msgstr "সর্বশেষ আপডেট"
msgid "Download source file"
msgstr "উত্স ফাইল ডাউনলোড করুন"
msgid "Toggle navigation"
msgstr "নেভিগেশন টগল করুন"
msgid "Download this page"
msgstr "এই পৃষ্ঠাটি ডাউনলোড করুন"
msgid "Sphinx Book Theme"
msgstr "স্পিনিক্স বুক থিম"
msgid "Open an issue"
msgstr "একটি সমস্যা খুলুন"
msgid "Launch"
msgstr "শুরু করা"
msgid "Edit this page"
msgstr "এই পৃষ্ঠাটি সম্পাদনা করুন"
msgid "By the"
msgstr "দ্বারা"
msgid "next page"
msgstr "পরবর্তী পৃষ্ঠা"

View File

@ -8,59 +8,59 @@ msgstr ""
"Language: ca\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Theme by the"
msgstr "Tema del"
msgid "Open an issue"
msgstr "Obriu un número"
msgid "Download notebook file"
msgstr "Descarregar fitxer de quadern"
msgid "Sphinx Book Theme"
msgstr "Tema del llibre Esfinx"
msgid "Edit this page"
msgstr "Editeu aquesta pàgina"
msgid "By"
msgstr "Per"
msgid "Copyright"
msgstr "Copyright"
msgid "Source repository"
msgstr "Dipòsit de fonts"
msgid "previous page"
msgstr "Pàgina anterior"
msgid "next page"
msgstr "pàgina següent"
msgid "Toggle navigation"
msgstr "Commuta la navegació"
msgid "suggest edit"
msgstr "suggerir edició"
msgid "open issue"
msgstr "número obert"
msgid "Launch"
msgstr "Llançament"
msgid "Print to PDF"
msgstr "Imprimeix a PDF"
msgid "By the"
msgstr "Per la"
msgid "Last updated on"
msgstr "Darrera actualització el"
msgid "Theme by the"
msgstr "Tema del"
msgid "Download source file"
msgstr "Baixeu el fitxer font"
msgid "open issue"
msgstr "número obert"
msgid "previous page"
msgstr "Pàgina anterior"
msgid "Download notebook file"
msgstr "Descarregar fitxer de quadern"
msgid "Copyright"
msgstr "Copyright"
msgid "Download this page"
msgstr "Descarregueu aquesta pàgina"
msgid "Source repository"
msgstr "Dipòsit de fonts"
msgid "By"
msgstr "Per"
msgid "Last updated on"
msgstr "Darrera actualització el"
msgid "Toggle navigation"
msgstr "Commuta la navegació"
msgid "Sphinx Book Theme"
msgstr "Tema del llibre Esfinx"
msgid "suggest edit"
msgstr "suggerir edició"
msgid "Open an issue"
msgstr "Obriu un número"
msgid "Launch"
msgstr "Llançament"
msgid "Edit this page"
msgstr "Editeu aquesta pàgina"
msgid "By the"
msgstr "Per la"
msgid "next page"
msgstr "pàgina següent"

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: cs\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "Tisk do PDF"
msgid "Theme by the"
msgstr "Téma od"
msgid "Open an issue"
msgstr "Otevřete problém"
msgid "Download source file"
msgstr "Stáhněte si zdrojový soubor"
msgid "open issue"
msgstr "otevřené číslo"
msgid "Contents"
msgstr "Obsah"
msgid "previous page"
msgstr "předchozí stránka"
msgid "Download notebook file"
msgstr "Stáhnout soubor poznámkového bloku"
msgid "Copyright"
msgstr "autorská práva"
msgid "Download this page"
msgstr "Stáhněte si tuto stránku"
msgid "Source repository"
msgstr "Zdrojové úložiště"
msgid "By"
msgstr "Podle"
msgid "repository"
msgstr "úložiště"
msgid "Last updated on"
msgstr "Naposledy aktualizováno"
msgid "Toggle navigation"
msgstr "Přepnout navigaci"
msgid "Sphinx Book Theme"
msgstr "Téma knihy Sfinga"
msgid "suggest edit"
msgstr "navrhnout úpravy"
msgid "Open an issue"
msgstr "Otevřete problém"
msgid "Launch"
msgstr "Zahájení"
msgid "Fullscreen mode"
msgstr "Režim celé obrazovky"
msgid "Edit this page"
msgstr "Upravit tuto stránku"
msgid "By"
msgstr "Podle"
msgid "Copyright"
msgstr "autorská práva"
msgid "Source repository"
msgstr "Zdrojové úložiště"
msgid "previous page"
msgstr "předchozí stránka"
msgid "next page"
msgstr "další strana"
msgid "Toggle navigation"
msgstr "Přepnout navigaci"
msgid "repository"
msgstr "úložiště"
msgid "suggest edit"
msgstr "navrhnout úpravy"
msgid "open issue"
msgstr "otevřené číslo"
msgid "Launch"
msgstr "Zahájení"
msgid "Print to PDF"
msgstr "Tisk do PDF"
msgid "By the"
msgstr "Podle"
msgid "Last updated on"
msgstr "Naposledy aktualizováno"
msgid "Download source file"
msgstr "Stáhněte si zdrojový soubor"
msgid "Download this page"
msgstr "Stáhněte si tuto stránku"
msgid "next page"
msgstr "další strana"

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: da\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "Udskriv til PDF"
msgid "Theme by the"
msgstr "Tema af"
msgid "Open an issue"
msgstr "Åbn et problem"
msgid "Download source file"
msgstr "Download kildefil"
msgid "open issue"
msgstr "åbent nummer"
msgid "Contents"
msgstr "Indhold"
msgid "previous page"
msgstr "forrige side"
msgid "Download notebook file"
msgstr "Download notesbog-fil"
msgid "Copyright"
msgstr "ophavsret"
msgid "Download this page"
msgstr "Download denne side"
msgid "Source repository"
msgstr "Kildelager"
msgid "By"
msgstr "Ved"
msgid "repository"
msgstr "lager"
msgid "Last updated on"
msgstr "Sidst opdateret den"
msgid "Toggle navigation"
msgstr "Skift navigation"
msgid "Sphinx Book Theme"
msgstr "Sphinx bogtema"
msgid "suggest edit"
msgstr "foreslå redigering"
msgid "Open an issue"
msgstr "Åbn et problem"
msgid "Launch"
msgstr "Start"
msgid "Fullscreen mode"
msgstr "Fuldskærmstilstand"
msgid "Edit this page"
msgstr "Rediger denne side"
msgid "By"
msgstr "Ved"
msgid "Copyright"
msgstr "ophavsret"
msgid "Source repository"
msgstr "Kildelager"
msgid "previous page"
msgstr "forrige side"
msgid "next page"
msgstr "Næste side"
msgid "Toggle navigation"
msgstr "Skift navigation"
msgid "repository"
msgstr "lager"
msgid "suggest edit"
msgstr "foreslå redigering"
msgid "open issue"
msgstr "åbent nummer"
msgid "Launch"
msgstr "Start"
msgid "Print to PDF"
msgstr "Udskriv til PDF"
msgid "By the"
msgstr "Ved"
msgid "Last updated on"
msgstr "Sidst opdateret den"
msgid "Download source file"
msgstr "Download kildefil"
msgid "Download this page"
msgstr "Download denne side"
msgid "next page"
msgstr "Næste side"

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: de\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "In PDF drucken"
msgid "Theme by the"
msgstr "Thema von der"
msgid "Open an issue"
msgstr "Öffnen Sie ein Problem"
msgid "Download source file"
msgstr "Quelldatei herunterladen"
msgid "open issue"
msgstr "offenes Thema"
msgid "Contents"
msgstr "Inhalt"
msgid "previous page"
msgstr "vorherige Seite"
msgid "Download notebook file"
msgstr "Notebook-Datei herunterladen"
msgid "Copyright"
msgstr "Urheberrechte ©"
msgid "Download this page"
msgstr "Laden Sie diese Seite herunter"
msgid "Source repository"
msgstr "Quell-Repository"
msgid "By"
msgstr "Durch"
msgid "repository"
msgstr "Repository"
msgid "Last updated on"
msgstr "Zuletzt aktualisiert am"
msgid "Toggle navigation"
msgstr "Navigation umschalten"
msgid "Sphinx Book Theme"
msgstr "Sphinx-Buch-Thema"
msgid "suggest edit"
msgstr "vorschlagen zu bearbeiten"
msgid "Open an issue"
msgstr "Öffnen Sie ein Problem"
msgid "Launch"
msgstr "Starten"
msgid "Fullscreen mode"
msgstr "Vollbildmodus"
msgid "Edit this page"
msgstr "Bearbeite diese Seite"
msgid "By"
msgstr "Durch"
msgid "Copyright"
msgstr "Urheberrechte ©"
msgid "Source repository"
msgstr "Quell-Repository"
msgid "previous page"
msgstr "vorherige Seite"
msgid "next page"
msgstr "Nächste Seite"
msgid "Toggle navigation"
msgstr "Navigation umschalten"
msgid "repository"
msgstr "Repository"
msgid "suggest edit"
msgstr "vorschlagen zu bearbeiten"
msgid "open issue"
msgstr "offenes Thema"
msgid "Launch"
msgstr "Starten"
msgid "Print to PDF"
msgstr "In PDF drucken"
msgid "By the"
msgstr "Bis zum"
msgid "Last updated on"
msgstr "Zuletzt aktualisiert am"
msgid "Download source file"
msgstr "Quelldatei herunterladen"
msgid "Download this page"
msgstr "Laden Sie diese Seite herunter"
msgid "next page"
msgstr "Nächste Seite"

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: el\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "Εκτύπωση σε PDF"
msgid "Theme by the"
msgstr "Θέμα από το"
msgid "Open an issue"
msgstr "Ανοίξτε ένα ζήτημα"
msgid "Download source file"
msgstr "Λήψη αρχείου προέλευσης"
msgid "open issue"
msgstr "ανοιχτό ζήτημα"
msgid "Contents"
msgstr "Περιεχόμενα"
msgid "previous page"
msgstr "προηγούμενη σελίδα"
msgid "Download notebook file"
msgstr "Λήψη αρχείου σημειωματάριου"
msgid "Copyright"
msgstr "Πνευματική ιδιοκτησία"
msgid "Download this page"
msgstr "Λήψη αυτής της σελίδας"
msgid "Source repository"
msgstr "Αποθήκη πηγής"
msgid "By"
msgstr "Με"
msgid "repository"
msgstr "αποθήκη"
msgid "Last updated on"
msgstr "Τελευταία ενημέρωση στις"
msgid "Toggle navigation"
msgstr "Εναλλαγή πλοήγησης"
msgid "Sphinx Book Theme"
msgstr "Θέμα βιβλίου Sphinx"
msgid "suggest edit"
msgstr "προτείνω επεξεργασία"
msgid "Open an issue"
msgstr "Ανοίξτε ένα ζήτημα"
msgid "Launch"
msgstr "Εκτόξευση"
msgid "Fullscreen mode"
msgstr "ΛΕΙΤΟΥΡΓΙΑ ΠΛΗΡΟΥΣ ΟΘΟΝΗΣ"
msgid "Edit this page"
msgstr "Επεξεργαστείτε αυτήν τη σελίδα"
msgid "By"
msgstr "Με"
msgid "Copyright"
msgstr "Πνευματική ιδιοκτησία"
msgid "Source repository"
msgstr "Αποθήκη πηγής"
msgid "previous page"
msgstr "προηγούμενη σελίδα"
msgid "next page"
msgstr "επόμενη σελίδα"
msgid "Toggle navigation"
msgstr "Εναλλαγή πλοήγησης"
msgid "repository"
msgstr "αποθήκη"
msgid "suggest edit"
msgstr "προτείνω επεξεργασία"
msgid "open issue"
msgstr "ανοιχτό ζήτημα"
msgid "Launch"
msgstr "Εκτόξευση"
msgid "Print to PDF"
msgstr "Εκτύπωση σε PDF"
msgid "By the"
msgstr "Από το"
msgid "Last updated on"
msgstr "Τελευταία ενημέρωση στις"
msgid "Download source file"
msgstr "Λήψη αρχείου προέλευσης"
msgid "Download this page"
msgstr "Λήψη αυτής της σελίδας"
msgid "next page"
msgstr "επόμενη σελίδα"

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: eo\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "Presi al PDF"
msgid "Theme by the"
msgstr "Temo de la"
msgid "Open an issue"
msgstr "Malfermu numeron"
msgid "Download source file"
msgstr "Elŝutu fontodosieron"
msgid "open issue"
msgstr "malferma numero"
msgid "Contents"
msgstr "Enhavo"
msgid "previous page"
msgstr "antaŭa paĝo"
msgid "Download notebook file"
msgstr "Elŝutu kajeran dosieron"
msgid "Copyright"
msgstr "Kopirajto"
msgid "Download this page"
msgstr "Elŝutu ĉi tiun paĝon"
msgid "Source repository"
msgstr "Fonto-deponejo"
msgid "By"
msgstr "De"
msgid "repository"
msgstr "deponejo"
msgid "Last updated on"
msgstr "Laste ĝisdatigita la"
msgid "Toggle navigation"
msgstr "Ŝalti navigadon"
msgid "Sphinx Book Theme"
msgstr "Sfinksa Libro-Temo"
msgid "suggest edit"
msgstr "sugesti redaktadon"
msgid "Open an issue"
msgstr "Malfermu numeron"
msgid "Launch"
msgstr "Lanĉo"
msgid "Fullscreen mode"
msgstr "Plenekrana reĝimo"
msgid "Edit this page"
msgstr "Redaktu ĉi tiun paĝon"
msgid "By"
msgstr "De"
msgid "Copyright"
msgstr "Kopirajto"
msgid "Source repository"
msgstr "Fonto-deponejo"
msgid "previous page"
msgstr "antaŭa paĝo"
msgid "next page"
msgstr "sekva paĝo"
msgid "Toggle navigation"
msgstr "Ŝalti navigadon"
msgid "repository"
msgstr "deponejo"
msgid "suggest edit"
msgstr "sugesti redaktadon"
msgid "open issue"
msgstr "malferma numero"
msgid "Launch"
msgstr "Lanĉo"
msgid "Print to PDF"
msgstr "Presi al PDF"
msgid "By the"
msgstr "Per la"
msgid "Last updated on"
msgstr "Laste ĝisdatigita la"
msgid "Download source file"
msgstr "Elŝutu fontodosieron"
msgid "Download this page"
msgstr "Elŝutu ĉi tiun paĝon"
msgid "next page"
msgstr "sekva paĝo"

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "Imprimir en PDF"
msgid "Theme by the"
msgstr "Tema por el"
msgid "Open an issue"
msgstr "Abrir un problema"
msgid "Download source file"
msgstr "Descargar archivo fuente"
msgid "open issue"
msgstr "Tema abierto"
msgid "Contents"
msgstr "Contenido"
msgid "previous page"
msgstr "pagina anterior"
msgid "Download notebook file"
msgstr "Descargar archivo de cuaderno"
msgid "Copyright"
msgstr "Derechos de autor"
msgid "Download this page"
msgstr "Descarga esta pagina"
msgid "Source repository"
msgstr "Repositorio de origen"
msgid "By"
msgstr "Por"
msgid "repository"
msgstr "repositorio"
msgid "Last updated on"
msgstr "Ultima actualización en"
msgid "Toggle navigation"
msgstr "Navegación de palanca"
msgid "Sphinx Book Theme"
msgstr "Tema del libro de la esfinge"
msgid "suggest edit"
msgstr "sugerir editar"
msgid "Open an issue"
msgstr "Abrir un problema"
msgid "Launch"
msgstr "Lanzamiento"
msgid "Fullscreen mode"
msgstr "Modo de pantalla completa"
msgid "Edit this page"
msgstr "Edita esta página"
msgid "By"
msgstr "Por"
msgid "Copyright"
msgstr "Derechos de autor"
msgid "Source repository"
msgstr "Repositorio de origen"
msgid "previous page"
msgstr "pagina anterior"
msgid "next page"
msgstr "siguiente página"
msgid "Toggle navigation"
msgstr "Navegación de palanca"
msgid "repository"
msgstr "repositorio"
msgid "suggest edit"
msgstr "sugerir editar"
msgid "open issue"
msgstr "Tema abierto"
msgid "Launch"
msgstr "Lanzamiento"
msgid "Print to PDF"
msgstr "Imprimir en PDF"
msgid "By the"
msgstr "Por el"
msgid "Last updated on"
msgstr "Ultima actualización en"
msgid "Download source file"
msgstr "Descargar archivo fuente"
msgid "Download this page"
msgstr "Descarga esta pagina"
msgid "next page"
msgstr "siguiente página"

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: et\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "Prindi PDF-i"
msgid "Theme by the"
msgstr "Teema"
msgid "Open an issue"
msgstr "Avage probleem"
msgid "Download source file"
msgstr "Laadige alla lähtefail"
msgid "open issue"
msgstr "avatud küsimus"
msgid "Contents"
msgstr "Sisu"
msgid "previous page"
msgstr "eelmine leht"
msgid "Download notebook file"
msgstr "Laadige sülearvuti fail alla"
msgid "Copyright"
msgstr "Autoriõigus"
msgid "Download this page"
msgstr "Laadige see leht alla"
msgid "Source repository"
msgstr "Allikahoidla"
msgid "By"
msgstr "Kõrval"
msgid "repository"
msgstr "hoidla"
msgid "Last updated on"
msgstr "Viimati uuendatud"
msgid "Toggle navigation"
msgstr "Lülita navigeerimine sisse"
msgid "Sphinx Book Theme"
msgstr "Sfinksiraamatu teema"
msgid "suggest edit"
msgstr "soovita muuta"
msgid "Open an issue"
msgstr "Avage probleem"
msgid "Launch"
msgstr "Käivitage"
msgid "Fullscreen mode"
msgstr "Täisekraanirežiim"
msgid "Edit this page"
msgstr "Muutke seda lehte"
msgid "By"
msgstr "Kõrval"
msgid "Copyright"
msgstr "Autoriõigus"
msgid "Source repository"
msgstr "Allikahoidla"
msgid "previous page"
msgstr "eelmine leht"
msgid "next page"
msgstr "järgmine leht"
msgid "Toggle navigation"
msgstr "Lülita navigeerimine sisse"
msgid "repository"
msgstr "hoidla"
msgid "suggest edit"
msgstr "soovita muuta"
msgid "open issue"
msgstr "avatud küsimus"
msgid "Launch"
msgstr "Käivitage"
msgid "Print to PDF"
msgstr "Prindi PDF-i"
msgid "By the"
msgstr "Autor"
msgid "Last updated on"
msgstr "Viimati uuendatud"
msgid "Download source file"
msgstr "Laadige alla lähtefail"
msgid "Download this page"
msgstr "Laadige see leht alla"
msgid "next page"
msgstr "järgmine leht"

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: fi\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "Tulosta PDF-tiedostoon"
msgid "Theme by the"
msgstr "Teeman tekijä"
msgid "Open an issue"
msgstr "Avaa ongelma"
msgid "Download source file"
msgstr "Lataa lähdetiedosto"
msgid "open issue"
msgstr "avoin ongelma"
msgid "Contents"
msgstr "Sisällys"
msgid "previous page"
msgstr "Edellinen sivu"
msgid "Download notebook file"
msgstr "Lataa muistikirjatiedosto"
msgid "Copyright"
msgstr "Tekijänoikeus"
msgid "Download this page"
msgstr "Lataa tämä sivu"
msgid "Source repository"
msgstr "Lähteen arkisto"
msgid "By"
msgstr "Tekijä"
msgid "repository"
msgstr "arkisto"
msgid "Last updated on"
msgstr "Viimeksi päivitetty"
msgid "Toggle navigation"
msgstr "Vaihda navigointia"
msgid "Sphinx Book Theme"
msgstr "Sphinx-kirjan teema"
msgid "suggest edit"
msgstr "ehdottaa muokkausta"
msgid "Open an issue"
msgstr "Avaa ongelma"
msgid "Launch"
msgstr "Tuoda markkinoille"
msgid "Fullscreen mode"
msgstr "Koko näytön tila"
msgid "Edit this page"
msgstr "Muokkaa tätä sivua"
msgid "By"
msgstr "Tekijä"
msgid "Copyright"
msgstr "Tekijänoikeus"
msgid "Source repository"
msgstr "Lähteen arkisto"
msgid "previous page"
msgstr "Edellinen sivu"
msgid "next page"
msgstr "seuraava sivu"
msgid "Toggle navigation"
msgstr "Vaihda navigointia"
msgid "repository"
msgstr "arkisto"
msgid "suggest edit"
msgstr "ehdottaa muokkausta"
msgid "open issue"
msgstr "avoin ongelma"
msgid "Launch"
msgstr "Tuoda markkinoille"
msgid "Print to PDF"
msgstr "Tulosta PDF-tiedostoon"
msgid "By the"
msgstr "Mukaan"
msgid "Last updated on"
msgstr "Viimeksi päivitetty"
msgid "Download source file"
msgstr "Lataa lähdetiedosto"
msgid "Download this page"
msgstr "Lataa tämä sivu"
msgid "next page"
msgstr "seuraava sivu"

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "Imprimer au format PDF"
msgid "Theme by the"
msgstr "Thème par le"
msgid "Open an issue"
msgstr "Ouvrez un problème"
msgid "Download source file"
msgstr "Télécharger le fichier source"
msgid "open issue"
msgstr "signaler un problème"
msgid "Contents"
msgstr "Contenu"
msgid "previous page"
msgstr "page précédente"
msgid "Download notebook file"
msgstr "Télécharger le fichier notebook"
msgid "Copyright"
msgstr "droits d'auteur"
msgid "Download this page"
msgstr "Téléchargez cette page"
msgid "Source repository"
msgstr "Dépôt source"
msgid "By"
msgstr "Par"
msgid "repository"
msgstr "dépôt"
msgid "Last updated on"
msgstr "Dernière mise à jour le"
msgid "Toggle navigation"
msgstr "Basculer la navigation"
msgid "Sphinx Book Theme"
msgstr "Thème du livre Sphinx"
msgid "suggest edit"
msgstr "suggestion de modification"
msgid "Open an issue"
msgstr "Ouvrez un problème"
msgid "Launch"
msgstr "lancement"
msgid "Fullscreen mode"
msgstr "Mode plein écran"
msgid "Edit this page"
msgstr "Modifier cette page"
msgid "By"
msgstr "Par"
msgid "Copyright"
msgstr "droits d'auteur"
msgid "Source repository"
msgstr "Dépôt source"
msgid "previous page"
msgstr "page précédente"
msgid "next page"
msgstr "page suivante"
msgid "Toggle navigation"
msgstr "Basculer la navigation"
msgid "repository"
msgstr "dépôt"
msgid "suggest edit"
msgstr "suggestion de modification"
msgid "open issue"
msgstr "signaler un problème"
msgid "Launch"
msgstr "lancement"
msgid "Print to PDF"
msgstr "Imprimer au format PDF"
msgid "By the"
msgstr "Par le"
msgid "Last updated on"
msgstr "Dernière mise à jour le"
msgid "Download source file"
msgstr "Télécharger le fichier source"
msgid "Download this page"
msgstr "Téléchargez cette page"
msgid "next page"
msgstr "page suivante"

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: hr\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "Ispis u PDF"
msgid "Theme by the"
msgstr "Tema autora"
msgid "Open an issue"
msgstr "Otvorite izdanje"
msgid "Download source file"
msgstr "Preuzmi izvornu datoteku"
msgid "open issue"
msgstr "otvoreno izdanje"
msgid "Contents"
msgstr "Sadržaj"
msgid "previous page"
msgstr "Prethodna stranica"
msgid "Download notebook file"
msgstr "Preuzmi datoteku bilježnice"
msgid "Copyright"
msgstr "Autorska prava"
msgid "Download this page"
msgstr "Preuzmite ovu stranicu"
msgid "Source repository"
msgstr "Izvorno spremište"
msgid "By"
msgstr "Po"
msgid "repository"
msgstr "spremište"
msgid "Last updated on"
msgstr "Posljednje ažuriranje:"
msgid "Toggle navigation"
msgstr "Uključi / isključi navigaciju"
msgid "Sphinx Book Theme"
msgstr "Tema knjige Sphinx"
msgid "suggest edit"
msgstr "predloži uređivanje"
msgid "Open an issue"
msgstr "Otvorite izdanje"
msgid "Launch"
msgstr "Pokrenite"
msgid "Fullscreen mode"
msgstr "Način preko cijelog zaslona"
msgid "Edit this page"
msgstr "Uredite ovu stranicu"
msgid "By"
msgstr "Po"
msgid "Copyright"
msgstr "Autorska prava"
msgid "Source repository"
msgstr "Izvorno spremište"
msgid "previous page"
msgstr "Prethodna stranica"
msgid "next page"
msgstr "sljedeća stranica"
msgid "Toggle navigation"
msgstr "Uključi / isključi navigaciju"
msgid "repository"
msgstr "spremište"
msgid "suggest edit"
msgstr "predloži uređivanje"
msgid "open issue"
msgstr "otvoreno izdanje"
msgid "Launch"
msgstr "Pokrenite"
msgid "Print to PDF"
msgstr "Ispis u PDF"
msgid "By the"
msgstr "Od strane"
msgid "Last updated on"
msgstr "Posljednje ažuriranje:"
msgid "Download source file"
msgstr "Preuzmi izvornu datoteku"
msgid "Download this page"
msgstr "Preuzmite ovu stranicu"
msgid "next page"
msgstr "sljedeća stranica"

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: id\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "Cetak ke PDF"
msgid "Theme by the"
msgstr "Tema oleh"
msgid "Open an issue"
msgstr "Buka masalah"
msgid "Download source file"
msgstr "Unduh file sumber"
msgid "open issue"
msgstr "masalah terbuka"
msgid "Contents"
msgstr "Isi"
msgid "previous page"
msgstr "halaman sebelumnya"
msgid "Download notebook file"
msgstr "Unduh file notebook"
msgid "Copyright"
msgstr "hak cipta"
msgid "Download this page"
msgstr "Unduh halaman ini"
msgid "Source repository"
msgstr "Repositori sumber"
msgid "By"
msgstr "Oleh"
msgid "repository"
msgstr "gudang"
msgid "Last updated on"
msgstr "Terakhir diperbarui saat"
msgid "Toggle navigation"
msgstr "Alihkan navigasi"
msgid "Sphinx Book Theme"
msgstr "Tema Buku Sphinx"
msgid "suggest edit"
msgstr "menyarankan edit"
msgid "Open an issue"
msgstr "Buka masalah"
msgid "Launch"
msgstr "Meluncurkan"
msgid "Fullscreen mode"
msgstr "Mode layar penuh"
msgid "Edit this page"
msgstr "Edit halaman ini"
msgid "By"
msgstr "Oleh"
msgid "Copyright"
msgstr "hak cipta"
msgid "Source repository"
msgstr "Repositori sumber"
msgid "previous page"
msgstr "halaman sebelumnya"
msgid "next page"
msgstr "halaman selanjutnya"
msgid "Toggle navigation"
msgstr "Alihkan navigasi"
msgid "repository"
msgstr "gudang"
msgid "suggest edit"
msgstr "menyarankan edit"
msgid "open issue"
msgstr "masalah terbuka"
msgid "Launch"
msgstr "Meluncurkan"
msgid "Print to PDF"
msgstr "Cetak ke PDF"
msgid "By the"
msgstr "Oleh"
msgid "Last updated on"
msgstr "Terakhir diperbarui saat"
msgid "Download source file"
msgstr "Unduh file sumber"
msgid "Download this page"
msgstr "Unduh halaman ini"
msgid "next page"
msgstr "halaman selanjutnya"

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: it\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "Stampa in PDF"
msgid "Theme by the"
msgstr "Tema di"
msgid "Open an issue"
msgstr "Apri un problema"
msgid "Download source file"
msgstr "Scarica il file sorgente"
msgid "open issue"
msgstr "questione aperta"
msgid "Contents"
msgstr "Contenuti"
msgid "previous page"
msgstr "pagina precedente"
msgid "Download notebook file"
msgstr "Scarica il file del taccuino"
msgid "Copyright"
msgstr "Diritto d'autore"
msgid "Download this page"
msgstr "Scarica questa pagina"
msgid "Source repository"
msgstr "Repository di origine"
msgid "By"
msgstr "Di"
msgid "repository"
msgstr "repository"
msgid "Last updated on"
msgstr "Ultimo aggiornamento il"
msgid "Toggle navigation"
msgstr "Attiva / disattiva la navigazione"
msgid "Sphinx Book Theme"
msgstr "Tema del libro della Sfinge"
msgid "suggest edit"
msgstr "suggerisci modifica"
msgid "Open an issue"
msgstr "Apri un problema"
msgid "Launch"
msgstr "Lanciare"
msgid "Fullscreen mode"
msgstr "Modalità schermo intero"
msgid "Edit this page"
msgstr "Modifica questa pagina"
msgid "By"
msgstr "Di"
msgid "Copyright"
msgstr "Diritto d'autore"
msgid "Source repository"
msgstr "Repository di origine"
msgid "previous page"
msgstr "pagina precedente"
msgid "next page"
msgstr "pagina successiva"
msgid "Toggle navigation"
msgstr "Attiva / disattiva la navigazione"
msgid "repository"
msgstr "repository"
msgid "suggest edit"
msgstr "suggerisci modifica"
msgid "open issue"
msgstr "questione aperta"
msgid "Launch"
msgstr "Lanciare"
msgid "Print to PDF"
msgstr "Stampa in PDF"
msgid "By the"
msgstr "Dal"
msgid "Last updated on"
msgstr "Ultimo aggiornamento il"
msgid "Download source file"
msgstr "Scarica il file sorgente"
msgid "Download this page"
msgstr "Scarica questa pagina"
msgid "next page"
msgstr "pagina successiva"

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: iw\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "הדפס לקובץ PDF"
msgid "Theme by the"
msgstr "נושא מאת"
msgid "Open an issue"
msgstr "פתח גיליון"
msgid "Download source file"
msgstr "הורד את קובץ המקור"
msgid "open issue"
msgstr "בעיה פתוחה"
msgid "Contents"
msgstr "תוכן"
msgid "previous page"
msgstr "עמוד קודם"
msgid "Download notebook file"
msgstr "הורד קובץ מחברת"
msgid "Copyright"
msgstr "זכויות יוצרים"
msgid "Download this page"
msgstr "הורד דף זה"
msgid "Source repository"
msgstr "מאגר המקורות"
msgid "By"
msgstr "על ידי"
msgid "repository"
msgstr "מאגר"
msgid "Last updated on"
msgstr "עודכן לאחרונה ב"
msgid "Toggle navigation"
msgstr "החלף ניווט"
msgid "Sphinx Book Theme"
msgstr "נושא ספר ספינקס"
msgid "suggest edit"
msgstr "מציע לערוך"
msgid "Open an issue"
msgstr "פתח גיליון"
msgid "Launch"
msgstr "לְהַשִׁיק"
msgid "Fullscreen mode"
msgstr "מצב מסך מלא"
msgid "Edit this page"
msgstr "ערוך דף זה"
msgid "By"
msgstr "על ידי"
msgid "Copyright"
msgstr "זכויות יוצרים"
msgid "Source repository"
msgstr "מאגר המקורות"
msgid "previous page"
msgstr "עמוד קודם"
msgid "next page"
msgstr "עמוד הבא"
msgid "Toggle navigation"
msgstr "החלף ניווט"
msgid "repository"
msgstr "מאגר"
msgid "suggest edit"
msgstr "מציע לערוך"
msgid "open issue"
msgstr "בעיה פתוחה"
msgid "Launch"
msgstr "לְהַשִׁיק"
msgid "Print to PDF"
msgstr "הדפס לקובץ PDF"
msgid "By the"
msgstr "דרך"
msgid "Last updated on"
msgstr "עודכן לאחרונה ב"
msgid "Download source file"
msgstr "הורד את קובץ המקור"
msgid "Download this page"
msgstr "הורד דף זה"
msgid "next page"
msgstr "עמוד הבא"

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: ja\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "PDFに印刷"
msgid "Theme by the"
msgstr "のテーマ"
msgid "Open an issue"
msgstr "問題を報告"
msgid "Download source file"
msgstr "ソースファイルをダウンロード"
msgid "open issue"
msgstr "未解決の問題"
msgid "Contents"
msgstr "目次"
msgid "previous page"
msgstr "前のページ"
msgid "Download notebook file"
msgstr "ノートブックファイルをダウンロード"
msgid "Copyright"
msgstr "Copyright"
msgid "Download this page"
msgstr "このページをダウンロード"
msgid "Source repository"
msgstr "ソースリポジトリ"
msgid "By"
msgstr "著者"
msgid "repository"
msgstr "リポジトリ"
msgid "Last updated on"
msgstr "最終更新日"
msgid "Toggle navigation"
msgstr "ナビゲーションを切り替え"
msgid "Sphinx Book Theme"
msgstr "スフィンクスの本のテーマ"
msgid "suggest edit"
msgstr "編集を提案する"
msgid "Open an issue"
msgstr "問題を報告"
msgid "Launch"
msgstr "起動"
msgid "Fullscreen mode"
msgstr "全画面モード"
msgid "Edit this page"
msgstr "このページを編集"
msgid "By"
msgstr "著者"
msgid "Copyright"
msgstr "Copyright"
msgid "Source repository"
msgstr "ソースリポジトリ"
msgid "previous page"
msgstr "前のページ"
msgid "next page"
msgstr "次のページ"
msgid "Toggle navigation"
msgstr "ナビゲーションを切り替え"
msgid "repository"
msgstr "リポジトリ"
msgid "suggest edit"
msgstr "編集を提案する"
msgid "open issue"
msgstr "未解決の問題"
msgid "Launch"
msgstr "起動"
msgid "Print to PDF"
msgstr "PDFに印刷"
msgid "By the"
msgstr "によって"
msgid "Last updated on"
msgstr "最終更新日"
msgid "Download source file"
msgstr "ソースファイルをダウンロード"
msgid "Download this page"
msgstr "このページをダウンロード"
msgid "next page"
msgstr "次のページ"

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: ko\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "PDF로 인쇄"
msgid "Theme by the"
msgstr "테마별"
msgid "Open an issue"
msgstr "이슈 열기"
msgid "Download source file"
msgstr "소스 파일 다운로드"
msgid "open issue"
msgstr "열린 문제"
msgid "Contents"
msgstr "내용"
msgid "previous page"
msgstr "이전 페이지"
msgid "Download notebook file"
msgstr "노트북 파일 다운로드"
msgid "Copyright"
msgstr "저작권"
msgid "Download this page"
msgstr "이 페이지 다운로드"
msgid "Source repository"
msgstr "소스 저장소"
msgid "By"
msgstr "으로"
msgid "repository"
msgstr "저장소"
msgid "Last updated on"
msgstr "마지막 업데이트"
msgid "Toggle navigation"
msgstr "탐색 전환"
msgid "Sphinx Book Theme"
msgstr "스핑크스 도서 테마"
msgid "suggest edit"
msgstr "편집 제안"
msgid "Open an issue"
msgstr "이슈 열기"
msgid "Launch"
msgstr "시작하다"
msgid "Fullscreen mode"
msgstr "전체 화면으로보기"
msgid "Edit this page"
msgstr "이 페이지 편집"
msgid "By"
msgstr "으로"
msgid "Copyright"
msgstr "저작권"
msgid "Source repository"
msgstr "소스 저장소"
msgid "previous page"
msgstr "이전 페이지"
msgid "next page"
msgstr "다음 페이지"
msgid "Toggle navigation"
msgstr "탐색 전환"
msgid "repository"
msgstr "저장소"
msgid "suggest edit"
msgstr "편집 제안"
msgid "open issue"
msgstr "열린 문제"
msgid "Launch"
msgstr "시작하다"
msgid "Print to PDF"
msgstr "PDF로 인쇄"
msgid "By the"
msgstr "에 의해"
msgid "Last updated on"
msgstr "마지막 업데이트"
msgid "Download source file"
msgstr "소스 파일 다운로드"
msgid "Download this page"
msgstr "이 페이지 다운로드"
msgid "next page"
msgstr "다음 페이지"

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: lt\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "Spausdinti į PDF"
msgid "Theme by the"
msgstr "Tema"
msgid "Open an issue"
msgstr "Atidarykite problemą"
msgid "Download source file"
msgstr "Atsisiųsti šaltinio failą"
msgid "open issue"
msgstr "atviras klausimas"
msgid "Contents"
msgstr "Turinys"
msgid "previous page"
msgstr "Ankstesnis puslapis"
msgid "Download notebook file"
msgstr "Atsisiųsti nešiojamojo kompiuterio failą"
msgid "Copyright"
msgstr "Autorių teisės"
msgid "Download this page"
msgstr "Atsisiųskite šį puslapį"
msgid "Source repository"
msgstr "Šaltinio saugykla"
msgid "By"
msgstr "Iki"
msgid "repository"
msgstr "saugykla"
msgid "Last updated on"
msgstr "Paskutinį kartą atnaujinta"
msgid "Toggle navigation"
msgstr "Perjungti naršymą"
msgid "Sphinx Book Theme"
msgstr "Sfinkso knygos tema"
msgid "suggest edit"
msgstr "pasiūlyti redaguoti"
msgid "Open an issue"
msgstr "Atidarykite problemą"
msgid "Launch"
msgstr "Paleiskite"
msgid "Fullscreen mode"
msgstr "Pilno ekrano režimas"
msgid "Edit this page"
msgstr "Redaguoti šį puslapį"
msgid "By"
msgstr "Iki"
msgid "Copyright"
msgstr "Autorių teisės"
msgid "Source repository"
msgstr "Šaltinio saugykla"
msgid "previous page"
msgstr "Ankstesnis puslapis"
msgid "next page"
msgstr "Kitas puslapis"
msgid "Toggle navigation"
msgstr "Perjungti naršymą"
msgid "repository"
msgstr "saugykla"
msgid "suggest edit"
msgstr "pasiūlyti redaguoti"
msgid "open issue"
msgstr "atviras klausimas"
msgid "Launch"
msgstr "Paleiskite"
msgid "Print to PDF"
msgstr "Spausdinti į PDF"
msgid "By the"
msgstr "Prie"
msgid "Last updated on"
msgstr "Paskutinį kartą atnaujinta"
msgid "Download source file"
msgstr "Atsisiųsti šaltinio failą"
msgid "Download this page"
msgstr "Atsisiųskite šį puslapį"
msgid "next page"
msgstr "Kitas puslapis"

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: lv\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "Drukāt PDF formātā"
msgid "Theme by the"
msgstr "Autora tēma"
msgid "Open an issue"
msgstr "Atveriet problēmu"
msgid "Download source file"
msgstr "Lejupielādēt avota failu"
msgid "open issue"
msgstr "atklāts jautājums"
msgid "Contents"
msgstr "Saturs"
msgid "previous page"
msgstr "iepriekšējā lapa"
msgid "Download notebook file"
msgstr "Lejupielādēt piezīmju grāmatiņu"
msgid "Copyright"
msgstr "Autortiesības"
msgid "Download this page"
msgstr "Lejupielādējiet šo lapu"
msgid "Source repository"
msgstr "Avota krātuve"
msgid "By"
msgstr "Autors"
msgid "repository"
msgstr "krātuve"
msgid "Last updated on"
msgstr "Pēdējoreiz atjaunināts"
msgid "Toggle navigation"
msgstr "Pārslēgt navigāciju"
msgid "Sphinx Book Theme"
msgstr "Sfinksa grāmatas tēma"
msgid "suggest edit"
msgstr "ieteikt rediģēt"
msgid "Open an issue"
msgstr "Atveriet problēmu"
msgid "Launch"
msgstr "Uzsākt"
msgid "Fullscreen mode"
msgstr "Pilnekrāna režīms"
msgid "Edit this page"
msgstr "Rediģēt šo lapu"
msgid "By"
msgstr "Autors"
msgid "Copyright"
msgstr "Autortiesības"
msgid "Source repository"
msgstr "Avota krātuve"
msgid "previous page"
msgstr "iepriekšējā lapa"
msgid "next page"
msgstr "nākamā lapaspuse"
msgid "Toggle navigation"
msgstr "Pārslēgt navigāciju"
msgid "repository"
msgstr "krātuve"
msgid "suggest edit"
msgstr "ieteikt rediģēt"
msgid "open issue"
msgstr "atklāts jautājums"
msgid "Launch"
msgstr "Uzsākt"
msgid "Print to PDF"
msgstr "Drukāt PDF formātā"
msgid "By the"
msgstr "Ar"
msgid "Last updated on"
msgstr "Pēdējoreiz atjaunināts"
msgid "Download source file"
msgstr "Lejupielādēt avota failu"
msgid "Download this page"
msgstr "Lejupielādējiet šo lapu"
msgid "next page"
msgstr "nākamā lapaspuse"

View File

@ -8,59 +8,59 @@ msgstr ""
"Language: ml\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "PDF- ലേക്ക് പ്രിന്റുചെയ്യുക"
msgid "Theme by the"
msgstr "പ്രമേയം"
msgid "Open an issue"
msgstr "ഒരു പ്രശ്നം തുറക്കുക"
msgid "Download notebook file"
msgstr "നോട്ട്ബുക്ക് ഫയൽ ഡൺലോഡ് ചെയ്യുക"
msgid "Sphinx Book Theme"
msgstr "സ്ഫിങ്ക്സ് പുസ്തക തീം"
msgid "Edit this page"
msgstr "ഈ പേജ് എഡിറ്റുചെയ്യുക"
msgid "By"
msgstr "എഴുതിയത്"
msgid "Copyright"
msgstr "പകർപ്പവകാശം"
msgid "Source repository"
msgstr "ഉറവിട ശേഖരം"
msgid "previous page"
msgstr "മുൻപത്തെ താൾ"
msgid "next page"
msgstr "അടുത്ത പേജ്"
msgid "Toggle navigation"
msgstr "നാവിഗേഷൻ ടോഗിൾ ചെയ്യുക"
msgid "suggest edit"
msgstr "എഡിറ്റുചെയ്യാൻ നിർദ്ദേശിക്കുക"
msgid "Download source file"
msgstr "ഉറവിട ഫയൽ ഡൗൺലോഡുചെയ്യുക"
msgid "open issue"
msgstr "തുറന്ന പ്രശ്നം"
msgid "Launch"
msgstr "സമാരംഭിക്കുക"
msgid "previous page"
msgstr "മുൻപത്തെ താൾ"
msgid "Print to PDF"
msgstr "PDF- ലേക്ക് പ്രിന്റുചെയ്യുക"
msgid "Download notebook file"
msgstr "നോട്ട്ബുക്ക് ഫയൽ ഡൺലോഡ് ചെയ്യുക"
msgid "By the"
msgid "Copyright"
msgstr "പകർപ്പവകാശം"
msgid "Download this page"
msgstr "ഈ പേജ് ഡൗൺലോഡുചെയ്യുക"
msgid "Source repository"
msgstr "ഉറവിട ശേഖരം"
msgid "By"
msgstr "എഴുതിയത്"
msgid "Last updated on"
msgstr "അവസാനം അപ്‌ഡേറ്റുചെയ്‌തത്"
msgid "Download source file"
msgstr "ഉറവിട ഫയൽ ഡൗൺലോഡുചെയ്യുക"
msgid "Toggle navigation"
msgstr "നാവിഗേഷൻ ടോഗിൾ ചെയ്യുക"
msgid "Download this page"
msgstr "ഈ പേജ് ഡൗൺലോഡുചെയ്യുക"
msgid "Sphinx Book Theme"
msgstr "സ്ഫിങ്ക്സ് പുസ്തക തീം"
msgid "suggest edit"
msgstr "എഡിറ്റുചെയ്യാൻ നിർദ്ദേശിക്കുക"
msgid "Open an issue"
msgstr "ഒരു പ്രശ്നം തുറക്കുക"
msgid "Launch"
msgstr "സമാരംഭിക്കുക"
msgid "Edit this page"
msgstr "ഈ പേജ് എഡിറ്റുചെയ്യുക"
msgid "By the"
msgstr "എഴുതിയത്"
msgid "next page"
msgstr "അടുത്ത പേജ്"

View File

@ -8,59 +8,59 @@ msgstr ""
"Language: mr\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "पीडीएफवर मुद्रित करा"
msgid "Theme by the"
msgstr "द्वारा थीम"
msgid "Open an issue"
msgstr "एक मुद्दा उघडा"
msgid "Download notebook file"
msgstr "नोटबुक फाईल डाउनलोड करा"
msgid "Sphinx Book Theme"
msgstr "स्फिंक्स बुक थीम"
msgid "Edit this page"
msgstr "हे पृष्ठ संपादित करा"
msgid "By"
msgstr "द्वारा"
msgid "Copyright"
msgstr "कॉपीराइट"
msgid "Source repository"
msgstr "स्त्रोत भांडार"
msgid "previous page"
msgstr "मागील पान"
msgid "next page"
msgstr "पुढील पृष्ठ"
msgid "Toggle navigation"
msgstr "नेव्हिगेशन टॉगल करा"
msgid "suggest edit"
msgstr "संपादन सुचवा"
msgid "Download source file"
msgstr "स्त्रोत फाइल डाउनलोड करा"
msgid "open issue"
msgstr "खुला मुद्दा"
msgid "Launch"
msgstr "लाँच करा"
msgid "previous page"
msgstr "मागील पान"
msgid "Print to PDF"
msgstr "पीडीएफवर मुद्रित करा"
msgid "Download notebook file"
msgstr "नोटबुक फाईल डाउनलोड करा"
msgid "By the"
msgid "Copyright"
msgstr "कॉपीराइट"
msgid "Download this page"
msgstr "हे पृष्ठ डाउनलोड करा"
msgid "Source repository"
msgstr "स्त्रोत भांडार"
msgid "By"
msgstr "द्वारा"
msgid "Last updated on"
msgstr "अखेरचे अद्यतनित"
msgid "Download source file"
msgstr "स्त्रोत फाइल डाउनलोड करा"
msgid "Toggle navigation"
msgstr "नेव्हिगेशन टॉगल करा"
msgid "Download this page"
msgstr "हे पृष्ठ डाउनलोड करा"
msgid "Sphinx Book Theme"
msgstr "स्फिंक्स बुक थीम"
msgid "suggest edit"
msgstr "संपादन सुचवा"
msgid "Open an issue"
msgstr "एक मुद्दा उघडा"
msgid "Launch"
msgstr "लाँच करा"
msgid "Edit this page"
msgstr "हे पृष्ठ संपादित करा"
msgid "By the"
msgstr "द्वारा"
msgid "next page"
msgstr "पुढील पृष्ठ"

View File

@ -8,59 +8,59 @@ msgstr ""
"Language: ms\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "Cetak ke PDF"
msgid "Theme by the"
msgstr "Tema oleh"
msgid "Open an issue"
msgstr "Buka masalah"
msgid "Download notebook file"
msgstr "Muat turun fail buku nota"
msgid "Sphinx Book Theme"
msgstr "Tema Buku Sphinx"
msgid "Edit this page"
msgstr "Edit halaman ini"
msgid "By"
msgstr "Oleh"
msgid "Copyright"
msgstr "hak cipta"
msgid "Source repository"
msgstr "Repositori sumber"
msgid "previous page"
msgstr "halaman sebelumnya"
msgid "next page"
msgstr "muka surat seterusnya"
msgid "Toggle navigation"
msgstr "Togol navigasi"
msgid "suggest edit"
msgstr "cadangkan edit"
msgid "Download source file"
msgstr "Muat turun fail sumber"
msgid "open issue"
msgstr "isu terbuka"
msgid "Launch"
msgstr "Lancarkan"
msgid "previous page"
msgstr "halaman sebelumnya"
msgid "Print to PDF"
msgstr "Cetak ke PDF"
msgid "Download notebook file"
msgstr "Muat turun fail buku nota"
msgid "By the"
msgid "Copyright"
msgstr "hak cipta"
msgid "Download this page"
msgstr "Muat turun halaman ini"
msgid "Source repository"
msgstr "Repositori sumber"
msgid "By"
msgstr "Oleh"
msgid "Last updated on"
msgstr "Terakhir dikemas kini pada"
msgid "Download source file"
msgstr "Muat turun fail sumber"
msgid "Toggle navigation"
msgstr "Togol navigasi"
msgid "Download this page"
msgstr "Muat turun halaman ini"
msgid "Sphinx Book Theme"
msgstr "Tema Buku Sphinx"
msgid "suggest edit"
msgstr "cadangkan edit"
msgid "Open an issue"
msgstr "Buka masalah"
msgid "Launch"
msgstr "Lancarkan"
msgid "Edit this page"
msgstr "Edit halaman ini"
msgid "By the"
msgstr "Oleh"
msgid "next page"
msgstr "muka surat seterusnya"

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: nl\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "Afdrukken naar pdf"
msgid "Theme by the"
msgstr "Thema door de"
msgid "Open an issue"
msgstr "Open een probleem"
msgid "Download source file"
msgstr "Download het bronbestand"
msgid "open issue"
msgstr "open probleem"
msgid "Contents"
msgstr "Inhoud"
msgid "previous page"
msgstr "vorige pagina"
msgid "Download notebook file"
msgstr "Download notebookbestand"
msgid "Copyright"
msgstr "auteursrechten"
msgid "Download this page"
msgstr "Download deze pagina"
msgid "Source repository"
msgstr "Bronopslagplaats"
msgid "By"
msgstr "Door"
msgid "repository"
msgstr "repository"
msgid "Last updated on"
msgstr "Laatst geupdate op"
msgid "Toggle navigation"
msgstr "Schakel navigatie"
msgid "Sphinx Book Theme"
msgstr "Sphinx-boekthema"
msgid "suggest edit"
msgstr "suggereren bewerken"
msgid "Open an issue"
msgstr "Open een probleem"
msgid "Launch"
msgstr "Lancering"
msgid "Fullscreen mode"
msgstr "Volledig scherm"
msgid "Edit this page"
msgstr "bewerk deze pagina"
msgid "By"
msgstr "Door"
msgid "Copyright"
msgstr "auteursrechten"
msgid "Source repository"
msgstr "Bronopslagplaats"
msgid "previous page"
msgstr "vorige pagina"
msgid "next page"
msgstr "volgende bladzijde"
msgid "Toggle navigation"
msgstr "Schakel navigatie"
msgid "repository"
msgstr "repository"
msgid "suggest edit"
msgstr "suggereren bewerken"
msgid "open issue"
msgstr "open probleem"
msgid "Launch"
msgstr "Lancering"
msgid "Print to PDF"
msgstr "Afdrukken naar pdf"
msgid "By the"
msgstr "Door de"
msgid "Last updated on"
msgstr "Laatst geupdate op"
msgid "Download source file"
msgstr "Download het bronbestand"
msgid "Download this page"
msgstr "Download deze pagina"
msgid "next page"
msgstr "volgende bladzijde"

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: no\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "Skriv ut til PDF"
msgid "Theme by the"
msgstr "Tema av"
msgid "Open an issue"
msgstr "Åpne et problem"
msgid "Download source file"
msgstr "Last ned kildefilen"
msgid "open issue"
msgstr "åpent nummer"
msgid "Contents"
msgstr "Innhold"
msgid "previous page"
msgstr "forrige side"
msgid "Download notebook file"
msgstr "Last ned notatbokfilen"
msgid "Copyright"
msgstr "opphavsrett"
msgid "Download this page"
msgstr "Last ned denne siden"
msgid "Source repository"
msgstr "Kildedepot"
msgid "By"
msgstr "Av"
msgid "repository"
msgstr "oppbevaringssted"
msgid "Last updated on"
msgstr "Sist oppdatert den"
msgid "Toggle navigation"
msgstr "Bytt navigasjon"
msgid "Sphinx Book Theme"
msgstr "Sphinx boktema"
msgid "suggest edit"
msgstr "foreslå redigering"
msgid "Open an issue"
msgstr "Åpne et problem"
msgid "Launch"
msgstr "Start"
msgid "Fullscreen mode"
msgstr "Fullskjerm-modus"
msgid "Edit this page"
msgstr "Rediger denne siden"
msgid "By"
msgstr "Av"
msgid "Copyright"
msgstr "opphavsrett"
msgid "Source repository"
msgstr "Kildedepot"
msgid "previous page"
msgstr "forrige side"
msgid "next page"
msgstr "neste side"
msgid "Toggle navigation"
msgstr "Bytt navigasjon"
msgid "repository"
msgstr "oppbevaringssted"
msgid "suggest edit"
msgstr "foreslå redigering"
msgid "open issue"
msgstr "åpent nummer"
msgid "Launch"
msgstr "Start"
msgid "Print to PDF"
msgstr "Skriv ut til PDF"
msgid "By the"
msgstr "Ved"
msgid "Last updated on"
msgstr "Sist oppdatert den"
msgid "Download source file"
msgstr "Last ned kildefilen"
msgid "Download this page"
msgstr "Last ned denne siden"
msgid "next page"
msgstr "neste side"

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: pl\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "Drukuj do PDF"
msgid "Theme by the"
msgstr "Motyw autorstwa"
msgid "Open an issue"
msgstr "Otwórz problem"
msgid "Download source file"
msgstr "Pobierz plik źródłowy"
msgid "open issue"
msgstr "otwarty problem"
msgid "Contents"
msgstr "Zawartość"
msgid "previous page"
msgstr "Poprzednia strona"
msgid "Download notebook file"
msgstr "Pobierz plik notatnika"
msgid "Copyright"
msgstr "prawa autorskie"
msgid "Download this page"
msgstr "Pobierz tę stronę"
msgid "Source repository"
msgstr "Repozytorium źródłowe"
msgid "By"
msgstr "Przez"
msgid "repository"
msgstr "magazyn"
msgid "Last updated on"
msgstr "Ostatnia aktualizacja"
msgid "Toggle navigation"
msgstr "Przełącz nawigację"
msgid "Sphinx Book Theme"
msgstr "Motyw książki Sphinx"
msgid "suggest edit"
msgstr "zaproponuj edycję"
msgid "Open an issue"
msgstr "Otwórz problem"
msgid "Launch"
msgstr "Uruchomić"
msgid "Fullscreen mode"
msgstr "Pełny ekran"
msgid "Edit this page"
msgstr "Edytuj tę strone"
msgid "By"
msgstr "Przez"
msgid "Copyright"
msgstr "prawa autorskie"
msgid "Source repository"
msgstr "Repozytorium źródłowe"
msgid "previous page"
msgstr "Poprzednia strona"
msgid "next page"
msgstr "Następna strona"
msgid "Toggle navigation"
msgstr "Przełącz nawigację"
msgid "repository"
msgstr "magazyn"
msgid "suggest edit"
msgstr "zaproponuj edycję"
msgid "open issue"
msgstr "otwarty problem"
msgid "Launch"
msgstr "Uruchomić"
msgid "Print to PDF"
msgstr "Drukuj do PDF"
msgid "By the"
msgstr "Przez"
msgid "Last updated on"
msgstr "Ostatnia aktualizacja"
msgid "Download source file"
msgstr "Pobierz plik źródłowy"
msgid "Download this page"
msgstr "Pobierz tę stronę"
msgid "next page"
msgstr "Następna strona"

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: pt\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "Imprimir em PDF"
msgid "Theme by the"
msgstr "Tema por"
msgid "Open an issue"
msgstr "Abra um problema"
msgid "Download source file"
msgstr "Baixar arquivo fonte"
msgid "open issue"
msgstr "questão aberta"
msgid "Contents"
msgstr "Conteúdo"
msgid "previous page"
msgstr "página anterior"
msgid "Download notebook file"
msgstr "Baixar arquivo de notebook"
msgid "Copyright"
msgstr "direito autoral"
msgid "Download this page"
msgstr "Baixe esta página"
msgid "Source repository"
msgstr "Repositório fonte"
msgid "By"
msgstr "De"
msgid "repository"
msgstr "repositório"
msgid "Last updated on"
msgstr "Última atualização em"
msgid "Toggle navigation"
msgstr "Alternar de navegação"
msgid "Sphinx Book Theme"
msgstr "Tema do livro Sphinx"
msgid "suggest edit"
msgstr "sugerir edição"
msgid "Open an issue"
msgstr "Abra um problema"
msgid "Launch"
msgstr "Lançamento"
msgid "Fullscreen mode"
msgstr "Modo tela cheia"
msgid "Edit this page"
msgstr "Edite essa página"
msgid "By"
msgstr "De"
msgid "Copyright"
msgstr "direito autoral"
msgid "Source repository"
msgstr "Repositório fonte"
msgid "previous page"
msgstr "página anterior"
msgid "next page"
msgstr "próxima página"
msgid "Toggle navigation"
msgstr "Alternar de navegação"
msgid "repository"
msgstr "repositório"
msgid "suggest edit"
msgstr "sugerir edição"
msgid "open issue"
msgstr "questão aberta"
msgid "Launch"
msgstr "Lançamento"
msgid "Print to PDF"
msgstr "Imprimir em PDF"
msgid "By the"
msgstr "Pelo"
msgid "Last updated on"
msgstr "Última atualização em"
msgid "Download source file"
msgstr "Baixar arquivo fonte"
msgid "Download this page"
msgstr "Baixe esta página"
msgid "next page"
msgstr "próxima página"

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: ro\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "Imprimați în PDF"
msgid "Theme by the"
msgstr "Tema de"
msgid "Open an issue"
msgstr "Deschideți o problemă"
msgid "Download source file"
msgstr "Descărcați fișierul sursă"
msgid "open issue"
msgstr "problema deschisă"
msgid "Contents"
msgstr "Cuprins"
msgid "previous page"
msgstr "pagina anterioară"
msgid "Download notebook file"
msgstr "Descărcați fișierul notebook"
msgid "Copyright"
msgstr "Drepturi de autor"
msgid "Download this page"
msgstr "Descarcă această pagină"
msgid "Source repository"
msgstr "Depozit sursă"
msgid "By"
msgstr "De"
msgid "repository"
msgstr "repertoriu"
msgid "Last updated on"
msgstr "Ultima actualizare la"
msgid "Toggle navigation"
msgstr "Comutare navigare"
msgid "Sphinx Book Theme"
msgstr "Tema Sphinx Book"
msgid "suggest edit"
msgstr "sugerează editare"
msgid "Open an issue"
msgstr "Deschideți o problemă"
msgid "Launch"
msgstr "Lansa"
msgid "Fullscreen mode"
msgstr "Modul ecran întreg"
msgid "Edit this page"
msgstr "Editați această pagină"
msgid "By"
msgstr "De"
msgid "Copyright"
msgstr "Drepturi de autor"
msgid "Source repository"
msgstr "Depozit sursă"
msgid "previous page"
msgstr "pagina anterioară"
msgid "next page"
msgstr "pagina următoare"
msgid "Toggle navigation"
msgstr "Comutare navigare"
msgid "repository"
msgstr "repertoriu"
msgid "suggest edit"
msgstr "sugerează editare"
msgid "open issue"
msgstr "problema deschisă"
msgid "Launch"
msgstr "Lansa"
msgid "Print to PDF"
msgstr "Imprimați în PDF"
msgid "By the"
msgstr "Langa"
msgid "Last updated on"
msgstr "Ultima actualizare la"
msgid "Download source file"
msgstr "Descărcați fișierul sursă"
msgid "Download this page"
msgstr "Descarcă această pagină"
msgid "next page"
msgstr "pagina următoare"

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: ru\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "Распечатать в PDF"
msgid "Theme by the"
msgstr "Тема от"
msgid "Open an issue"
msgstr "Открыть вопрос"
msgid "Download source file"
msgstr "Скачать исходный файл"
msgid "open issue"
msgstr "открытый вопрос"
msgid "Contents"
msgstr "Содержание"
msgid "previous page"
msgstr "Предыдущая страница"
msgid "Download notebook file"
msgstr "Скачать файл записной книжки"
msgid "Copyright"
msgstr "авторское право"
msgid "Download this page"
msgstr "Загрузите эту страницу"
msgid "Source repository"
msgstr "Исходный репозиторий"
msgid "By"
msgstr "По"
msgid "repository"
msgstr "хранилище"
msgid "Last updated on"
msgstr "Последнее обновление"
msgid "Toggle navigation"
msgstr "Переключить навигацию"
msgid "Sphinx Book Theme"
msgstr "Тема книги Сфинкс"
msgid "suggest edit"
msgstr "предложить редактировать"
msgid "Open an issue"
msgstr "Открыть вопрос"
msgid "Launch"
msgstr "Запуск"
msgid "Fullscreen mode"
msgstr "Полноэкранный режим"
msgid "Edit this page"
msgstr "Редактировать эту страницу"
msgid "By"
msgstr "По"
msgid "Copyright"
msgstr "авторское право"
msgid "Source repository"
msgstr "Исходный репозиторий"
msgid "previous page"
msgstr "Предыдущая страница"
msgid "next page"
msgstr "Следующая страница"
msgid "Toggle navigation"
msgstr "Переключить навигацию"
msgid "repository"
msgstr "хранилище"
msgid "suggest edit"
msgstr "предложить редактировать"
msgid "open issue"
msgstr "открытый вопрос"
msgid "Launch"
msgstr "Запуск"
msgid "Print to PDF"
msgstr "Распечатать в PDF"
msgid "By the"
msgstr "Посредством"
msgid "Last updated on"
msgstr "Последнее обновление"
msgid "Download source file"
msgstr "Скачать исходный файл"
msgid "Download this page"
msgstr "Загрузите эту страницу"
msgid "next page"
msgstr "Следующая страница"

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: sk\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "Tlač do PDF"
msgid "Theme by the"
msgstr "Téma od"
msgid "Open an issue"
msgstr "Otvorte problém"
msgid "Download source file"
msgstr "Stiahnite si zdrojový súbor"
msgid "open issue"
msgstr "otvorené vydanie"
msgid "Contents"
msgstr "Obsah"
msgid "previous page"
msgstr "predchádzajúca strana"
msgid "Download notebook file"
msgstr "Stiahnite si zošit"
msgid "Copyright"
msgstr "Autorské práva"
msgid "Download this page"
msgstr "Stiahnite si túto stránku"
msgid "Source repository"
msgstr "Zdrojové úložisko"
msgid "By"
msgstr "Autor:"
msgid "repository"
msgstr "Úložisko"
msgid "Last updated on"
msgstr "Posledná aktualizácia dňa"
msgid "Toggle navigation"
msgstr "Prepnúť navigáciu"
msgid "Sphinx Book Theme"
msgstr "Téma knihy Sfinga"
msgid "suggest edit"
msgstr "navrhnúť úpravu"
msgid "Open an issue"
msgstr "Otvorte problém"
msgid "Launch"
msgstr "Spustiť"
msgid "Fullscreen mode"
msgstr "Režim celej obrazovky"
msgid "Edit this page"
msgstr "Upraviť túto stránku"
msgid "By"
msgstr "Autor:"
msgid "Copyright"
msgstr "Autorské práva"
msgid "Source repository"
msgstr "Zdrojové úložisko"
msgid "previous page"
msgstr "predchádzajúca strana"
msgid "next page"
msgstr "ďalšia strana"
msgid "Toggle navigation"
msgstr "Prepnúť navigáciu"
msgid "repository"
msgstr "Úložisko"
msgid "suggest edit"
msgstr "navrhnúť úpravu"
msgid "open issue"
msgstr "otvorené vydanie"
msgid "Launch"
msgstr "Spustiť"
msgid "Print to PDF"
msgstr "Tlač do PDF"
msgid "By the"
msgstr "Podľa"
msgid "Last updated on"
msgstr "Posledná aktualizácia dňa"
msgid "Download source file"
msgstr "Stiahnite si zdrojový súbor"
msgid "Download this page"
msgstr "Stiahnite si túto stránku"
msgid "next page"
msgstr "ďalšia strana"

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: sl\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "Natisni v PDF"
msgid "Theme by the"
msgstr "Tema avtorja"
msgid "Open an issue"
msgstr "Odprite številko"
msgid "Download source file"
msgstr "Prenesite izvorno datoteko"
msgid "open issue"
msgstr "odprto vprašanje"
msgid "Contents"
msgstr "Vsebina"
msgid "previous page"
msgstr "Prejšnja stran"
msgid "Download notebook file"
msgstr "Prenesite datoteko zvezka"
msgid "Copyright"
msgstr "avtorske pravice"
msgid "Download this page"
msgstr "Prenesite to stran"
msgid "Source repository"
msgstr "Izvorno skladišče"
msgid "By"
msgstr "Avtor"
msgid "repository"
msgstr "odlagališče"
msgid "Last updated on"
msgstr "Nazadnje posodobljeno dne"
msgid "Toggle navigation"
msgstr "Preklopi navigacijo"
msgid "Sphinx Book Theme"
msgstr "Tema knjige Sphinx"
msgid "suggest edit"
msgstr "predlagajte urejanje"
msgid "Open an issue"
msgstr "Odprite številko"
msgid "Launch"
msgstr "Kosilo"
msgid "Fullscreen mode"
msgstr "Celozaslonski način"
msgid "Edit this page"
msgstr "Uredite to stran"
msgid "By"
msgstr "Avtor"
msgid "Copyright"
msgstr "avtorske pravice"
msgid "Source repository"
msgstr "Izvorno skladišče"
msgid "previous page"
msgstr "Prejšnja stran"
msgid "next page"
msgstr "Naslednja stran"
msgid "Toggle navigation"
msgstr "Preklopi navigacijo"
msgid "repository"
msgstr "odlagališče"
msgid "suggest edit"
msgstr "predlagajte urejanje"
msgid "open issue"
msgstr "odprto vprašanje"
msgid "Launch"
msgstr "Kosilo"
msgid "Print to PDF"
msgstr "Natisni v PDF"
msgid "By the"
msgstr "Avtor"
msgid "Last updated on"
msgstr "Nazadnje posodobljeno dne"
msgid "Download source file"
msgstr "Prenesite izvorno datoteko"
msgid "Download this page"
msgstr "Prenesite to stran"
msgid "next page"
msgstr "Naslednja stran"

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: sr\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "Испис у ПДФ"
msgid "Theme by the"
msgstr "Тхеме би"
msgid "Open an issue"
msgstr "Отворите издање"
msgid "Download source file"
msgstr "Преузми изворну датотеку"
msgid "open issue"
msgstr "отворено издање"
msgid "Contents"
msgstr "Садржај"
msgid "previous page"
msgstr "Претходна страница"
msgid "Download notebook file"
msgstr "Преузмите датотеку бележнице"
msgid "Copyright"
msgstr "Ауторско право"
msgid "Download this page"
msgstr "Преузмите ову страницу"
msgid "Source repository"
msgstr "Изворно спремиште"
msgid "By"
msgstr "Од стране"
msgid "repository"
msgstr "спремиште"
msgid "Last updated on"
msgstr "Последње ажурирање"
msgid "Toggle navigation"
msgstr "Укључи / искључи навигацију"
msgid "Sphinx Book Theme"
msgstr "Тема књиге Спхинк"
msgid "suggest edit"
msgstr "предложи уређивање"
msgid "Open an issue"
msgstr "Отворите издање"
msgid "Launch"
msgstr "Лансирање"
msgid "Fullscreen mode"
msgstr "Режим целог екрана"
msgid "Edit this page"
msgstr "Уредите ову страницу"
msgid "By"
msgstr "Од стране"
msgid "Copyright"
msgstr "Ауторско право"
msgid "Source repository"
msgstr "Изворно спремиште"
msgid "previous page"
msgstr "Претходна страница"
msgid "next page"
msgstr "Следећа страна"
msgid "Toggle navigation"
msgstr "Укључи / искључи навигацију"
msgid "repository"
msgstr "спремиште"
msgid "suggest edit"
msgstr "предложи уређивање"
msgid "open issue"
msgstr "отворено издање"
msgid "Launch"
msgstr "Лансирање"
msgid "Print to PDF"
msgstr "Испис у ПДФ"
msgid "By the"
msgstr "Од"
msgid "Last updated on"
msgstr "Последње ажурирање"
msgid "Download source file"
msgstr "Преузми изворну датотеку"
msgid "Download this page"
msgstr "Преузмите ову страницу"
msgid "next page"
msgstr "Следећа страна"

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: sv\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "Skriv ut till PDF"
msgid "Theme by the"
msgstr "Tema av"
msgid "Open an issue"
msgstr "Öppna en problemrapport"
msgid "Download source file"
msgstr "Ladda ner källfil"
msgid "open issue"
msgstr "öppna problemrapport"
msgid "Contents"
msgstr "Innehåll"
msgid "previous page"
msgstr "föregående sida"
msgid "Download notebook file"
msgstr "Ladda ner notebook-fil"
msgid "Copyright"
msgstr "Upphovsrätt"
msgid "Download this page"
msgstr "Ladda ner den här sidan"
msgid "Source repository"
msgstr "Källkodsrepositorium"
msgid "By"
msgstr "Av"
msgid "repository"
msgstr "repositorium"
msgid "Last updated on"
msgstr "Senast uppdaterad den"
msgid "Toggle navigation"
msgstr "Växla navigering"
msgid "Sphinx Book Theme"
msgstr "Sphinx Boktema"
msgid "suggest edit"
msgstr "föreslå ändring"
msgid "Open an issue"
msgstr "Öppna en problemrapport"
msgid "Launch"
msgstr "Öppna"
msgid "Fullscreen mode"
msgstr "Fullskärmsläge"
msgid "Edit this page"
msgstr "Redigera den här sidan"
msgid "By"
msgstr "Av"
msgid "Copyright"
msgstr "Upphovsrätt"
msgid "Source repository"
msgstr "Källkodsrepositorium"
msgid "previous page"
msgstr "föregående sida"
msgid "next page"
msgstr "nästa sida"
msgid "Toggle navigation"
msgstr "Växla navigering"
msgid "repository"
msgstr "repositorium"
msgid "suggest edit"
msgstr "föreslå ändring"
msgid "open issue"
msgstr "öppna problemrapport"
msgid "Launch"
msgstr "Öppna"
msgid "Print to PDF"
msgstr "Skriv ut till PDF"
msgid "By the"
msgstr "Av den"
msgid "Last updated on"
msgstr "Senast uppdaterad den"
msgid "Download source file"
msgstr "Ladda ner källfil"
msgid "Download this page"
msgstr "Ladda ner den här sidan"
msgid "next page"
msgstr "nästa sida"

View File

@ -8,59 +8,59 @@ msgstr ""
"Language: ta\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Theme by the"
msgstr "வழங்கிய தீம்"
msgid "Open an issue"
msgstr "சிக்கலைத் திறக்கவும்"
msgid "Download notebook file"
msgstr "நோட்புக் கோப்பைப் பதிவிறக்கவும்"
msgid "Sphinx Book Theme"
msgstr "ஸ்பிங்க்ஸ் புத்தக தீம்"
msgid "Edit this page"
msgstr "இந்தப் பக்கத்தைத் திருத்தவும்"
msgid "By"
msgstr "வழங்கியவர்"
msgid "Copyright"
msgstr "பதிப்புரிமை"
msgid "Source repository"
msgstr "மூல களஞ்சியம்"
msgid "previous page"
msgstr "முந்தைய பக்கம்"
msgid "next page"
msgstr "அடுத்த பக்கம்"
msgid "Toggle navigation"
msgstr "வழிசெலுத்தலை நிலைமாற்று"
msgid "suggest edit"
msgstr "திருத்த பரிந்துரைக்கவும்"
msgid "open issue"
msgstr "திறந்த பிரச்சினை"
msgid "Launch"
msgstr "தொடங்க"
msgid "Print to PDF"
msgstr "PDF இல் அச்சிடுக"
msgid "By the"
msgstr "மூலம்"
msgid "Last updated on"
msgstr "கடைசியாக புதுப்பிக்கப்பட்டது"
msgid "Theme by the"
msgstr "வழங்கிய தீம்"
msgid "Download source file"
msgstr "மூல கோப்பைப் பதிவிறக்குக"
msgid "open issue"
msgstr "திறந்த பிரச்சினை"
msgid "previous page"
msgstr "முந்தைய பக்கம்"
msgid "Download notebook file"
msgstr "நோட்புக் கோப்பைப் பதிவிறக்கவும்"
msgid "Copyright"
msgstr "பதிப்புரிமை"
msgid "Download this page"
msgstr "இந்தப் பக்கத்தைப் பதிவிறக்கவும்"
msgid "Source repository"
msgstr "மூல களஞ்சியம்"
msgid "By"
msgstr "வழங்கியவர்"
msgid "Last updated on"
msgstr "கடைசியாக புதுப்பிக்கப்பட்டது"
msgid "Toggle navigation"
msgstr "வழிசெலுத்தலை நிலைமாற்று"
msgid "Sphinx Book Theme"
msgstr "ஸ்பிங்க்ஸ் புத்தக தீம்"
msgid "suggest edit"
msgstr "திருத்த பரிந்துரைக்கவும்"
msgid "Open an issue"
msgstr "சிக்கலைத் திறக்கவும்"
msgid "Launch"
msgstr "தொடங்க"
msgid "Edit this page"
msgstr "இந்தப் பக்கத்தைத் திருத்தவும்"
msgid "By the"
msgstr "மூலம்"
msgid "next page"
msgstr "அடுத்த பக்கம்"

View File

@ -8,59 +8,59 @@ msgstr ""
"Language: te\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "PDF కి ముద్రించండి"
msgid "Theme by the"
msgstr "ద్వారా థీమ్"
msgid "Open an issue"
msgstr "సమస్యను తెరవండి"
msgid "Download notebook file"
msgstr "నోట్బుక్ ఫైల్ను డౌన్లోడ్ చేయండి"
msgid "Sphinx Book Theme"
msgstr "సింహిక పుస్తక థీమ్"
msgid "Edit this page"
msgstr "ఈ పేజీని సవరించండి"
msgid "By"
msgstr "ద్వారా"
msgid "Copyright"
msgstr "కాపీరైట్"
msgid "Source repository"
msgstr "మూల రిపోజిటరీ"
msgid "previous page"
msgstr "ముందు పేజి"
msgid "next page"
msgstr "తరువాతి పేజీ"
msgid "Toggle navigation"
msgstr "నావిగేషన్‌ను టోగుల్ చేయండి"
msgid "suggest edit"
msgstr "సవరించమని సూచించండి"
msgid "Download source file"
msgstr "మూల ఫైల్‌ను డౌన్‌లోడ్ చేయండి"
msgid "open issue"
msgstr "ఓపెన్ ఇష్యూ"
msgid "Launch"
msgstr "ప్రారంభించండి"
msgid "previous page"
msgstr "ముందు పేజి"
msgid "Print to PDF"
msgstr "PDF కి ముద్రించండి"
msgid "Download notebook file"
msgstr "నోట్బుక్ ఫైల్ను డౌన్లోడ్ చేయండి"
msgid "By the"
msgid "Copyright"
msgstr "కాపీరైట్"
msgid "Download this page"
msgstr "ఈ పేజీని డౌన్‌లోడ్ చేయండి"
msgid "Source repository"
msgstr "మూల రిపోజిటరీ"
msgid "By"
msgstr "ద్వారా"
msgid "Last updated on"
msgstr "చివరిగా నవీకరించబడింది"
msgid "Download source file"
msgstr "మూల ఫైల్‌ను డౌన్‌లోడ్ చేయండి"
msgid "Toggle navigation"
msgstr "నావిగేషన్‌ను టోగుల్ చేయండి"
msgid "Download this page"
msgstr "ఈ పేజీని డౌన్‌లోడ్ చేయండి"
msgid "Sphinx Book Theme"
msgstr "సింహిక పుస్తక థీమ్"
msgid "suggest edit"
msgstr "సవరించమని సూచించండి"
msgid "Open an issue"
msgstr "సమస్యను తెరవండి"
msgid "Launch"
msgstr "ప్రారంభించండి"
msgid "Edit this page"
msgstr "ఈ పేజీని సవరించండి"
msgid "By the"
msgstr "ద్వారా"
msgid "next page"
msgstr "తరువాతి పేజీ"

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: tg\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "Чоп ба PDF"
msgid "Theme by the"
msgstr "Мавзӯъи аз"
msgid "Open an issue"
msgstr "Масъаларо кушоед"
msgid "Download source file"
msgstr "Файли манбаъро зеркашӣ кунед"
msgid "open issue"
msgstr "барориши кушод"
msgid "Contents"
msgstr "Мундариҷа"
msgid "previous page"
msgstr "саҳифаи қаблӣ"
msgid "Download notebook file"
msgstr "Файли дафтарро зеркашӣ кунед"
msgid "Copyright"
msgstr "Ҳуқуқи муаллиф"
msgid "Download this page"
msgstr "Ин саҳифаро зеркашӣ кунед"
msgid "Source repository"
msgstr "Анбори манбаъ"
msgid "By"
msgstr "Бо"
msgid "repository"
msgstr "анбор"
msgid "Last updated on"
msgstr "Last навсозӣ дар"
msgid "Toggle navigation"
msgstr "Гузаришро иваз кунед"
msgid "Sphinx Book Theme"
msgstr "Сфинкс Мавзӯи китоб"
msgid "suggest edit"
msgstr "пешниҳод вироиш"
msgid "Open an issue"
msgstr "Масъаларо кушоед"
msgid "Launch"
msgstr "Оғоз"
msgid "Fullscreen mode"
msgstr "Ҳолати экрани пурра"
msgid "Edit this page"
msgstr "Ин саҳифаро таҳрир кунед"
msgid "By"
msgstr "Бо"
msgid "Copyright"
msgstr "Ҳуқуқи муаллиф"
msgid "Source repository"
msgstr "Анбори манбаъ"
msgid "previous page"
msgstr "саҳифаи қаблӣ"
msgid "next page"
msgstr "саҳифаи оянда"
msgid "Toggle navigation"
msgstr "Гузаришро иваз кунед"
msgid "repository"
msgstr "анбор"
msgid "suggest edit"
msgstr "пешниҳод вироиш"
msgid "open issue"
msgstr "барориши кушод"
msgid "Launch"
msgstr "Оғоз"
msgid "Print to PDF"
msgstr "Чоп ба PDF"
msgid "By the"
msgstr "Бо"
msgid "Last updated on"
msgstr "Last навсозӣ дар"
msgid "Download source file"
msgstr "Файли манбаъро зеркашӣ кунед"
msgid "Download this page"
msgstr "Ин саҳифаро зеркашӣ кунед"
msgid "next page"
msgstr "саҳифаи оянда"

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: th\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "พิมพ์เป็น PDF"
msgid "Theme by the"
msgstr "ธีมโดย"
msgid "Open an issue"
msgid "Download source file"
msgstr "ดาวน์โหลดไฟล์ต้นฉบับ"
msgid "open issue"
msgstr "เปิดปัญหา"
msgid "Contents"
msgstr "สารบัญ"
msgid "previous page"
msgstr "หน้าที่แล้ว"
msgid "Download notebook file"
msgstr "ดาวน์โหลดไฟล์สมุดบันทึก"
msgid "Copyright"
msgstr "ลิขสิทธิ์"
msgid "Download this page"
msgstr "ดาวน์โหลดหน้านี้"
msgid "Source repository"
msgstr "ที่เก็บซอร์ส"
msgid "By"
msgstr "โดย"
msgid "repository"
msgstr "ที่เก็บ"
msgid "Last updated on"
msgstr "ปรับปรุงล่าสุดเมื่อ"
msgid "Toggle navigation"
msgstr "ไม่ต้องสลับช่องทาง"
msgid "Sphinx Book Theme"
msgstr "ธีมหนังสือสฟิงซ์"
msgid "suggest edit"
msgstr "แนะนำแก้ไข"
msgid "Open an issue"
msgstr "เปิดปัญหา"
msgid "Launch"
msgstr "เปิด"
msgid "Fullscreen mode"
msgstr "โหมดเต็มหน้าจอ"
msgid "Edit this page"
msgstr "แก้ไขหน้านี้"
msgid "By"
msgstr "โดย"
msgid "Copyright"
msgstr "ลิขสิทธิ์"
msgid "Source repository"
msgstr "ที่เก็บซอร์ส"
msgid "previous page"
msgstr "หน้าที่แล้ว"
msgid "next page"
msgstr "หน้าต่อไป"
msgid "Toggle navigation"
msgstr "ไม่ต้องสลับช่องทาง"
msgid "repository"
msgstr "ที่เก็บ"
msgid "suggest edit"
msgstr "แนะนำแก้ไข"
msgid "open issue"
msgstr "เปิดปัญหา"
msgid "Launch"
msgstr "เปิด"
msgid "Print to PDF"
msgstr "พิมพ์เป็น PDF"
msgid "By the"
msgstr "โดย"
msgid "Last updated on"
msgstr "ปรับปรุงล่าสุดเมื่อ"
msgid "Download source file"
msgstr "ดาวน์โหลดไฟล์ต้นฉบับ"
msgid "Download this page"
msgstr "ดาวน์โหลดหน้านี้"
msgid "next page"
msgstr "หน้าต่อไป"

View File

@ -8,59 +8,59 @@ msgstr ""
"Language: tl\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Theme by the"
msgstr "Tema ng"
msgid "Open an issue"
msgstr "Magbukas ng isyu"
msgid "Download notebook file"
msgstr "Mag-download ng file ng notebook"
msgid "Sphinx Book Theme"
msgstr "Tema ng Sphinx Book"
msgid "Edit this page"
msgstr "I-edit ang pahinang ito"
msgid "By"
msgstr "Ni"
msgid "Copyright"
msgstr "Copyright"
msgid "Source repository"
msgstr "Pinagmulan ng imbakan"
msgid "previous page"
msgstr "Nakaraang pahina"
msgid "next page"
msgstr "Susunod na pahina"
msgid "Toggle navigation"
msgstr "I-toggle ang pag-navigate"
msgid "suggest edit"
msgstr "iminumungkahi i-edit"
msgid "open issue"
msgstr "bukas na isyu"
msgid "Launch"
msgstr "Ilunsad"
msgid "Print to PDF"
msgstr "I-print sa PDF"
msgid "By the"
msgstr "Sa pamamagitan ng"
msgid "Last updated on"
msgstr "Huling na-update noong"
msgid "Theme by the"
msgstr "Tema ng"
msgid "Download source file"
msgstr "Mag-download ng file ng pinagmulan"
msgid "open issue"
msgstr "bukas na isyu"
msgid "previous page"
msgstr "Nakaraang pahina"
msgid "Download notebook file"
msgstr "Mag-download ng file ng notebook"
msgid "Copyright"
msgstr "Copyright"
msgid "Download this page"
msgstr "I-download ang pahinang ito"
msgid "Source repository"
msgstr "Pinagmulan ng imbakan"
msgid "By"
msgstr "Ni"
msgid "Last updated on"
msgstr "Huling na-update noong"
msgid "Toggle navigation"
msgstr "I-toggle ang pag-navigate"
msgid "Sphinx Book Theme"
msgstr "Tema ng Sphinx Book"
msgid "suggest edit"
msgstr "iminumungkahi i-edit"
msgid "Open an issue"
msgstr "Magbukas ng isyu"
msgid "Launch"
msgstr "Ilunsad"
msgid "Edit this page"
msgstr "I-edit ang pahinang ito"
msgid "By the"
msgstr "Sa pamamagitan ng"
msgid "next page"
msgstr "Susunod na pahina"

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: tr\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "PDF olarak yazdır"
msgid "Theme by the"
msgstr "Tarafından tema"
msgid "Open an issue"
msgstr "Bir sorunu açın"
msgid "Download source file"
msgstr "Kaynak dosyayı indirin"
msgid "open issue"
msgstr "Açık konu"
msgid "Contents"
msgstr "İçindekiler"
msgid "previous page"
msgstr "önceki sayfa"
msgid "Download notebook file"
msgstr "Defter dosyasını indirin"
msgid "Copyright"
msgstr "Telif hakkı"
msgid "Download this page"
msgstr "Bu sayfayı indirin"
msgid "Source repository"
msgstr "Kaynak kod deposu"
msgid "By"
msgstr "Tarafından"
msgid "repository"
msgstr "depo"
msgid "Last updated on"
msgstr "Son güncelleme tarihi"
msgid "Toggle navigation"
msgstr "Gezinmeyi değiştir"
msgid "Sphinx Book Theme"
msgstr "Sfenks Kitap Teması"
msgid "suggest edit"
msgstr "düzenleme öner"
msgid "Open an issue"
msgstr "Bir sorunu açın"
msgid "Launch"
msgstr "Başlatmak"
msgid "Fullscreen mode"
msgstr "Tam ekran modu"
msgid "Edit this page"
msgstr "Bu sayfayı düzenle"
msgid "By"
msgstr "Tarafından"
msgid "Copyright"
msgstr "Telif hakkı"
msgid "Source repository"
msgstr "Kaynak kod deposu"
msgid "previous page"
msgstr "önceki sayfa"
msgid "next page"
msgstr "sonraki Sayfa"
msgid "Toggle navigation"
msgstr "Gezinmeyi değiştir"
msgid "repository"
msgstr "depo"
msgid "suggest edit"
msgstr "düzenleme öner"
msgid "open issue"
msgstr "Açık konu"
msgid "Launch"
msgstr "Başlatmak"
msgid "Print to PDF"
msgstr "PDF olarak yazdır"
msgid "By the"
msgstr "Tarafından"
msgid "Last updated on"
msgstr "Son güncelleme tarihi"
msgid "Download source file"
msgstr "Kaynak dosyayı indirin"
msgid "Download this page"
msgstr "Bu sayfayı indirin"
msgid "next page"
msgstr "sonraki Sayfa"

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: uk\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "Друк у форматі PDF"
msgid "Theme by the"
msgstr "Тема від"
msgid "Open an issue"
msgstr "Відкрийте випуск"
msgid "Download source file"
msgstr "Завантажити вихідний файл"
msgid "open issue"
msgstr "відкритий випуск"
msgid "Contents"
msgstr "Зміст"
msgid "previous page"
msgstr "Попередня сторінка"
msgid "Download notebook file"
msgstr "Завантажте файл блокнота"
msgid "Copyright"
msgstr "Авторське право"
msgid "Download this page"
msgstr "Завантажте цю сторінку"
msgid "Source repository"
msgstr "Джерело сховища"
msgid "By"
msgstr "Автор"
msgid "repository"
msgstr "сховище"
msgid "Last updated on"
msgstr "Останнє оновлення:"
msgid "Toggle navigation"
msgstr "Переключити навігацію"
msgid "Sphinx Book Theme"
msgstr "Тема книги \"Сфінкс\""
msgid "suggest edit"
msgstr "запропонувати редагувати"
msgid "Open an issue"
msgstr "Відкрийте випуск"
msgid "Launch"
msgstr "Запуск"
msgid "Fullscreen mode"
msgstr "Повноекранний режим"
msgid "Edit this page"
msgstr "Редагувати цю сторінку"
msgid "By"
msgstr "Автор"
msgid "Copyright"
msgstr "Авторське право"
msgid "Source repository"
msgstr "Джерело сховища"
msgid "previous page"
msgstr "Попередня сторінка"
msgid "next page"
msgstr "Наступна сторінка"
msgid "Toggle navigation"
msgstr "Переключити навігацію"
msgid "repository"
msgstr "сховище"
msgid "suggest edit"
msgstr "запропонувати редагувати"
msgid "open issue"
msgstr "відкритий випуск"
msgid "Launch"
msgstr "Запуск"
msgid "Print to PDF"
msgstr "Друк у форматі PDF"
msgid "By the"
msgstr "По"
msgid "Last updated on"
msgstr "Останнє оновлення:"
msgid "Download source file"
msgstr "Завантажити вихідний файл"
msgid "Download this page"
msgstr "Завантажте цю сторінку"
msgid "next page"
msgstr "Наступна сторінка"

View File

@ -8,59 +8,59 @@ msgstr ""
"Language: ur\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Theme by the"
msgstr "کے ذریعہ تھیم"
msgid "Open an issue"
msgstr "ایک مسئلہ کھولیں"
msgid "Download notebook file"
msgstr "نوٹ بک فائل ڈاؤن لوڈ کریں"
msgid "Sphinx Book Theme"
msgstr "سپنکس بک تھیم"
msgid "Edit this page"
msgstr "اس صفحے میں ترمیم کریں"
msgid "By"
msgstr "بذریعہ"
msgid "Copyright"
msgstr "کاپی رائٹ"
msgid "Source repository"
msgstr "ماخذ ذخیرہ"
msgid "previous page"
msgstr "سابقہ ​​صفحہ"
msgid "next page"
msgstr "اگلا صفحہ"
msgid "Toggle navigation"
msgstr "نیویگیشن ٹوگل کریں"
msgid "suggest edit"
msgstr "ترمیم کی تجویز کریں"
msgid "open issue"
msgstr "کھلا مسئلہ"
msgid "Launch"
msgstr "لانچ کریں"
msgid "Print to PDF"
msgstr "پی ڈی ایف پرنٹ کریں"
msgid "By the"
msgstr "کی طرف"
msgid "Last updated on"
msgstr "آخری بار تازہ کاری ہوئی"
msgid "Theme by the"
msgstr "کے ذریعہ تھیم"
msgid "Download source file"
msgstr "سورس فائل ڈاؤن لوڈ کریں"
msgid "open issue"
msgstr "کھلا مسئلہ"
msgid "previous page"
msgstr "سابقہ ​​صفحہ"
msgid "Download notebook file"
msgstr "نوٹ بک فائل ڈاؤن لوڈ کریں"
msgid "Copyright"
msgstr "کاپی رائٹ"
msgid "Download this page"
msgstr "اس صفحے کو ڈاؤن لوڈ کریں"
msgid "Source repository"
msgstr "ماخذ ذخیرہ"
msgid "By"
msgstr "بذریعہ"
msgid "Last updated on"
msgstr "آخری بار تازہ کاری ہوئی"
msgid "Toggle navigation"
msgstr "نیویگیشن ٹوگل کریں"
msgid "Sphinx Book Theme"
msgstr "سپنکس بک تھیم"
msgid "suggest edit"
msgstr "ترمیم کی تجویز کریں"
msgid "Open an issue"
msgstr "ایک مسئلہ کھولیں"
msgid "Launch"
msgstr "لانچ کریں"
msgid "Edit this page"
msgstr "اس صفحے میں ترمیم کریں"
msgid "By the"
msgstr "کی طرف"
msgid "next page"
msgstr "اگلا صفحہ"

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: vi\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "In sang PDF"
msgid "Theme by the"
msgstr "Chủ đề của"
msgid "Open an issue"
msgstr "Mở một vấn đề"
msgid "Download source file"
msgstr "Tải xuống tệp nguồn"
msgid "open issue"
msgstr "vấn đề mở"
msgid "Contents"
msgstr "Nội dung"
msgid "previous page"
msgstr "trang trước"
msgid "Download notebook file"
msgstr "Tải xuống tệp sổ tay"
msgid "Copyright"
msgstr "Bản quyền"
msgid "Download this page"
msgstr "Tải xuống trang này"
msgid "Source repository"
msgstr "Kho nguồn"
msgid "By"
msgstr "Bởi"
msgid "repository"
msgstr "kho"
msgid "Last updated on"
msgstr "Cập nhật lần cuối vào"
msgid "Toggle navigation"
msgstr "Chuyển đổi điều hướng thành"
msgid "Sphinx Book Theme"
msgstr "Chủ đề sách nhân sư"
msgid "suggest edit"
msgstr "đề nghị chỉnh sửa"
msgid "Open an issue"
msgstr "Mở một vấn đề"
msgid "Launch"
msgstr "Phóng"
msgid "Fullscreen mode"
msgstr "Chế độ toàn màn hình"
msgid "Edit this page"
msgstr "chỉnh sửa trang này"
msgid "By"
msgstr "Bởi"
msgid "Copyright"
msgstr "Bản quyền"
msgid "Source repository"
msgstr "Kho nguồn"
msgid "previous page"
msgstr "trang trước"
msgid "next page"
msgstr "Trang tiếp theo"
msgid "Toggle navigation"
msgstr "Chuyển đổi điều hướng thành"
msgid "repository"
msgstr "kho"
msgid "suggest edit"
msgstr "đề nghị chỉnh sửa"
msgid "open issue"
msgstr "vấn đề mở"
msgid "Launch"
msgstr "Phóng"
msgid "Print to PDF"
msgstr "In sang PDF"
msgid "By the"
msgstr "Bằng"
msgid "Last updated on"
msgstr "Cập nhật lần cuối vào"
msgid "Download source file"
msgstr "Tải xuống tệp nguồn"
msgid "Download this page"
msgstr "Tải xuống trang này"
msgid "next page"
msgstr "Trang tiếp theo"

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: zh_CN\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "列印成 PDF"
msgid "Theme by the"
msgstr "主题作者:"
msgid "Open an issue"
msgid "Download source file"
msgstr "下载源文件"
msgid "open issue"
msgstr "创建议题"
msgid "Contents"
msgstr "目录"
msgid "previous page"
msgstr "上一页"
msgid "Download notebook file"
msgstr "下载笔记本文件"
msgid "Copyright"
msgstr "版权"
msgid "Download this page"
msgstr "下载此页面"
msgid "Source repository"
msgstr "源码库"
msgid "By"
msgstr "作者:"
msgid "repository"
msgstr "仓库"
msgid "Last updated on"
msgstr "上次更新时间:"
msgid "Toggle navigation"
msgstr "显示或隐藏导航栏"
msgid "Sphinx Book Theme"
msgstr "Sphinx Book 主题"
msgid "suggest edit"
msgstr "提出修改建议"
msgid "Open an issue"
msgstr "创建议题"
msgid "Launch"
msgstr "启动"
msgid "Fullscreen mode"
msgstr "全屏模式"
msgid "Edit this page"
msgstr "编辑此页面"
msgid "By"
msgstr "作者:"
msgid "Copyright"
msgstr "版权"
msgid "Source repository"
msgstr "源码库"
msgid "previous page"
msgstr "上一页"
msgid "next page"
msgstr "下一页"
msgid "Toggle navigation"
msgstr "显示或隐藏导航栏"
msgid "repository"
msgstr "仓库"
msgid "suggest edit"
msgstr "提出修改建议"
msgid "open issue"
msgstr "创建议题"
msgid "Launch"
msgstr "启动"
msgid "Print to PDF"
msgstr "列印成 PDF"
msgid "By the"
msgstr "作者:"
msgid "Last updated on"
msgstr "上次更新时间:"
msgid "Download source file"
msgstr "下载源文件"
msgid "Download this page"
msgstr "下载此页面"
msgid "next page"
msgstr "下一页"

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: zh_TW\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "列印成 PDF"
msgid "Theme by the"
msgstr "佈景主題作者:"
msgid "Open an issue"
msgstr "開啟議題"
msgid "Download source file"
msgstr "下載原始檔"
msgid "open issue"
msgstr "公開的問題"
msgid "Contents"
msgstr "目錄"
msgid "previous page"
msgstr "上一頁"
msgid "Download notebook file"
msgstr "下載 Notebook 檔案"
msgid "Copyright"
msgstr "Copyright"
msgid "Download this page"
msgstr "下載此頁面"
msgid "Source repository"
msgstr "來源儲存庫"
msgid "By"
msgstr "作者:"
msgid "repository"
msgstr "儲存庫"
msgid "Last updated on"
msgstr "最後更新時間:"
msgid "Toggle navigation"
msgstr "顯示或隱藏導覽列"
msgid "Sphinx Book Theme"
msgstr "Sphinx Book 佈景主題"
msgid "suggest edit"
msgstr "提出修改建議"
msgid "Open an issue"
msgstr "開啟議題"
msgid "Launch"
msgstr "啟動"
msgid "Fullscreen mode"
msgstr "全螢幕模式"
msgid "Edit this page"
msgstr "編輯此頁面"
msgid "By"
msgstr "作者:"
msgid "Copyright"
msgstr "Copyright"
msgid "Source repository"
msgstr "來源儲存庫"
msgid "previous page"
msgstr "上一頁"
msgid "next page"
msgstr "下一頁"
msgid "Toggle navigation"
msgstr "顯示或隱藏導覽列"
msgid "repository"
msgstr "儲存庫"
msgid "suggest edit"
msgstr "提出修改建議"
msgid "open issue"
msgstr "公開的問題"
msgid "Launch"
msgstr "啟動"
msgid "Print to PDF"
msgstr "列印成 PDF"
msgid "By the"
msgstr "作者:"
msgid "Last updated on"
msgstr "最後更新時間:"
msgid "Download source file"
msgstr "下載原始檔"
msgid "Download this page"
msgstr "下載此頁面"
msgid "next page"
msgstr "下一頁"

View File

@ -3,77 +3,77 @@ html[data-theme="light"] .highlight td.linenos .normal { color: inherit; backgro
html[data-theme="light"] .highlight span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
html[data-theme="light"] .highlight td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
html[data-theme="light"] .highlight span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
html[data-theme="light"] .highlight .hll { background-color: #7971292e }
html[data-theme="light"] .highlight { background: #fefefe; color: #545454 }
html[data-theme="light"] .highlight .c { color: #797129 } /* Comment */
html[data-theme="light"] .highlight .err { color: #d91e18 } /* Error */
html[data-theme="light"] .highlight .k { color: #7928a1 } /* Keyword */
html[data-theme="light"] .highlight .l { color: #797129 } /* Literal */
html[data-theme="light"] .highlight .n { color: #545454 } /* Name */
html[data-theme="light"] .highlight .o { color: #008000 } /* Operator */
html[data-theme="light"] .highlight .p { color: #545454 } /* Punctuation */
html[data-theme="light"] .highlight .ch { color: #797129 } /* Comment.Hashbang */
html[data-theme="light"] .highlight .cm { color: #797129 } /* Comment.Multiline */
html[data-theme="light"] .highlight .cp { color: #797129 } /* Comment.Preproc */
html[data-theme="light"] .highlight .cpf { color: #797129 } /* Comment.PreprocFile */
html[data-theme="light"] .highlight .c1 { color: #797129 } /* Comment.Single */
html[data-theme="light"] .highlight .cs { color: #797129 } /* Comment.Special */
html[data-theme="light"] .highlight .gd { color: #007faa } /* Generic.Deleted */
html[data-theme="light"] .highlight .hll { background-color: #fae4c2 }
html[data-theme="light"] .highlight { background: #fefefe; color: #080808 }
html[data-theme="light"] .highlight .c { color: #515151 } /* Comment */
html[data-theme="light"] .highlight .err { color: #a12236 } /* Error */
html[data-theme="light"] .highlight .k { color: #6730c5 } /* Keyword */
html[data-theme="light"] .highlight .l { color: #7f4707 } /* Literal */
html[data-theme="light"] .highlight .n { color: #080808 } /* Name */
html[data-theme="light"] .highlight .o { color: #00622f } /* Operator */
html[data-theme="light"] .highlight .p { color: #080808 } /* Punctuation */
html[data-theme="light"] .highlight .ch { color: #515151 } /* Comment.Hashbang */
html[data-theme="light"] .highlight .cm { color: #515151 } /* Comment.Multiline */
html[data-theme="light"] .highlight .cp { color: #515151 } /* Comment.Preproc */
html[data-theme="light"] .highlight .cpf { color: #515151 } /* Comment.PreprocFile */
html[data-theme="light"] .highlight .c1 { color: #515151 } /* Comment.Single */
html[data-theme="light"] .highlight .cs { color: #515151 } /* Comment.Special */
html[data-theme="light"] .highlight .gd { color: #005b82 } /* Generic.Deleted */
html[data-theme="light"] .highlight .ge { font-style: italic } /* Generic.Emph */
html[data-theme="light"] .highlight .gh { color: #007faa } /* Generic.Heading */
html[data-theme="light"] .highlight .gh { color: #005b82 } /* Generic.Heading */
html[data-theme="light"] .highlight .gs { font-weight: bold } /* Generic.Strong */
html[data-theme="light"] .highlight .gu { color: #007faa } /* Generic.Subheading */
html[data-theme="light"] .highlight .kc { color: #7928a1 } /* Keyword.Constant */
html[data-theme="light"] .highlight .kd { color: #7928a1 } /* Keyword.Declaration */
html[data-theme="light"] .highlight .kn { color: #7928a1 } /* Keyword.Namespace */
html[data-theme="light"] .highlight .kp { color: #7928a1 } /* Keyword.Pseudo */
html[data-theme="light"] .highlight .kr { color: #7928a1 } /* Keyword.Reserved */
html[data-theme="light"] .highlight .kt { color: #797129 } /* Keyword.Type */
html[data-theme="light"] .highlight .ld { color: #797129 } /* Literal.Date */
html[data-theme="light"] .highlight .m { color: #797129 } /* Literal.Number */
html[data-theme="light"] .highlight .s { color: #008000 } /* Literal.String */
html[data-theme="light"] .highlight .na { color: #797129 } /* Name.Attribute */
html[data-theme="light"] .highlight .nb { color: #797129 } /* Name.Builtin */
html[data-theme="light"] .highlight .nc { color: #007faa } /* Name.Class */
html[data-theme="light"] .highlight .no { color: #007faa } /* Name.Constant */
html[data-theme="light"] .highlight .nd { color: #797129 } /* Name.Decorator */
html[data-theme="light"] .highlight .ni { color: #008000 } /* Name.Entity */
html[data-theme="light"] .highlight .ne { color: #7928a1 } /* Name.Exception */
html[data-theme="light"] .highlight .nf { color: #007faa } /* Name.Function */
html[data-theme="light"] .highlight .nl { color: #797129 } /* Name.Label */
html[data-theme="light"] .highlight .nn { color: #545454 } /* Name.Namespace */
html[data-theme="light"] .highlight .nx { color: #545454 } /* Name.Other */
html[data-theme="light"] .highlight .py { color: #007faa } /* Name.Property */
html[data-theme="light"] .highlight .nt { color: #007faa } /* Name.Tag */
html[data-theme="light"] .highlight .nv { color: #d91e18 } /* Name.Variable */
html[data-theme="light"] .highlight .ow { color: #7928a1 } /* Operator.Word */
html[data-theme="light"] .highlight .pm { color: #545454 } /* Punctuation.Marker */
html[data-theme="light"] .highlight .w { color: #545454 } /* Text.Whitespace */
html[data-theme="light"] .highlight .mb { color: #797129 } /* Literal.Number.Bin */
html[data-theme="light"] .highlight .mf { color: #797129 } /* Literal.Number.Float */
html[data-theme="light"] .highlight .mh { color: #797129 } /* Literal.Number.Hex */
html[data-theme="light"] .highlight .mi { color: #797129 } /* Literal.Number.Integer */
html[data-theme="light"] .highlight .mo { color: #797129 } /* Literal.Number.Oct */
html[data-theme="light"] .highlight .sa { color: #008000 } /* Literal.String.Affix */
html[data-theme="light"] .highlight .sb { color: #008000 } /* Literal.String.Backtick */
html[data-theme="light"] .highlight .sc { color: #008000 } /* Literal.String.Char */
html[data-theme="light"] .highlight .dl { color: #008000 } /* Literal.String.Delimiter */
html[data-theme="light"] .highlight .sd { color: #008000 } /* Literal.String.Doc */
html[data-theme="light"] .highlight .s2 { color: #008000 } /* Literal.String.Double */
html[data-theme="light"] .highlight .se { color: #008000 } /* Literal.String.Escape */
html[data-theme="light"] .highlight .sh { color: #008000 } /* Literal.String.Heredoc */
html[data-theme="light"] .highlight .si { color: #008000 } /* Literal.String.Interpol */
html[data-theme="light"] .highlight .sx { color: #008000 } /* Literal.String.Other */
html[data-theme="light"] .highlight .sr { color: #d91e18 } /* Literal.String.Regex */
html[data-theme="light"] .highlight .s1 { color: #008000 } /* Literal.String.Single */
html[data-theme="light"] .highlight .ss { color: #007faa } /* Literal.String.Symbol */
html[data-theme="light"] .highlight .bp { color: #797129 } /* Name.Builtin.Pseudo */
html[data-theme="light"] .highlight .fm { color: #007faa } /* Name.Function.Magic */
html[data-theme="light"] .highlight .vc { color: #d91e18 } /* Name.Variable.Class */
html[data-theme="light"] .highlight .vg { color: #d91e18 } /* Name.Variable.Global */
html[data-theme="light"] .highlight .vi { color: #d91e18 } /* Name.Variable.Instance */
html[data-theme="light"] .highlight .vm { color: #797129 } /* Name.Variable.Magic */
html[data-theme="light"] .highlight .il { color: #797129 } /* Literal.Number.Integer.Long */
html[data-theme="light"] .highlight .gu { color: #005b82 } /* Generic.Subheading */
html[data-theme="light"] .highlight .kc { color: #6730c5 } /* Keyword.Constant */
html[data-theme="light"] .highlight .kd { color: #6730c5 } /* Keyword.Declaration */
html[data-theme="light"] .highlight .kn { color: #6730c5 } /* Keyword.Namespace */
html[data-theme="light"] .highlight .kp { color: #6730c5 } /* Keyword.Pseudo */
html[data-theme="light"] .highlight .kr { color: #6730c5 } /* Keyword.Reserved */
html[data-theme="light"] .highlight .kt { color: #7f4707 } /* Keyword.Type */
html[data-theme="light"] .highlight .ld { color: #7f4707 } /* Literal.Date */
html[data-theme="light"] .highlight .m { color: #7f4707 } /* Literal.Number */
html[data-theme="light"] .highlight .s { color: #00622f } /* Literal.String */
html[data-theme="light"] .highlight .na { color: #912583 } /* Name.Attribute */
html[data-theme="light"] .highlight .nb { color: #7f4707 } /* Name.Builtin */
html[data-theme="light"] .highlight .nc { color: #005b82 } /* Name.Class */
html[data-theme="light"] .highlight .no { color: #005b82 } /* Name.Constant */
html[data-theme="light"] .highlight .nd { color: #7f4707 } /* Name.Decorator */
html[data-theme="light"] .highlight .ni { color: #00622f } /* Name.Entity */
html[data-theme="light"] .highlight .ne { color: #6730c5 } /* Name.Exception */
html[data-theme="light"] .highlight .nf { color: #005b82 } /* Name.Function */
html[data-theme="light"] .highlight .nl { color: #7f4707 } /* Name.Label */
html[data-theme="light"] .highlight .nn { color: #080808 } /* Name.Namespace */
html[data-theme="light"] .highlight .nx { color: #080808 } /* Name.Other */
html[data-theme="light"] .highlight .py { color: #005b82 } /* Name.Property */
html[data-theme="light"] .highlight .nt { color: #005b82 } /* Name.Tag */
html[data-theme="light"] .highlight .nv { color: #a12236 } /* Name.Variable */
html[data-theme="light"] .highlight .ow { color: #6730c5 } /* Operator.Word */
html[data-theme="light"] .highlight .pm { color: #080808 } /* Punctuation.Marker */
html[data-theme="light"] .highlight .w { color: #080808 } /* Text.Whitespace */
html[data-theme="light"] .highlight .mb { color: #7f4707 } /* Literal.Number.Bin */
html[data-theme="light"] .highlight .mf { color: #7f4707 } /* Literal.Number.Float */
html[data-theme="light"] .highlight .mh { color: #7f4707 } /* Literal.Number.Hex */
html[data-theme="light"] .highlight .mi { color: #7f4707 } /* Literal.Number.Integer */
html[data-theme="light"] .highlight .mo { color: #7f4707 } /* Literal.Number.Oct */
html[data-theme="light"] .highlight .sa { color: #00622f } /* Literal.String.Affix */
html[data-theme="light"] .highlight .sb { color: #00622f } /* Literal.String.Backtick */
html[data-theme="light"] .highlight .sc { color: #00622f } /* Literal.String.Char */
html[data-theme="light"] .highlight .dl { color: #00622f } /* Literal.String.Delimiter */
html[data-theme="light"] .highlight .sd { color: #00622f } /* Literal.String.Doc */
html[data-theme="light"] .highlight .s2 { color: #00622f } /* Literal.String.Double */
html[data-theme="light"] .highlight .se { color: #00622f } /* Literal.String.Escape */
html[data-theme="light"] .highlight .sh { color: #00622f } /* Literal.String.Heredoc */
html[data-theme="light"] .highlight .si { color: #00622f } /* Literal.String.Interpol */
html[data-theme="light"] .highlight .sx { color: #00622f } /* Literal.String.Other */
html[data-theme="light"] .highlight .sr { color: #a12236 } /* Literal.String.Regex */
html[data-theme="light"] .highlight .s1 { color: #00622f } /* Literal.String.Single */
html[data-theme="light"] .highlight .ss { color: #005b82 } /* Literal.String.Symbol */
html[data-theme="light"] .highlight .bp { color: #7f4707 } /* Name.Builtin.Pseudo */
html[data-theme="light"] .highlight .fm { color: #005b82 } /* Name.Function.Magic */
html[data-theme="light"] .highlight .vc { color: #a12236 } /* Name.Variable.Class */
html[data-theme="light"] .highlight .vg { color: #a12236 } /* Name.Variable.Global */
html[data-theme="light"] .highlight .vi { color: #a12236 } /* Name.Variable.Instance */
html[data-theme="light"] .highlight .vm { color: #7f4707 } /* Name.Variable.Magic */
html[data-theme="light"] .highlight .il { color: #7f4707 } /* Literal.Number.Integer.Long */
html[data-theme="dark"] .highlight pre { line-height: 125%; }
html[data-theme="dark"] .highlight td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
html[data-theme="dark"] .highlight span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }

File diff suppressed because one or more lines are too long

View File

@ -1,5 +1,5 @@
/*!
* Bootstrap v5.3.2 (https://getbootstrap.com/)
* Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Bootstrap v5.3.3 (https://getbootstrap.com/)
* Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,2 +1,2 @@
!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,n){e.exports=n(1)},function(e,t,n){"use strict";n.r(t);n.p;var r=e=>{"loading"!=document.readyState?e():document.addEventListener?document.addEventListener("DOMContentLoaded",e):document.attachEvent("onreadystatechange",(function(){"complete"==document.readyState&&e()}))};window.initThebeSBT=()=>{var e=document.querySelector("section h1");e.nextElementSibling.classList.contains("thebe-launch-button")||e.insertAdjacentHTML("afterend","<button class='thebe-launch-button'></button>"),initThebe()},window.toggleFullScreen=()=>{var e=document.fullscreenElement&&null!==document.fullscreenElement||document.webkitFullscreenElement&&null!==document.webkitFullscreenElement;let t=document.documentElement;e?(console.log("[SBT]: Exiting full screen"),document.exitFullscreen?document.exitFullscreen():document.webkitExitFullscreen&&document.webkitExitFullscreen()):(console.log("[SBT]: Entering full screen"),t.requestFullscreen?t.requestFullscreen():t.webkitRequestFullscreen&&t.webkitRequestFullscreen())},r(()=>{var e=[];let t=new IntersectionObserver((t,n)=>{t.forEach(t=>{if(t.isIntersecting)e.push(t.target);else for(let n=0;n<e.length;n++)if(e[n]===t.target){e.splice(n,1);break}}),e.length>0?document.querySelector("div.bd-sidebar-secondary").classList.add("hide"):document.querySelector("div.bd-sidebar-secondary").classList.remove("hide")},{rootMargin:"0px 0px -33% 0px"});let n=[];["marginnote","sidenote","margin","margin-caption","full-width","sidebar","popout"].forEach(e=>{n.push("."+e,".tag_"+e,"."+e.replace("-","_"),".tag_"+e.replace("-","_"))}),document.querySelectorAll(n.join(", ")).forEach(e=>{t.observe(e)}),new IntersectionObserver((e,t)=>{e[0].boundingClientRect.y<0?document.body.classList.add("scrolled"):document.body.classList.remove("scrolled")}).observe(document.querySelector(".sbt-scroll-pixel-helper"))}),r((function(){var e=[".bd-header-announcement",".bd-header",".bd-header-article",".bd-sidebar-primary",".bd-sidebar-secondary",".bd-footer-article",".bd-footer-content",".bd-footer"].join(",");document.querySelectorAll(e).forEach(e=>{e.classList.add("noprint")})}))}]);
(()=>{"use strict";var e=e=>{"loading"!=document.readyState?e():document.addEventListener?document.addEventListener("DOMContentLoaded",e):document.attachEvent("onreadystatechange",(function(){"complete"==document.readyState&&e()}))};window.initThebeSBT=()=>{var e=document.querySelector("section h1");e.nextElementSibling.classList.contains("thebe-launch-button")||e.insertAdjacentHTML("afterend","<button class='thebe-launch-button'></button>"),initThebe()},window.toggleFullScreen=()=>{var e=document.fullscreenElement&&null!==document.fullscreenElement||document.webkitFullscreenElement&&null!==document.webkitFullscreenElement;let t=document.documentElement;e?(console.log("[SBT]: Exiting full screen"),document.exitFullscreen?document.exitFullscreen():document.webkitExitFullscreen&&document.webkitExitFullscreen()):(console.log("[SBT]: Entering full screen"),t.requestFullscreen?t.requestFullscreen():t.webkitRequestFullscreen&&t.webkitRequestFullscreen())},e((()=>{var e=[];let t=new IntersectionObserver(((t,n)=>{t.forEach((t=>{if(t.isIntersecting)e.push(t.target);else for(let n=0;n<e.length;n++)if(e[n]===t.target){e.splice(n,1);break}})),e.length>0?document.querySelector("div.bd-sidebar-secondary").classList.add("hide"):document.querySelector("div.bd-sidebar-secondary").classList.remove("hide")}),{rootMargin:"0px 0px -33% 0px"}),n=[];["marginnote","sidenote","margin","margin-caption","full-width","sidebar","popout"].forEach((e=>{n.push(`.${e}`,`.tag_${e}`,`.${e.replace("-","_")}`,`.tag_${e.replace("-","_")}`)})),document.querySelectorAll(n.join(", ")).forEach((e=>{t.observe(e)})),new IntersectionObserver(((e,t)=>{e[0].boundingClientRect.y<0?document.body.classList.add("scrolled"):document.body.classList.remove("scrolled")})).observe(document.querySelector(".sbt-scroll-pixel-helper"))})),e((function(){var e=[".bd-header-announcement",".bd-header",".bd-header-article",".bd-sidebar-primary",".bd-sidebar-secondary",".bd-footer-article",".bd-footer-content",".bd-footer"].join(",");document.querySelectorAll(e).forEach((e=>{e.classList.add("noprint")}))}))})();
//# sourceMappingURL=sphinx-book-theme.js.map

File diff suppressed because one or more lines are too long

View File

@ -4,7 +4,7 @@
*
* Sphinx JavaScript utilities for the full-text search.
*
* :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
* :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
@ -99,7 +99,7 @@ const _displayItem = (item, searchTerms, highlightTerms) => {
.then((data) => {
if (data)
listItem.appendChild(
Search.makeSearchSummary(data, searchTerms)
Search.makeSearchSummary(data, searchTerms, anchor)
);
// highlight search terms in the summary
if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js
@ -116,8 +116,8 @@ const _finishSearch = (resultCount) => {
);
else
Search.status.innerText = _(
`Search finished, found ${resultCount} page(s) matching the search query.`
);
"Search finished, found ${resultCount} page(s) matching the search query."
).replace('${resultCount}', resultCount);
};
const _displayNextItem = (
results,
@ -137,6 +137,22 @@ const _displayNextItem = (
// search finished, update title and status message
else _finishSearch(resultCount);
};
// Helper function used by query() to order search results.
// Each input is an array of [docname, title, anchor, descr, score, filename].
// Order the results by score (in opposite order of appearance, since the
// `_displayNextItem` function uses pop() to retrieve items) and then alphabetically.
const _orderResultsByScoreThenName = (a, b) => {
const leftScore = a[4];
const rightScore = b[4];
if (leftScore === rightScore) {
// same score: sort alphabetically
const leftTitle = a[1].toLowerCase();
const rightTitle = b[1].toLowerCase();
if (leftTitle === rightTitle) return 0;
return leftTitle > rightTitle ? -1 : 1; // inverted is intentional
}
return leftScore > rightScore ? 1 : -1;
};
/**
* Default splitQuery function. Can be overridden in ``sphinx.search`` with a
@ -160,13 +176,26 @@ const Search = {
_queued_query: null,
_pulse_status: -1,
htmlToText: (htmlString) => {
htmlToText: (htmlString, anchor) => {
const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html');
htmlElement.querySelectorAll(".headerlink").forEach((el) => { el.remove() });
for (const removalQuery of [".headerlink", "script", "style"]) {
htmlElement.querySelectorAll(removalQuery).forEach((el) => { el.remove() });
}
if (anchor) {
const anchorContent = htmlElement.querySelector(`[role="main"] ${anchor}`);
if (anchorContent) return anchorContent.textContent;
console.warn(
`Anchored content block not found. Sphinx search tries to obtain it via DOM query '[role=main] ${anchor}'. Check your theme or template.`
);
}
// if anchor not specified or not found, fall back to main content
const docContent = htmlElement.querySelector('[role="main"]');
if (docContent !== undefined) return docContent.textContent;
if (docContent) return docContent.textContent;
console.warn(
"Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template."
"Content block not found. Sphinx search tries to obtain it via DOM query '[role=main]'. Check your theme or template."
);
return "";
},
@ -239,16 +268,7 @@ const Search = {
else Search.deferQuery(query);
},
/**
* execute search (requires search index to be loaded)
*/
query: (query) => {
const filenames = Search._index.filenames;
const docNames = Search._index.docnames;
const titles = Search._index.titles;
const allTitles = Search._index.alltitles;
const indexEntries = Search._index.indexentries;
_parseQuery: (query) => {
// stem the search terms and add them to the correct list
const stemmer = new Stemmer();
const searchTerms = new Set();
@ -284,21 +304,38 @@ const Search = {
// console.info("required: ", [...searchTerms]);
// console.info("excluded: ", [...excludedTerms]);
// array of [docname, title, anchor, descr, score, filename]
let results = [];
return [query, searchTerms, excludedTerms, highlightTerms, objectTerms];
},
/**
* execute search (requires search index to be loaded)
*/
_performSearch: (query, searchTerms, excludedTerms, highlightTerms, objectTerms) => {
const filenames = Search._index.filenames;
const docNames = Search._index.docnames;
const titles = Search._index.titles;
const allTitles = Search._index.alltitles;
const indexEntries = Search._index.indexentries;
// Collect multiple result groups to be sorted separately and then ordered.
// Each is an array of [docname, title, anchor, descr, score, filename].
const normalResults = [];
const nonMainIndexResults = [];
_removeChildren(document.getElementById("search-progress"));
const queryLower = query.toLowerCase();
const queryLower = query.toLowerCase().trim();
for (const [title, foundTitles] of Object.entries(allTitles)) {
if (title.toLowerCase().includes(queryLower) && (queryLower.length >= title.length/2)) {
if (title.toLowerCase().trim().includes(queryLower) && (queryLower.length >= title.length/2)) {
for (const [file, id] of foundTitles) {
let score = Math.round(100 * queryLower.length / title.length)
results.push([
const score = Math.round(Scorer.title * queryLower.length / title.length);
const boost = titles[file] === title ? 1 : 0; // add a boost for document titles
normalResults.push([
docNames[file],
titles[file] !== title ? `${titles[file]} > ${title}` : title,
id !== null ? "#" + id : "",
null,
score,
score + boost,
filenames[file],
]);
}
@ -308,46 +345,47 @@ const Search = {
// search for explicit entries in index directives
for (const [entry, foundEntries] of Object.entries(indexEntries)) {
if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) {
for (const [file, id] of foundEntries) {
let score = Math.round(100 * queryLower.length / entry.length)
results.push([
for (const [file, id, isMain] of foundEntries) {
const score = Math.round(100 * queryLower.length / entry.length);
const result = [
docNames[file],
titles[file],
id ? "#" + id : "",
null,
score,
filenames[file],
]);
];
if (isMain) {
normalResults.push(result);
} else {
nonMainIndexResults.push(result);
}
}
}
}
// lookup as object
objectTerms.forEach((term) =>
results.push(...Search.performObjectSearch(term, objectTerms))
normalResults.push(...Search.performObjectSearch(term, objectTerms))
);
// lookup as search terms in fulltext
results.push(...Search.performTermsSearch(searchTerms, excludedTerms));
normalResults.push(...Search.performTermsSearch(searchTerms, excludedTerms));
// let the scorer override scores with a custom scoring function
if (Scorer.score) results.forEach((item) => (item[4] = Scorer.score(item)));
if (Scorer.score) {
normalResults.forEach((item) => (item[4] = Scorer.score(item)));
nonMainIndexResults.forEach((item) => (item[4] = Scorer.score(item)));
}
// now sort the results by score (in opposite order of appearance, since the
// display function below uses pop() to retrieve items) and then
// alphabetically
results.sort((a, b) => {
const leftScore = a[4];
const rightScore = b[4];
if (leftScore === rightScore) {
// same score: sort alphabetically
const leftTitle = a[1].toLowerCase();
const rightTitle = b[1].toLowerCase();
if (leftTitle === rightTitle) return 0;
return leftTitle > rightTitle ? -1 : 1; // inverted is intentional
}
return leftScore > rightScore ? 1 : -1;
});
// Sort each group of results by score and then alphabetically by name.
normalResults.sort(_orderResultsByScoreThenName);
nonMainIndexResults.sort(_orderResultsByScoreThenName);
// Combine the result groups in (reverse) order.
// Non-main index entries are typically arbitrary cross-references,
// so display them after other results.
let results = [...nonMainIndexResults, ...normalResults];
// remove duplicate search results
// note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept
@ -361,7 +399,12 @@ const Search = {
return acc;
}, []);
results = results.reverse();
return results.reverse();
},
query: (query) => {
const [searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms] = Search._parseQuery(query);
const results = Search._performSearch(searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms);
// for debugging
//Search.lastresults = results.slice(); // a copy
@ -466,14 +509,18 @@ const Search = {
// add support for partial matches
if (word.length > 2) {
const escapedWord = _escapeRegExp(word);
Object.keys(terms).forEach((term) => {
if (term.match(escapedWord) && !terms[word])
arr.push({ files: terms[term], score: Scorer.partialTerm });
});
Object.keys(titleTerms).forEach((term) => {
if (term.match(escapedWord) && !titleTerms[word])
arr.push({ files: titleTerms[word], score: Scorer.partialTitle });
});
if (!terms.hasOwnProperty(word)) {
Object.keys(terms).forEach((term) => {
if (term.match(escapedWord))
arr.push({ files: terms[term], score: Scorer.partialTerm });
});
}
if (!titleTerms.hasOwnProperty(word)) {
Object.keys(titleTerms).forEach((term) => {
if (term.match(escapedWord))
arr.push({ files: titleTerms[term], score: Scorer.partialTitle });
});
}
}
// no match but word was a required one
@ -496,9 +543,8 @@ const Search = {
// create the mapping
files.forEach((file) => {
if (fileMap.has(file) && fileMap.get(file).indexOf(word) === -1)
fileMap.get(file).push(word);
else fileMap.set(file, [word]);
if (!fileMap.has(file)) fileMap.set(file, [word]);
else if (fileMap.get(file).indexOf(word) === -1) fileMap.get(file).push(word);
});
});
@ -549,8 +595,8 @@ const Search = {
* search summary for a given text. keywords is a list
* of stemmed words.
*/
makeSearchSummary: (htmlText, keywords) => {
const text = Search.htmlToText(htmlText);
makeSearchSummary: (htmlText, keywords, anchor) => {
const text = Search.htmlToText(htmlText, anchor);
if (text === "") return null;
const textLower = text.toLowerCase();

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -23,7 +23,7 @@ as SVG and JS file types.
In the Font Awesome Free download, the SIL OFL license applies to all icons
packaged as web and desktop font files.
Copyright (c) 2022 Fonticons, Inc. (https://fontawesome.com)
Copyright (c) 2024 Fonticons, Inc. (https://fontawesome.com)
with Reserved Font Name: "Font Awesome".
This Font Software is licensed under the SIL Open Font License, Version 1.1.
@ -123,7 +123,7 @@ OTHER DEALINGS IN THE FONT SOFTWARE.
In the Font Awesome Free download, the MIT license applies to all non-font and
non-icon files.
Copyright 2022 Fonticons, Inc.
Copyright 2024 Fonticons, Inc.
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in the

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,5 +1,5 @@
/*!
* Font Awesome Free 6.1.2 by @fontawesome - https://fontawesome.com
* Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
* Copyright 2022 Fonticons, Inc.
* Copyright 2024 Fonticons, Inc.
*/

View File

@ -4,28 +4,28 @@
-->
{# Load FontAwesome icons #}
{% macro head_pre_icons() %}
<link href="{{ pathto('_static/vendor/fontawesome/6.1.2/css/all.min.css', 1) }}?digest=5b4479735964841361fd" rel="stylesheet" />
<link rel="preload" as="font" type="font/woff2" crossorigin href="{{ pathto('_static/vendor/fontawesome/6.1.2/webfonts/fa-solid-900.woff2', 1) }}" />
<link rel="preload" as="font" type="font/woff2" crossorigin href="{{ pathto('_static/vendor/fontawesome/6.1.2/webfonts/fa-brands-400.woff2', 1) }}" />
<link rel="preload" as="font" type="font/woff2" crossorigin href="{{ pathto('_static/vendor/fontawesome/6.1.2/webfonts/fa-regular-400.woff2', 1) }}" />
<link href="{{ pathto('_static/vendor/fontawesome/6.5.2/css/all.min.css', 1) }}?digest=dfe6caa3a7d634c4db9b" rel="stylesheet" />
<link rel="preload" as="font" type="font/woff2" crossorigin href="{{ pathto('_static/vendor/fontawesome/6.5.2/webfonts/fa-solid-900.woff2', 1) }}" />
<link rel="preload" as="font" type="font/woff2" crossorigin href="{{ pathto('_static/vendor/fontawesome/6.5.2/webfonts/fa-brands-400.woff2', 1) }}" />
<link rel="preload" as="font" type="font/woff2" crossorigin href="{{ pathto('_static/vendor/fontawesome/6.5.2/webfonts/fa-regular-400.woff2', 1) }}" />
{% endmacro %}
{% macro head_pre_assets() %}
<!-- Loaded before other Sphinx assets -->
<link href="{{ pathto('_static/styles/theme.css', 1) }}?digest=5b4479735964841361fd" rel="stylesheet" />
<link href="{{ pathto('_static/styles/bootstrap.css', 1) }}?digest=5b4479735964841361fd" rel="stylesheet" />
<link href="{{ pathto('_static/styles/pydata-sphinx-theme.css', 1) }}?digest=5b4479735964841361fd" rel="stylesheet" />
<link href="{{ pathto('_static/styles/theme.css', 1) }}?digest=dfe6caa3a7d634c4db9b" rel="stylesheet" />
<link href="{{ pathto('_static/styles/bootstrap.css', 1) }}?digest=dfe6caa3a7d634c4db9b" rel="stylesheet" />
<link href="{{ pathto('_static/styles/pydata-sphinx-theme.css', 1) }}?digest=dfe6caa3a7d634c4db9b" rel="stylesheet" />
{% endmacro %}
{% macro head_js_preload() %}
<!-- Pre-loaded scripts that we'll load fully later -->
<link rel="preload" as="script" href="{{ pathto('_static/scripts/bootstrap.js', 1) }}?digest=5b4479735964841361fd" />
<link rel="preload" as="script" href="{{ pathto('_static/scripts/pydata-sphinx-theme.js', 1) }}?digest=5b4479735964841361fd" />
<script src="{{ pathto('_static/vendor/fontawesome/6.1.2/js/all.min.js', 1) }}?digest=5b4479735964841361fd"></script>
<link rel="preload" as="script" href="{{ pathto('_static/scripts/bootstrap.js', 1) }}?digest=dfe6caa3a7d634c4db9b" />
<link rel="preload" as="script" href="{{ pathto('_static/scripts/pydata-sphinx-theme.js', 1) }}?digest=dfe6caa3a7d634c4db9b" />
<script src="{{ pathto('_static/vendor/fontawesome/6.5.2/js/all.min.js', 1) }}?digest=dfe6caa3a7d634c4db9b"></script>
{% endmacro %}
{% macro body_post() %}
<!-- Scripts loaded after <body> so the DOM is not blocked -->
<script src="{{ pathto('_static/scripts/bootstrap.js', 1) }}?digest=5b4479735964841361fd"></script>
<script src="{{ pathto('_static/scripts/pydata-sphinx-theme.js', 1) }}?digest=5b4479735964841361fd"></script>
<script src="{{ pathto('_static/scripts/bootstrap.js', 1) }}?digest=dfe6caa3a7d634c4db9b"></script>
<script src="{{ pathto('_static/scripts/pydata-sphinx-theme.js', 1) }}?digest=dfe6caa3a7d634c4db9b"></script>
{% endmacro %}

138
docs/build/html/allocator_8h.html vendored Normal file
View File

@ -0,0 +1,138 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.12.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/allocator.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">MLX
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.12.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle"><div class="title">allocator.h File Reference</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;cstdlib&gt;</code><br />
</div>
<p><a href="allocator_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmlx_1_1core_1_1allocator_1_1_buffer.html">mlx::core::allocator::Buffer</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmlx_1_1core_1_1allocator_1_1_allocator.html">mlx::core::allocator::Allocator</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmlx_1_1core_1_1allocator_1_1_common_allocator.html">mlx::core::allocator::CommonAllocator</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx.html">mlx</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html">mlx::core</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1allocator.html">mlx::core::allocator</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a560d10a166e3c294f3757166f9bd6801" id="r_a560d10a166e3c294f3757166f9bd6801"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1allocator_1_1_buffer.html">Buffer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1allocator.html#a560d10a166e3c294f3757166f9bd6801">mlx::core::allocator::malloc</a> (size_t size)</td></tr>
<tr class="separator:a560d10a166e3c294f3757166f9bd6801"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77f0a1215be242db6485612bcb273af5" id="r_a77f0a1215be242db6485612bcb273af5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1allocator.html#a77f0a1215be242db6485612bcb273af5">mlx::core::allocator::free</a> (<a class="el" href="classmlx_1_1core_1_1allocator_1_1_buffer.html">Buffer</a> buffer)</td></tr>
<tr class="separator:a77f0a1215be242db6485612bcb273af5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86ac0a11ff78f21e717f641716c34abc" id="r_a86ac0a11ff78f21e717f641716c34abc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1allocator_1_1_buffer.html">Buffer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1allocator.html#a86ac0a11ff78f21e717f641716c34abc">mlx::core::allocator::malloc_or_wait</a> (size_t size)</td></tr>
<tr class="separator:a86ac0a11ff78f21e717f641716c34abc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa23e2f20a336d0b159c097087194634e" id="r_aa23e2f20a336d0b159c097087194634e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1allocator_1_1_allocator.html">Allocator</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1allocator.html#aa23e2f20a336d0b159c097087194634e">mlx::core::allocator::allocator</a> ()</td></tr>
<tr class="separator:aa23e2f20a336d0b159c097087194634e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

204
docs/build/html/allocator_8h_source.html vendored Normal file
View File

@ -0,0 +1,204 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.12.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/allocator.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">MLX
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.12.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<div class="header">
<div class="headertitle"><div class="title">allocator.h</div></div>
</div><!--header-->
<div class="contents">
<a href="allocator_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">// Copyright © 2023 Apple Inc.</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span> </div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="preprocessor">#pragma once</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span> </div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#include &lt;cstdlib&gt;</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span> </div>
<div class="foldopen" id="foldopen00007" data-start="{" data-end="}">
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"><a class="line" href="namespacemlx.html"> 7</a></span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacemlx_1_1core_1_1allocator.html">mlx::core::allocator</a> {</div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> </div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="comment">// Simple wrapper around buffer pointers</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment">// WARNING: Only Buffer objects constructed from and those that wrap</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment">// raw pointers from mlx::allocator are supported.</span></div>
<div class="foldopen" id="foldopen00012" data-start="{" data-end="};">
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1allocator_1_1_buffer.html"> 12</a></span><span class="keyword">class </span><a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_buffer.html">Buffer</a> {</div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> <span class="keyword">private</span>:</div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> <span class="keywordtype">void</span>* ptr_;</div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> </div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1allocator_1_1_buffer.html#ac4fc2cc6aa1368cfb74aff329d9a1300"> 17</a></span> <a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_buffer.html#ac4fc2cc6aa1368cfb74aff329d9a1300">Buffer</a>(<span class="keywordtype">void</span>* <a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_buffer.html#a990643feac06961c5599aac098c17b94">ptr</a>) : ptr_(<a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_buffer.html#a990643feac06961c5599aac098c17b94">ptr</a>) {};</div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> <span class="comment">// Get the raw data pointer from the buffer</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1allocator_1_1_buffer.html#a2dfe63e0b4bffeb965cdc50ad4228dbc"> 20</a></span> <span class="keywordtype">void</span>* <a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_buffer.html#a2dfe63e0b4bffeb965cdc50ad4228dbc">raw_ptr</a>();</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> </div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <span class="comment">// Get the buffer pointer from the buffer</span></div>
<div class="foldopen" id="foldopen00023" data-start="{" data-end="}">
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1allocator_1_1_buffer.html#a990643feac06961c5599aac098c17b94"> 23</a></span> <span class="keyword">const</span> <span class="keywordtype">void</span>* <a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_buffer.html#a990643feac06961c5599aac098c17b94">ptr</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <span class="keywordflow">return</span> ptr_;</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> };</div>
</div>
<div class="foldopen" id="foldopen00026" data-start="{" data-end="}">
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1allocator_1_1_buffer.html#acb15b2f057568828ea09635ed968b62a"> 26</a></span> <span class="keywordtype">void</span>* <a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_buffer.html#acb15b2f057568828ea09635ed968b62a">ptr</a>() {</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <span class="keywordflow">return</span> ptr_;</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> };</div>
</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span>};</div>
</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> </div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1allocator.html#a560d10a166e3c294f3757166f9bd6801"> 31</a></span><a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_buffer.html">Buffer</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1allocator.html#a560d10a166e3c294f3757166f9bd6801">malloc</a>(<span class="keywordtype">size_t</span> size);</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> </div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1allocator.html#a77f0a1215be242db6485612bcb273af5"> 33</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1allocator.html#a77f0a1215be242db6485612bcb273af5">free</a>(<a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_buffer.html">Buffer</a> buffer);</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> </div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="comment">// Wait for running tasks to finish and free up memory</span></div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="comment">// if allocation fails</span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1allocator.html#a86ac0a11ff78f21e717f641716c34abc"> 37</a></span><a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_buffer.html">Buffer</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1allocator.html#a86ac0a11ff78f21e717f641716c34abc">malloc_or_wait</a>(<span class="keywordtype">size_t</span> size);</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> </div>
<div class="foldopen" id="foldopen00039" data-start="{" data-end="};">
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1allocator_1_1_allocator.html"> 39</a></span><span class="keyword">class </span><a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_allocator.html">Allocator</a> {</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a9a17d2c7a97772bf4a15e6c74af34ca4"> 42</a></span> <span class="keyword">virtual</span> <a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_buffer.html">Buffer</a> <a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a9a17d2c7a97772bf4a15e6c74af34ca4">malloc</a>(<span class="keywordtype">size_t</span> <a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a2adf9a9c968f113dde830cc0dc27dcc6">size</a>, <span class="keywordtype">bool</span> allow_swap = <span class="keyword">false</span>) = 0;</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#ae963d551be646ae0e13df2c16f2beefb"> 43</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#ae963d551be646ae0e13df2c16f2beefb">free</a>(<a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_buffer.html">Buffer</a> buffer) = 0;</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a2adf9a9c968f113dde830cc0dc27dcc6"> 44</a></span> <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a2adf9a9c968f113dde830cc0dc27dcc6">size</a>(<a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_buffer.html">Buffer</a> buffer) <span class="keyword">const</span> = 0;</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> </div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a5803678a418fef687fc65fa9d5c37b65"> 46</a></span> <a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a5803678a418fef687fc65fa9d5c37b65">Allocator</a>() = <span class="keywordflow">default</span>;</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#aa05c081ce80dc036f9d3dd8c195259d2"> 47</a></span> <a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#aa05c081ce80dc036f9d3dd8c195259d2">Allocator</a>(<span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_allocator.html">Allocator</a>&amp; other) = <span class="keyword">delete</span>;</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a8e8ce346a16cf0c62847bed9289f9959"> 48</a></span> <a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a8e8ce346a16cf0c62847bed9289f9959">Allocator</a>(<a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_allocator.html">Allocator</a>&amp;&amp; other) = <span class="keyword">delete</span>;</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a027b84cddc8d476f736ac1f1a9991fe4"> 49</a></span> <a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_allocator.html">Allocator</a>&amp; <a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a027b84cddc8d476f736ac1f1a9991fe4">operator=</a>(<span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_allocator.html">Allocator</a>&amp; other) = <span class="keyword">delete</span>;</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a2e971b47339b1d0849a334a902a9df3c"> 50</a></span> <a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_allocator.html">Allocator</a>&amp; <a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a2e971b47339b1d0849a334a902a9df3c">operator=</a>(<a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_allocator.html">Allocator</a>&amp;&amp; other) = <span class="keyword">delete</span>;</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a90ad02c2e2a6ed89bb8bbf7b871efdf1"> 51</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a90ad02c2e2a6ed89bb8bbf7b871efdf1">~Allocator</a>() = <span class="keywordflow">default</span>;</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span>};</div>
</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> </div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1allocator.html#aa23e2f20a336d0b159c097087194634e"> 54</a></span><a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_allocator.html">Allocator</a>&amp; <a class="code hl_function" href="namespacemlx_1_1core_1_1allocator.html#aa23e2f20a336d0b159c097087194634e">allocator</a>();</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> </div>
<div class="foldopen" id="foldopen00056" data-start="{" data-end="};">
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1allocator_1_1_common_allocator.html"> 56</a></span><span class="keyword">class </span><a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_common_allocator.html">CommonAllocator</a> : <span class="keyword">public</span> <a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_allocator.html">Allocator</a> {</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1allocator_1_1_common_allocator.html#a4f3d5de6b8c0eba22e9403b28a5ef3f0"> 59</a></span> <span class="keyword">virtual</span> <a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_buffer.html">Buffer</a> <a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_common_allocator.html#a4f3d5de6b8c0eba22e9403b28a5ef3f0">malloc</a>(<span class="keywordtype">size_t</span> <a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_common_allocator.html#aafa92e8310db089b1ac72b840777e26b">size</a>, <span class="keywordtype">bool</span> allow_swap = <span class="keyword">false</span>) <span class="keyword">override</span>;</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1allocator_1_1_common_allocator.html#a84b50d1a3cbffa12c1a6cf0ed8c71079"> 60</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_common_allocator.html#a84b50d1a3cbffa12c1a6cf0ed8c71079">free</a>(<a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_buffer.html">Buffer</a> buffer) <span class="keyword">override</span>;</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1allocator_1_1_common_allocator.html#aafa92e8310db089b1ac72b840777e26b"> 61</a></span> <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_common_allocator.html#aafa92e8310db089b1ac72b840777e26b">size</a>(<a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_buffer.html">Buffer</a> buffer) <span class="keyword">const override</span>;</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> </div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">private</span>:</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_common_allocator.html">CommonAllocator</a>() = <span class="keywordflow">default</span>;</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1allocator_1_1_common_allocator.html#abf84c726a37df68345589b897b2e35f0"> 65</a></span> <span class="keyword">friend</span> <a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_allocator.html">Allocator</a>&amp; <a class="code hl_friend" href="classmlx_1_1core_1_1allocator_1_1_common_allocator.html#abf84c726a37df68345589b897b2e35f0">allocator</a>();</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span>};</div>
</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> </div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span>} <span class="comment">// namespace mlx::core::allocator</span></div>
</div>
<div class="ttc" id="aclassmlx_1_1core_1_1allocator_1_1_allocator_html"><div class="ttname"><a href="classmlx_1_1core_1_1allocator_1_1_allocator.html">mlx::core::allocator::Allocator</a></div><div class="ttdef"><b>Definition</b> allocator.h:39</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1allocator_1_1_allocator_html_a027b84cddc8d476f736ac1f1a9991fe4"><div class="ttname"><a href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a027b84cddc8d476f736ac1f1a9991fe4">mlx::core::allocator::Allocator::operator=</a></div><div class="ttdeci">Allocator &amp; operator=(const Allocator &amp;other)=delete</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1allocator_1_1_allocator_html_a2adf9a9c968f113dde830cc0dc27dcc6"><div class="ttname"><a href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a2adf9a9c968f113dde830cc0dc27dcc6">mlx::core::allocator::Allocator::size</a></div><div class="ttdeci">virtual size_t size(Buffer buffer) const =0</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1allocator_1_1_allocator_html_a2e971b47339b1d0849a334a902a9df3c"><div class="ttname"><a href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a2e971b47339b1d0849a334a902a9df3c">mlx::core::allocator::Allocator::operator=</a></div><div class="ttdeci">Allocator &amp; operator=(Allocator &amp;&amp;other)=delete</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1allocator_1_1_allocator_html_a5803678a418fef687fc65fa9d5c37b65"><div class="ttname"><a href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a5803678a418fef687fc65fa9d5c37b65">mlx::core::allocator::Allocator::Allocator</a></div><div class="ttdeci">Allocator()=default</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1allocator_1_1_allocator_html_a8e8ce346a16cf0c62847bed9289f9959"><div class="ttname"><a href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a8e8ce346a16cf0c62847bed9289f9959">mlx::core::allocator::Allocator::Allocator</a></div><div class="ttdeci">Allocator(Allocator &amp;&amp;other)=delete</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1allocator_1_1_allocator_html_a90ad02c2e2a6ed89bb8bbf7b871efdf1"><div class="ttname"><a href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a90ad02c2e2a6ed89bb8bbf7b871efdf1">mlx::core::allocator::Allocator::~Allocator</a></div><div class="ttdeci">virtual ~Allocator()=default</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1allocator_1_1_allocator_html_a9a17d2c7a97772bf4a15e6c74af34ca4"><div class="ttname"><a href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a9a17d2c7a97772bf4a15e6c74af34ca4">mlx::core::allocator::Allocator::malloc</a></div><div class="ttdeci">virtual Buffer malloc(size_t size, bool allow_swap=false)=0</div><div class="ttdoc">Abstract base class for a memory allocator.</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1allocator_1_1_allocator_html_aa05c081ce80dc036f9d3dd8c195259d2"><div class="ttname"><a href="classmlx_1_1core_1_1allocator_1_1_allocator.html#aa05c081ce80dc036f9d3dd8c195259d2">mlx::core::allocator::Allocator::Allocator</a></div><div class="ttdeci">Allocator(const Allocator &amp;other)=delete</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1allocator_1_1_allocator_html_ae963d551be646ae0e13df2c16f2beefb"><div class="ttname"><a href="classmlx_1_1core_1_1allocator_1_1_allocator.html#ae963d551be646ae0e13df2c16f2beefb">mlx::core::allocator::Allocator::free</a></div><div class="ttdeci">virtual void free(Buffer buffer)=0</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1allocator_1_1_buffer_html"><div class="ttname"><a href="classmlx_1_1core_1_1allocator_1_1_buffer.html">mlx::core::allocator::Buffer</a></div><div class="ttdef"><b>Definition</b> allocator.h:12</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1allocator_1_1_buffer_html_a2dfe63e0b4bffeb965cdc50ad4228dbc"><div class="ttname"><a href="classmlx_1_1core_1_1allocator_1_1_buffer.html#a2dfe63e0b4bffeb965cdc50ad4228dbc">mlx::core::allocator::Buffer::raw_ptr</a></div><div class="ttdeci">void * raw_ptr()</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1allocator_1_1_buffer_html_a990643feac06961c5599aac098c17b94"><div class="ttname"><a href="classmlx_1_1core_1_1allocator_1_1_buffer.html#a990643feac06961c5599aac098c17b94">mlx::core::allocator::Buffer::ptr</a></div><div class="ttdeci">const void * ptr() const</div><div class="ttdef"><b>Definition</b> allocator.h:23</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1allocator_1_1_buffer_html_ac4fc2cc6aa1368cfb74aff329d9a1300"><div class="ttname"><a href="classmlx_1_1core_1_1allocator_1_1_buffer.html#ac4fc2cc6aa1368cfb74aff329d9a1300">mlx::core::allocator::Buffer::Buffer</a></div><div class="ttdeci">Buffer(void *ptr)</div><div class="ttdef"><b>Definition</b> allocator.h:17</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1allocator_1_1_buffer_html_acb15b2f057568828ea09635ed968b62a"><div class="ttname"><a href="classmlx_1_1core_1_1allocator_1_1_buffer.html#acb15b2f057568828ea09635ed968b62a">mlx::core::allocator::Buffer::ptr</a></div><div class="ttdeci">void * ptr()</div><div class="ttdef"><b>Definition</b> allocator.h:26</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1allocator_1_1_common_allocator_html"><div class="ttname"><a href="classmlx_1_1core_1_1allocator_1_1_common_allocator.html">mlx::core::allocator::CommonAllocator</a></div><div class="ttdef"><b>Definition</b> allocator.h:56</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1allocator_1_1_common_allocator_html_a4f3d5de6b8c0eba22e9403b28a5ef3f0"><div class="ttname"><a href="classmlx_1_1core_1_1allocator_1_1_common_allocator.html#a4f3d5de6b8c0eba22e9403b28a5ef3f0">mlx::core::allocator::CommonAllocator::malloc</a></div><div class="ttdeci">virtual Buffer malloc(size_t size, bool allow_swap=false) override</div><div class="ttdoc">A general CPU allocator.</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1allocator_1_1_common_allocator_html_a84b50d1a3cbffa12c1a6cf0ed8c71079"><div class="ttname"><a href="classmlx_1_1core_1_1allocator_1_1_common_allocator.html#a84b50d1a3cbffa12c1a6cf0ed8c71079">mlx::core::allocator::CommonAllocator::free</a></div><div class="ttdeci">virtual void free(Buffer buffer) override</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1allocator_1_1_common_allocator_html_aafa92e8310db089b1ac72b840777e26b"><div class="ttname"><a href="classmlx_1_1core_1_1allocator_1_1_common_allocator.html#aafa92e8310db089b1ac72b840777e26b">mlx::core::allocator::CommonAllocator::size</a></div><div class="ttdeci">virtual size_t size(Buffer buffer) const override</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1allocator_1_1_common_allocator_html_abf84c726a37df68345589b897b2e35f0"><div class="ttname"><a href="classmlx_1_1core_1_1allocator_1_1_common_allocator.html#abf84c726a37df68345589b897b2e35f0">mlx::core::allocator::CommonAllocator::allocator</a></div><div class="ttdeci">friend Allocator &amp; allocator()</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1allocator_html"><div class="ttname"><a href="namespacemlx_1_1core_1_1allocator.html">mlx::core::allocator</a></div><div class="ttdef"><b>Definition</b> allocator.h:7</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1allocator_html_a560d10a166e3c294f3757166f9bd6801"><div class="ttname"><a href="namespacemlx_1_1core_1_1allocator.html#a560d10a166e3c294f3757166f9bd6801">mlx::core::allocator::malloc</a></div><div class="ttdeci">Buffer malloc(size_t size)</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1allocator_html_a77f0a1215be242db6485612bcb273af5"><div class="ttname"><a href="namespacemlx_1_1core_1_1allocator.html#a77f0a1215be242db6485612bcb273af5">mlx::core::allocator::free</a></div><div class="ttdeci">void free(Buffer buffer)</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1allocator_html_a86ac0a11ff78f21e717f641716c34abc"><div class="ttname"><a href="namespacemlx_1_1core_1_1allocator.html#a86ac0a11ff78f21e717f641716c34abc">mlx::core::allocator::malloc_or_wait</a></div><div class="ttdeci">Buffer malloc_or_wait(size_t size)</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1allocator_html_aa23e2f20a336d0b159c097087194634e"><div class="ttname"><a href="namespacemlx_1_1core_1_1allocator.html#aa23e2f20a336d0b159c097087194634e">mlx::core::allocator::allocator</a></div><div class="ttdeci">Allocator &amp; allocator()</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

493
docs/build/html/annotated.html vendored Normal file
View File

@ -0,0 +1,493 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.12.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: Class List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">MLX
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.12.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="doc-content">
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">Class List</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock">Here are the classes, structs, unions and interfaces with brief descriptions:</div><div class="directory">
<div class="levels">[detail level <span onclick="javascript:dynsection.toggleLevel(1);">1</span><span onclick="javascript:dynsection.toggleLevel(2);">2</span><span onclick="javascript:dynsection.toggleLevel(3);">3</span><span onclick="javascript:dynsection.toggleLevel(4);">4</span><span onclick="javascript:dynsection.toggleLevel(5);">5</span>]</div><table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="dynsection.toggleFolder('0_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemetal.html" target="_self">metal</a></td><td class="desc"></td></tr>
<tr id="row_0_0_" class="odd" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html" target="_self">_numeric_limits_impl&lt; bfloat16_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_" class="odd"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_1_" class="arrow" onclick="dynsection.toggleFolder('1_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemlx.html" target="_self">mlx</a></td><td class="desc"></td></tr>
<tr id="row_1_0_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_1_0_" class="arrow" onclick="dynsection.toggleFolder('1_0_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemlx_1_1core.html" target="_self">core</a></td><td class="desc"></td></tr>
<tr id="row_1_0_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_1_0_0_" class="arrow" onclick="dynsection.toggleFolder('1_0_0_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemlx_1_1core_1_1allocator.html" target="_self">allocator</a></td><td class="desc"></td></tr>
<tr id="row_1_0_0_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1allocator_1_1_allocator.html" target="_self">Allocator</a></td><td class="desc"></td></tr>
<tr id="row_1_0_0_1_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1allocator_1_1_buffer.html" target="_self">Buffer</a></td><td class="desc"></td></tr>
<tr id="row_1_0_0_2_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1allocator_1_1_common_allocator.html" target="_self">CommonAllocator</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_1_0_1_" class="arrow" onclick="dynsection.toggleFolder('1_0_1_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemlx_1_1core_1_1detail.html" target="_self">detail</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_abs.html" target="_self">Abs</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_1_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_add.html" target="_self">Add</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_2_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_arc_cos.html" target="_self">ArcCos</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_3_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_arc_cosh.html" target="_self">ArcCosh</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_4_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_arc_sin.html" target="_self">ArcSin</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_5_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_arc_sinh.html" target="_self">ArcSinh</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_6_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_arc_tan.html" target="_self">ArcTan</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_7_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_arc_tan2.html" target="_self">ArcTan2</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_8_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_arc_tanh.html" target="_self">ArcTanh</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_9_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_bitwise_and.html" target="_self">BitwiseAnd</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_10_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_bitwise_or.html" target="_self">BitwiseOr</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_11_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_bitwise_xor.html" target="_self">BitwiseXor</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_12_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_ceil.html" target="_self">Ceil</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_13_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_conjugate.html" target="_self">Conjugate</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_14_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_cos.html" target="_self">Cos</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_15_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_cosh.html" target="_self">Cosh</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_16_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_divide.html" target="_self">Divide</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_17_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_equal.html" target="_self">Equal</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_18_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_erf.html" target="_self">Erf</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_19_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_erf_inv.html" target="_self">ErfInv</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_20_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_exp.html" target="_self">Exp</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_21_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_expm1.html" target="_self">Expm1</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_22_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_floor.html" target="_self">Floor</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_23_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_greater.html" target="_self">Greater</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_24_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_greater_equal.html" target="_self">GreaterEqual</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_25_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="unionmlx_1_1core_1_1detail_1_1_int_or_float.html" target="_self">IntOrFloat</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_26_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_in_tracing.html" target="_self">InTracing</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_27_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_left_shift.html" target="_self">LeftShift</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_28_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_less.html" target="_self">Less</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_29_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_less_equal.html" target="_self">LessEqual</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_30_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_log.html" target="_self">Log</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_31_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_log10.html" target="_self">Log10</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_32_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_log1p.html" target="_self">Log1p</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_33_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_log2.html" target="_self">Log2</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_34_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_log_add_exp.html" target="_self">LogAddExp</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_35_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_logical_and.html" target="_self">LogicalAnd</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_36_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_logical_not.html" target="_self">LogicalNot</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_37_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_logical_or.html" target="_self">LogicalOr</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_38_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_maximum.html" target="_self">Maximum</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_39_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_minimum.html" target="_self">Minimum</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_40_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_multiply.html" target="_self">Multiply</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_41_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_na_n_equal.html" target="_self">NaNEqual</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_42_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_negative.html" target="_self">Negative</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_43_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_not_equal.html" target="_self">NotEqual</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_44_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_power.html" target="_self">Power</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_45_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_remainder.html" target="_self">Remainder</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_46_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_retain_graph.html" target="_self">RetainGraph</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_47_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_right_shift.html" target="_self">RightShift</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_48_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_round.html" target="_self">Round</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_49_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_rsqrt.html" target="_self">Rsqrt</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_50_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_select.html" target="_self">Select</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_51_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_sigmoid.html" target="_self">Sigmoid</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_52_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_sign.html" target="_self">Sign</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_53_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_sin.html" target="_self">Sin</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_54_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_sinh.html" target="_self">Sinh</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_55_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_sqrt.html" target="_self">Sqrt</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_56_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_square.html" target="_self">Square</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_57_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_subtract.html" target="_self">Subtract</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_58_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_tan.html" target="_self">Tan</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_59_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_tanh.html" target="_self">Tanh</a></td><td class="desc"></td></tr>
<tr id="row_1_0_2_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_1_0_2_" class="arrow" onclick="dynsection.toggleFolder('1_0_2_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemlx_1_1core_1_1distributed.html" target="_self">distributed</a></td><td class="desc"></td></tr>
<tr id="row_1_0_2_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1distributed_1_1_all_gather.html" target="_self">AllGather</a></td><td class="desc"></td></tr>
<tr id="row_1_0_2_1_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1distributed_1_1_all_reduce.html" target="_self">AllReduce</a></td><td class="desc"></td></tr>
<tr id="row_1_0_2_2_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1distributed_1_1_dist_primitive.html" target="_self">DistPrimitive</a></td><td class="desc"></td></tr>
<tr id="row_1_0_2_3_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1distributed_1_1_group.html" target="_self">Group</a></td><td class="desc">A <a class="el" href="structmlx_1_1core_1_1distributed_1_1_group.html" title="A distributed::Group represents a group of independent mlx processes that can communicate.">distributed::Group</a> represents a group of independent mlx processes that can communicate </td></tr>
<tr id="row_1_0_2_4_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1distributed_1_1_recv.html" target="_self">Recv</a></td><td class="desc"></td></tr>
<tr id="row_1_0_2_5_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1distributed_1_1_send.html" target="_self">Send</a></td><td class="desc"></td></tr>
<tr id="row_1_0_3_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_1_0_3_" class="arrow" onclick="dynsection.toggleFolder('1_0_3_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemlx_1_1core_1_1fast.html" target="_self">fast</a></td><td class="desc"></td></tr>
<tr id="row_1_0_3_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1fast_1_1_affine_quantize.html" target="_self">AffineQuantize</a></td><td class="desc"></td></tr>
<tr id="row_1_0_3_1_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1fast_1_1_custom.html" target="_self">Custom</a></td><td class="desc"></td></tr>
<tr id="row_1_0_3_2_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1fast_1_1_custom_kernel.html" target="_self">CustomKernel</a></td><td class="desc"></td></tr>
<tr id="row_1_0_3_3_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1fast_1_1_custom_kernel_shape_info.html" target="_self">CustomKernelShapeInfo</a></td><td class="desc"></td></tr>
<tr id="row_1_0_3_4_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1fast_1_1_layer_norm.html" target="_self">LayerNorm</a></td><td class="desc"></td></tr>
<tr id="row_1_0_3_5_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1fast_1_1_layer_norm_v_j_p.html" target="_self">LayerNormVJP</a></td><td class="desc"></td></tr>
<tr id="row_1_0_3_6_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1fast_1_1_r_m_s_norm.html" target="_self">RMSNorm</a></td><td class="desc"></td></tr>
<tr id="row_1_0_3_7_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1fast_1_1_r_m_s_norm_v_j_p.html" target="_self">RMSNormVJP</a></td><td class="desc"></td></tr>
<tr id="row_1_0_3_8_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1fast_1_1_ro_p_e.html" target="_self">RoPE</a></td><td class="desc"></td></tr>
<tr id="row_1_0_3_9_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1fast_1_1_scaled_dot_product_attention.html" target="_self">ScaledDotProductAttention</a></td><td class="desc"></td></tr>
<tr id="row_1_0_4_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_1_0_4_" class="arrow" onclick="dynsection.toggleFolder('1_0_4_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemlx_1_1core_1_1io.html" target="_self">io</a></td><td class="desc"></td></tr>
<tr id="row_1_0_4_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1io_1_1_file_writer.html" target="_self">FileWriter</a></td><td class="desc"></td></tr>
<tr id="row_1_0_4_1_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1io_1_1_parallel_file_reader.html" target="_self">ParallelFileReader</a></td><td class="desc"></td></tr>
<tr id="row_1_0_4_2_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1io_1_1_reader.html" target="_self">Reader</a></td><td class="desc"></td></tr>
<tr id="row_1_0_4_3_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1io_1_1_writer.html" target="_self">Writer</a></td><td class="desc"></td></tr>
<tr id="row_1_0_5_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_1_0_5_" class="arrow" onclick="dynsection.toggleFolder('1_0_5_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemlx_1_1core_1_1metal.html" target="_self">metal</a></td><td class="desc"></td></tr>
<tr id="row_1_0_5_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span id="arr_1_0_5_0_" class="arrow" onclick="dynsection.toggleFolder('1_0_5_0_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html" target="_self">CommandEncoder</a></td><td class="desc"></td></tr>
<tr id="row_1_0_5_0_0_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context.html" target="_self">ConcurrentContext</a></td><td class="desc"></td></tr>
<tr id="row_1_0_5_1_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html" target="_self">Device</a></td><td class="desc"></td></tr>
<tr id="row_1_0_5_2_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1metal_1_1_metal_allocator.html" target="_self">MetalAllocator</a></td><td class="desc"></td></tr>
<tr id="row_1_0_6_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_1_0_6_" class="arrow" onclick="dynsection.toggleFolder('1_0_6_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemlx_1_1core_1_1random.html" target="_self">random</a></td><td class="desc"></td></tr>
<tr id="row_1_0_6_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1random_1_1_key_sequence.html" target="_self">KeySequence</a></td><td class="desc"></td></tr>
<tr id="row_1_0_7_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_1_0_7_" class="arrow" onclick="dynsection.toggleFolder('1_0_7_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemlx_1_1core_1_1scheduler.html" target="_self">scheduler</a></td><td class="desc"></td></tr>
<tr id="row_1_0_7_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1scheduler_1_1_scheduler.html" target="_self">Scheduler</a></td><td class="desc"></td></tr>
<tr id="row_1_0_7_1_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1scheduler_1_1_stream_thread.html" target="_self">StreamThread</a></td><td class="desc"></td></tr>
<tr id="row_1_0_8_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1___m_l_x___b_float16.html" target="_self">_MLX_BFloat16</a></td><td class="desc"></td></tr>
<tr id="row_1_0_9_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1___m_l_x___float16.html" target="_self">_MLX_Float16</a></td><td class="desc"></td></tr>
<tr id="row_1_0_10_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_abs.html" target="_self">Abs</a></td><td class="desc"></td></tr>
<tr id="row_1_0_11_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_add.html" target="_self">Add</a></td><td class="desc"></td></tr>
<tr id="row_1_0_12_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_add_m_m.html" target="_self">AddMM</a></td><td class="desc"></td></tr>
<tr id="row_1_0_13_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_arange.html" target="_self">Arange</a></td><td class="desc"></td></tr>
<tr id="row_1_0_14_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_arc_cos.html" target="_self">ArcCos</a></td><td class="desc"></td></tr>
<tr id="row_1_0_15_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_arc_cosh.html" target="_self">ArcCosh</a></td><td class="desc"></td></tr>
<tr id="row_1_0_16_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_arc_sin.html" target="_self">ArcSin</a></td><td class="desc"></td></tr>
<tr id="row_1_0_17_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_arc_sinh.html" target="_self">ArcSinh</a></td><td class="desc"></td></tr>
<tr id="row_1_0_18_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_arc_tan.html" target="_self">ArcTan</a></td><td class="desc"></td></tr>
<tr id="row_1_0_19_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_arc_tan2.html" target="_self">ArcTan2</a></td><td class="desc"></td></tr>
<tr id="row_1_0_20_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_arc_tanh.html" target="_self">ArcTanh</a></td><td class="desc"></td></tr>
<tr id="row_1_0_21_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_arg_partition.html" target="_self">ArgPartition</a></td><td class="desc"></td></tr>
<tr id="row_1_0_22_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_arg_reduce.html" target="_self">ArgReduce</a></td><td class="desc"></td></tr>
<tr id="row_1_0_23_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_arg_sort.html" target="_self">ArgSort</a></td><td class="desc"></td></tr>
<tr id="row_1_0_24_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_1_0_24_" class="arrow" onclick="dynsection.toggleFolder('1_0_24_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1array.html" target="_self">array</a></td><td class="desc"></td></tr>
<tr id="row_1_0_24_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1array_1_1_array_iterator.html" target="_self">ArrayIterator</a></td><td class="desc"></td></tr>
<tr id="row_1_0_24_1_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1array_1_1_data.html" target="_self">Data</a></td><td class="desc"></td></tr>
<tr id="row_1_0_24_2_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1array_1_1_flags.html" target="_self">Flags</a></td><td class="desc"></td></tr>
<tr id="row_1_0_25_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_as_strided.html" target="_self">AsStrided</a></td><td class="desc"></td></tr>
<tr id="row_1_0_26_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_as_type.html" target="_self">AsType</a></td><td class="desc"></td></tr>
<tr id="row_1_0_27_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_bitwise_binary.html" target="_self">BitwiseBinary</a></td><td class="desc"></td></tr>
<tr id="row_1_0_28_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_block_masked_m_m.html" target="_self">BlockMaskedMM</a></td><td class="desc"></td></tr>
<tr id="row_1_0_29_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_broadcast.html" target="_self">Broadcast</a></td><td class="desc"></td></tr>
<tr id="row_1_0_30_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_ceil.html" target="_self">Ceil</a></td><td class="desc"></td></tr>
<tr id="row_1_0_31_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_cholesky.html" target="_self">Cholesky</a></td><td class="desc"></td></tr>
<tr id="row_1_0_32_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_compiled.html" target="_self">Compiled</a></td><td class="desc"></td></tr>
<tr id="row_1_0_33_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1complex128__t.html" target="_self">complex128_t</a></td><td class="desc"></td></tr>
<tr id="row_1_0_34_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1complex64__t.html" target="_self">complex64_t</a></td><td class="desc"></td></tr>
<tr id="row_1_0_35_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_concatenate.html" target="_self">Concatenate</a></td><td class="desc"></td></tr>
<tr id="row_1_0_36_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_conjugate.html" target="_self">Conjugate</a></td><td class="desc"></td></tr>
<tr id="row_1_0_37_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_contiguous_iterator.html" target="_self">ContiguousIterator</a></td><td class="desc"></td></tr>
<tr id="row_1_0_38_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_convolution.html" target="_self">Convolution</a></td><td class="desc"></td></tr>
<tr id="row_1_0_39_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_copy.html" target="_self">Copy</a></td><td class="desc"></td></tr>
<tr id="row_1_0_40_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_cos.html" target="_self">Cos</a></td><td class="desc"></td></tr>
<tr id="row_1_0_41_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_cosh.html" target="_self">Cosh</a></td><td class="desc"></td></tr>
<tr id="row_1_0_42_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_custom_transforms.html" target="_self">CustomTransforms</a></td><td class="desc"></td></tr>
<tr id="row_1_0_43_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_default_contiguous_reduce.html" target="_self">DefaultContiguousReduce</a></td><td class="desc"></td></tr>
<tr id="row_1_0_44_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_default_strided_reduce.html" target="_self">DefaultStridedReduce</a></td><td class="desc"></td></tr>
<tr id="row_1_0_45_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_depends.html" target="_self">Depends</a></td><td class="desc"></td></tr>
<tr id="row_1_0_46_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_device.html" target="_self">Device</a></td><td class="desc"></td></tr>
<tr id="row_1_0_47_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_divide.html" target="_self">Divide</a></td><td class="desc"></td></tr>
<tr id="row_1_0_48_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_div_mod.html" target="_self">DivMod</a></td><td class="desc"></td></tr>
<tr id="row_1_0_49_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_dtype.html" target="_self">Dtype</a></td><td class="desc"></td></tr>
<tr id="row_1_0_50_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_equal.html" target="_self">Equal</a></td><td class="desc"></td></tr>
<tr id="row_1_0_51_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_erf.html" target="_self">Erf</a></td><td class="desc"></td></tr>
<tr id="row_1_0_52_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_erf_inv.html" target="_self">ErfInv</a></td><td class="desc"></td></tr>
<tr id="row_1_0_53_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_event.html" target="_self">Event</a></td><td class="desc"></td></tr>
<tr id="row_1_0_54_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_exp.html" target="_self">Exp</a></td><td class="desc"></td></tr>
<tr id="row_1_0_55_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_expm1.html" target="_self">Expm1</a></td><td class="desc"></td></tr>
<tr id="row_1_0_56_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_f_f_t.html" target="_self">FFT</a></td><td class="desc"></td></tr>
<tr id="row_1_0_57_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_floor.html" target="_self">Floor</a></td><td class="desc"></td></tr>
<tr id="row_1_0_58_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_full.html" target="_self">Full</a></td><td class="desc"></td></tr>
<tr id="row_1_0_59_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_gather.html" target="_self">Gather</a></td><td class="desc"></td></tr>
<tr id="row_1_0_60_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_gather_m_m.html" target="_self">GatherMM</a></td><td class="desc"></td></tr>
<tr id="row_1_0_61_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_gather_q_m_m.html" target="_self">GatherQMM</a></td><td class="desc"></td></tr>
<tr id="row_1_0_62_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_greater.html" target="_self">Greater</a></td><td class="desc"></td></tr>
<tr id="row_1_0_63_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_greater_equal.html" target="_self">GreaterEqual</a></td><td class="desc"></td></tr>
<tr id="row_1_0_64_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_hadamard.html" target="_self">Hadamard</a></td><td class="desc"></td></tr>
<tr id="row_1_0_65_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_inverse.html" target="_self">Inverse</a></td><td class="desc"></td></tr>
<tr id="row_1_0_66_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_less.html" target="_self">Less</a></td><td class="desc"></td></tr>
<tr id="row_1_0_67_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_less_equal.html" target="_self">LessEqual</a></td><td class="desc"></td></tr>
<tr id="row_1_0_68_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_load.html" target="_self">Load</a></td><td class="desc"></td></tr>
<tr id="row_1_0_69_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_log.html" target="_self">Log</a></td><td class="desc"></td></tr>
<tr id="row_1_0_70_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_log1p.html" target="_self">Log1p</a></td><td class="desc"></td></tr>
<tr id="row_1_0_71_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_log_add_exp.html" target="_self">LogAddExp</a></td><td class="desc"></td></tr>
<tr id="row_1_0_72_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_logical_and.html" target="_self">LogicalAnd</a></td><td class="desc"></td></tr>
<tr id="row_1_0_73_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_logical_not.html" target="_self">LogicalNot</a></td><td class="desc"></td></tr>
<tr id="row_1_0_74_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_logical_or.html" target="_self">LogicalOr</a></td><td class="desc"></td></tr>
<tr id="row_1_0_75_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_matmul.html" target="_self">Matmul</a></td><td class="desc"></td></tr>
<tr id="row_1_0_76_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_maximum.html" target="_self">Maximum</a></td><td class="desc"></td></tr>
<tr id="row_1_0_77_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_minimum.html" target="_self">Minimum</a></td><td class="desc"></td></tr>
<tr id="row_1_0_78_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_multiply.html" target="_self">Multiply</a></td><td class="desc"></td></tr>
<tr id="row_1_0_79_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_negative.html" target="_self">Negative</a></td><td class="desc"></td></tr>
<tr id="row_1_0_80_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_node_namer.html" target="_self">NodeNamer</a></td><td class="desc"></td></tr>
<tr id="row_1_0_81_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_not_equal.html" target="_self">NotEqual</a></td><td class="desc"></td></tr>
<tr id="row_1_0_82_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_number_of_elements.html" target="_self">NumberOfElements</a></td><td class="desc"></td></tr>
<tr id="row_1_0_83_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_pad.html" target="_self">Pad</a></td><td class="desc"></td></tr>
<tr id="row_1_0_84_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_partition.html" target="_self">Partition</a></td><td class="desc"></td></tr>
<tr id="row_1_0_85_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_power.html" target="_self">Power</a></td><td class="desc"></td></tr>
<tr id="row_1_0_86_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_primitive.html" target="_self">Primitive</a></td><td class="desc"></td></tr>
<tr id="row_1_0_87_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_print_formatter.html" target="_self">PrintFormatter</a></td><td class="desc"></td></tr>
<tr id="row_1_0_88_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_q_r_f.html" target="_self">QRF</a></td><td class="desc"></td></tr>
<tr id="row_1_0_89_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_quantized_matmul.html" target="_self">QuantizedMatmul</a></td><td class="desc"></td></tr>
<tr id="row_1_0_90_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_random_bits.html" target="_self">RandomBits</a></td><td class="desc"></td></tr>
<tr id="row_1_0_91_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_reduce.html" target="_self">Reduce</a></td><td class="desc"></td></tr>
<tr id="row_1_0_92_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_reduction_plan.html" target="_self">ReductionPlan</a></td><td class="desc"></td></tr>
<tr id="row_1_0_93_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_remainder.html" target="_self">Remainder</a></td><td class="desc"></td></tr>
<tr id="row_1_0_94_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_reshape.html" target="_self">Reshape</a></td><td class="desc"></td></tr>
<tr id="row_1_0_95_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_round.html" target="_self">Round</a></td><td class="desc"></td></tr>
<tr id="row_1_0_96_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_scan.html" target="_self">Scan</a></td><td class="desc"></td></tr>
<tr id="row_1_0_97_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_scatter.html" target="_self">Scatter</a></td><td class="desc"></td></tr>
<tr id="row_1_0_98_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_select.html" target="_self">Select</a></td><td class="desc"></td></tr>
<tr id="row_1_0_99_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_sigmoid.html" target="_self">Sigmoid</a></td><td class="desc"></td></tr>
<tr id="row_1_0_100_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_sign.html" target="_self">Sign</a></td><td class="desc"></td></tr>
<tr id="row_1_0_101_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_sin.html" target="_self">Sin</a></td><td class="desc"></td></tr>
<tr id="row_1_0_102_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_sinh.html" target="_self">Sinh</a></td><td class="desc"></td></tr>
<tr id="row_1_0_103_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_slice.html" target="_self">Slice</a></td><td class="desc"></td></tr>
<tr id="row_1_0_104_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_slice_update.html" target="_self">SliceUpdate</a></td><td class="desc"></td></tr>
<tr id="row_1_0_105_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_softmax.html" target="_self">Softmax</a></td><td class="desc"></td></tr>
<tr id="row_1_0_106_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_sort.html" target="_self">Sort</a></td><td class="desc"></td></tr>
<tr id="row_1_0_107_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_split.html" target="_self">Split</a></td><td class="desc"></td></tr>
<tr id="row_1_0_108_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_sqrt.html" target="_self">Sqrt</a></td><td class="desc"></td></tr>
<tr id="row_1_0_109_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_square.html" target="_self">Square</a></td><td class="desc"></td></tr>
<tr id="row_1_0_110_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_stop_gradient.html" target="_self">StopGradient</a></td><td class="desc"></td></tr>
<tr id="row_1_0_111_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_stream.html" target="_self">Stream</a></td><td class="desc"></td></tr>
<tr id="row_1_0_112_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_stream_context.html" target="_self">StreamContext</a></td><td class="desc"></td></tr>
<tr id="row_1_0_113_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_subtract.html" target="_self">Subtract</a></td><td class="desc"></td></tr>
<tr id="row_1_0_114_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_s_v_d.html" target="_self">SVD</a></td><td class="desc"></td></tr>
<tr id="row_1_0_115_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_tan.html" target="_self">Tan</a></td><td class="desc"></td></tr>
<tr id="row_1_0_116_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_tanh.html" target="_self">Tanh</a></td><td class="desc"></td></tr>
<tr id="row_1_0_117_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_transpose.html" target="_self">Transpose</a></td><td class="desc"></td></tr>
<tr id="row_1_0_118_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_type_to_dtype.html" target="_self">TypeToDtype</a></td><td class="desc"></td></tr>
<tr id="row_1_0_119_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_unary_primitive.html" target="_self">UnaryPrimitive</a></td><td class="desc"></td></tr>
<tr id="row_1_0_120_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_uniform.html" target="_self">Uniform</a></td><td class="desc"></td></tr>
<tr id="row_1_0_121_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_view.html" target="_self">View</a></td><td class="desc"></td></tr>
<tr id="row_1_1_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_1_1_" class="arrow" onclick="dynsection.toggleFolder('1_1_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemlx_1_1steel.html" target="_self">steel</a></td><td class="desc"></td></tr>
<tr id="row_1_1_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_accum_helper.html" target="_self">AccumHelper</a></td><td class="desc"></td></tr>
<tr id="row_1_1_1_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_1_1_1_" class="arrow" onclick="dynsection.toggleFolder('1_1_1_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_block_loader.html" target="_self">BlockLoader</a></td><td class="desc"></td></tr>
<tr id="row_1_1_1_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_block_loader_1_1_read_vector.html" target="_self">ReadVector</a></td><td class="desc"></td></tr>
<tr id="row_1_1_2_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_block_m_m_a.html" target="_self">BlockMMA</a></td><td class="desc"></td></tr>
<tr id="row_1_1_3_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_block_swizzle.html" target="_self">BlockSwizzle</a></td><td class="desc"></td></tr>
<tr id="row_1_1_4_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_channel_helper.html" target="_self">ChannelHelper</a></td><td class="desc"></td></tr>
<tr id="row_1_1_5_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_channel_helper_3_011_01_4.html" target="_self">ChannelHelper&lt; 1 &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_1_6_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_channel_helper_3_012_01_4.html" target="_self">ChannelHelper&lt; 2 &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_1_7_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_channel_helper_3_013_01_4.html" target="_self">ChannelHelper&lt; 3 &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_1_8_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_channel_helper_3_014_01_4.html" target="_self">ChannelHelper&lt; 4 &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_1_9_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_conv2_d_general_base_info.html" target="_self">Conv2DGeneralBaseInfo</a></td><td class="desc"></td></tr>
<tr id="row_1_1_10_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_conv2_d_general_jump_params.html" target="_self">Conv2DGeneralJumpParams</a></td><td class="desc"></td></tr>
<tr id="row_1_1_11_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html" target="_self">Conv2DInputBlockLoaderGeneral</a></td><td class="desc"></td></tr>
<tr id="row_1_1_12_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html" target="_self">Conv2DInputBlockLoaderLargeFilter</a></td><td class="desc"></td></tr>
<tr id="row_1_1_13_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html" target="_self">Conv2DInputBlockLoaderSmallChannels</a></td><td class="desc"></td></tr>
<tr id="row_1_1_14_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html" target="_self">Conv2DInputBlockLoaderSmallFilter</a></td><td class="desc"></td></tr>
<tr id="row_1_1_15_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html" target="_self">Conv2DWeightBlockLoader</a></td><td class="desc"></td></tr>
<tr id="row_1_1_16_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html" target="_self">Conv2DWeightBlockLoaderGeneral</a></td><td class="desc"></td></tr>
<tr id="row_1_1_17_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html" target="_self">Conv2DWeightBlockLoaderSmallChannels</a></td><td class="desc"></td></tr>
<tr id="row_1_1_18_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_g_e_m_m_add_m_m_params.html" target="_self">GEMMAddMMParams</a></td><td class="desc"></td></tr>
<tr id="row_1_1_19_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html" target="_self">GEMMKernel</a></td><td class="desc"></td></tr>
<tr id="row_1_1_20_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_g_e_m_m_params.html" target="_self">GEMMParams</a></td><td class="desc"></td></tr>
<tr id="row_1_1_21_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html" target="_self">GEMMSpiltKParams</a></td><td class="desc"></td></tr>
<tr id="row_1_1_22_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_implicit_gemm_conv2_d_params.html" target="_self">ImplicitGemmConv2DParams</a></td><td class="desc"></td></tr>
<tr id="row_1_1_23_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_loop_alignment.html" target="_self">LoopAlignment</a></td><td class="desc"></td></tr>
<tr id="row_1_1_24_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_transform_add.html" target="_self">TransformAdd</a></td><td class="desc"></td></tr>
<tr id="row_1_1_25_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_transform_axpby.html" target="_self">TransformAxpby</a></td><td class="desc"></td></tr>
<tr id="row_1_1_26_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_transform_none.html" target="_self">TransformNone</a></td><td class="desc"></td></tr>
<tr id="row_2_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_2_" class="arrow" onclick="dynsection.toggleFolder('2_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacepocketfft.html" target="_self">pocketfft</a></td><td class="desc"></td></tr>
<tr id="row_2_0_" class="odd" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_2_0_" class="arrow" onclick="dynsection.toggleFolder('2_0_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacepocketfft_1_1detail.html" target="_self">detail</a></td><td class="desc"></td></tr>
<tr id="row_2_0_0_" class="odd" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_2_0_0_" class="arrow" onclick="dynsection.toggleFolder('2_0_0_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacepocketfft_1_1detail_1_1threading.html" target="_self">threading</a></td><td class="desc"></td></tr>
<tr id="row_2_0_0_0_" class="odd" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structpocketfft_1_1detail_1_1threading_1_1aligned__allocator.html" target="_self">aligned_allocator</a></td><td class="desc"></td></tr>
<tr id="row_2_0_0_1_" class="odd" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpocketfft_1_1detail_1_1threading_1_1concurrent__queue.html" target="_self">concurrent_queue</a></td><td class="desc"></td></tr>
<tr id="row_2_0_0_2_" class="odd" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpocketfft_1_1detail_1_1threading_1_1latch.html" target="_self">latch</a></td><td class="desc"></td></tr>
<tr id="row_2_0_0_3_" class="odd" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpocketfft_1_1detail_1_1threading_1_1thread__pool.html" target="_self">thread_pool</a></td><td class="desc"></td></tr>
<tr id="row_2_0_1_" class="odd" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structpocketfft_1_1detail_1_1add__vec.html" target="_self">add_vec</a></td><td class="desc"></td></tr>
<tr id="row_2_0_2_" class="odd" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structpocketfft_1_1detail_1_1add__vec_3_01cmplx_3_01_t_01_4_01_4.html" target="_self">add_vec&lt; cmplx&lt; T &gt; &gt;</a></td><td class="desc"></td></tr>
<tr id="row_2_0_3_" class="odd" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpocketfft_1_1detail_1_1arr.html" target="_self">arr</a></td><td class="desc"></td></tr>
<tr id="row_2_0_4_" class="odd" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpocketfft_1_1detail_1_1arr__info.html" target="_self">arr_info</a></td><td class="desc"></td></tr>
<tr id="row_2_0_5_" class="odd" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpocketfft_1_1detail_1_1cfftp.html" target="_self">cfftp</a></td><td class="desc"></td></tr>
<tr id="row_2_0_6_" class="odd" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structpocketfft_1_1detail_1_1cmplx.html" target="_self">cmplx</a></td><td class="desc"></td></tr>
<tr id="row_2_0_7_" class="odd" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpocketfft_1_1detail_1_1cndarr.html" target="_self">cndarr</a></td><td class="desc"></td></tr>
<tr id="row_2_0_8_" class="odd" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structpocketfft_1_1detail_1_1_exec_c2_c.html" target="_self">ExecC2C</a></td><td class="desc"></td></tr>
<tr id="row_2_0_9_" class="odd" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structpocketfft_1_1detail_1_1_exec_dcst.html" target="_self">ExecDcst</a></td><td class="desc"></td></tr>
<tr id="row_2_0_10_" class="odd" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structpocketfft_1_1detail_1_1_exec_hartley.html" target="_self">ExecHartley</a></td><td class="desc"></td></tr>
<tr id="row_2_0_11_" class="odd" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structpocketfft_1_1detail_1_1_exec_r2_r.html" target="_self">ExecR2R</a></td><td class="desc"></td></tr>
<tr id="row_2_0_12_" class="odd" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpocketfft_1_1detail_1_1fftblue.html" target="_self">fftblue</a></td><td class="desc"></td></tr>
<tr id="row_2_0_13_" class="odd" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpocketfft_1_1detail_1_1multi__iter.html" target="_self">multi_iter</a></td><td class="desc"></td></tr>
<tr id="row_2_0_14_" class="odd" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpocketfft_1_1detail_1_1ndarr.html" target="_self">ndarr</a></td><td class="desc"></td></tr>
<tr id="row_2_0_15_" class="odd" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpocketfft_1_1detail_1_1pocketfft__c.html" target="_self">pocketfft_c</a></td><td class="desc"></td></tr>
<tr id="row_2_0_16_" class="odd" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpocketfft_1_1detail_1_1pocketfft__r.html" target="_self">pocketfft_r</a></td><td class="desc"></td></tr>
<tr id="row_2_0_17_" class="odd" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpocketfft_1_1detail_1_1rev__iter.html" target="_self">rev_iter</a></td><td class="desc"></td></tr>
<tr id="row_2_0_18_" class="odd" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpocketfft_1_1detail_1_1rfftp.html" target="_self">rfftp</a></td><td class="desc"></td></tr>
<tr id="row_2_0_19_" class="odd" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpocketfft_1_1detail_1_1simple__iter.html" target="_self">simple_iter</a></td><td class="desc"></td></tr>
<tr id="row_2_0_20_" class="odd" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpocketfft_1_1detail_1_1sincos__2pibyn.html" target="_self">sincos_2pibyn</a></td><td class="desc"></td></tr>
<tr id="row_2_0_21_" class="odd" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpocketfft_1_1detail_1_1_t__dcst23.html" target="_self">T_dcst23</a></td><td class="desc"></td></tr>
<tr id="row_2_0_22_" class="odd" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpocketfft_1_1detail_1_1_t__dcst4.html" target="_self">T_dcst4</a></td><td class="desc"></td></tr>
<tr id="row_2_0_23_" class="odd" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpocketfft_1_1detail_1_1_t__dct1.html" target="_self">T_dct1</a></td><td class="desc"></td></tr>
<tr id="row_2_0_24_" class="odd" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpocketfft_1_1detail_1_1_t__dst1.html" target="_self">T_dst1</a></td><td class="desc"></td></tr>
<tr id="row_2_0_25_" class="odd" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structpocketfft_1_1detail_1_1util.html" target="_self">util</a></td><td class="desc"></td></tr>
<tr id="row_2_0_26_" class="odd" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structpocketfft_1_1detail_1_1_v_l_e_n.html" target="_self">VLEN</a></td><td class="desc"></td></tr>
<tr id="row_2_0_27_" class="odd" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structpocketfft_1_1detail_1_1_v_t_y_p_e.html" target="_self">VTYPE</a></td><td class="desc"></td></tr>
<tr id="row_3_" class="odd"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_3_" class="arrow" onclick="dynsection.toggleFolder('3_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct___m_l_x___b_float16.html" target="_self">_MLX_BFloat16</a></td><td class="desc"></td></tr>
<tr id="row_3_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct___m_l_x___b_float16_1_1bits__to__bfloat__struct.html" target="_self">bits_to_bfloat_struct</a></td><td class="desc"></td></tr>
<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct___no_mask.html" target="_self">_NoMask</a></td><td class="desc"></td></tr>
<tr id="row_5_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_abs.html" target="_self">Abs</a></td><td class="desc"></td></tr>
<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_add.html" target="_self">Add</a></td><td class="desc"></td></tr>
<tr id="row_7_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_and.html" target="_self">And</a></td><td class="desc"></td></tr>
<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_arc_cos.html" target="_self">ArcCos</a></td><td class="desc"></td></tr>
<tr id="row_9_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_arc_cosh.html" target="_self">ArcCosh</a></td><td class="desc"></td></tr>
<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_arc_sin.html" target="_self">ArcSin</a></td><td class="desc"></td></tr>
<tr id="row_11_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_arc_sinh.html" target="_self">ArcSinh</a></td><td class="desc"></td></tr>
<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_arc_tan.html" target="_self">ArcTan</a></td><td class="desc"></td></tr>
<tr id="row_13_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_arc_tan2.html" target="_self">ArcTan2</a></td><td class="desc"></td></tr>
<tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_arc_tanh.html" target="_self">ArcTanh</a></td><td class="desc"></td></tr>
<tr id="row_15_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_bitwise_and.html" target="_self">BitwiseAnd</a></td><td class="desc"></td></tr>
<tr id="row_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_bitwise_or.html" target="_self">BitwiseOr</a></td><td class="desc"></td></tr>
<tr id="row_17_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_bitwise_xor.html" target="_self">BitwiseXor</a></td><td class="desc"></td></tr>
<tr id="row_18_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_block_merge_sort.html" target="_self">BlockMergeSort</a></td><td class="desc"></td></tr>
<tr id="row_19_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="unionbool4__or__uint.html" target="_self">bool4_or_uint</a></td><td class="desc"></td></tr>
<tr id="row_20_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_ceil.html" target="_self">Ceil</a></td><td class="desc"></td></tr>
<tr id="row_21_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcomplex64__t.html" target="_self">complex64_t</a></td><td class="desc"></td></tr>
<tr id="row_22_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_conjugate.html" target="_self">Conjugate</a></td><td class="desc"></td></tr>
<tr id="row_23_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_cos.html" target="_self">Cos</a></td><td class="desc"></td></tr>
<tr id="row_24_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_cosh.html" target="_self">Cosh</a></td><td class="desc"></td></tr>
<tr id="row_25_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_cum_max.html" target="_self">CumMax</a></td><td class="desc"></td></tr>
<tr id="row_26_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_cum_min.html" target="_self">CumMin</a></td><td class="desc"></td></tr>
<tr id="row_27_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_cum_prod.html" target="_self">CumProd</a></td><td class="desc"></td></tr>
<tr id="row_28_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_cum_prod_3_01bool_01_4.html" target="_self">CumProd&lt; bool &gt;</a></td><td class="desc"></td></tr>
<tr id="row_29_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_cum_sum.html" target="_self">CumSum</a></td><td class="desc"></td></tr>
<tr id="row_30_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_divide.html" target="_self">Divide</a></td><td class="desc"></td></tr>
<tr id="row_31_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_div_mod.html" target="_self">DivMod</a></td><td class="desc"></td></tr>
<tr id="row_32_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_equal.html" target="_self">Equal</a></td><td class="desc"></td></tr>
<tr id="row_33_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_erf.html" target="_self">Erf</a></td><td class="desc"></td></tr>
<tr id="row_34_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_erf_inv.html" target="_self">ErfInv</a></td><td class="desc"></td></tr>
<tr id="row_35_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_exp.html" target="_self">Exp</a></td><td class="desc"></td></tr>
<tr id="row_36_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_expm1.html" target="_self">Expm1</a></td><td class="desc"></td></tr>
<tr id="row_37_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_floor.html" target="_self">Floor</a></td><td class="desc"></td></tr>
<tr id="row_38_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_floor_divide.html" target="_self">FloorDivide</a></td><td class="desc"></td></tr>
<tr id="row_39_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_g_e_m_v_kernel.html" target="_self">GEMVKernel</a></td><td class="desc"></td></tr>
<tr id="row_40_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_g_e_m_v_t_kernel.html" target="_self">GEMVTKernel</a></td><td class="desc">Vector matrix multiplication </td></tr>
<tr id="row_41_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_greater.html" target="_self">Greater</a></td><td class="desc"></td></tr>
<tr id="row_42_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_greater_equal.html" target="_self">GreaterEqual</a></td><td class="desc"></td></tr>
<tr id="row_43_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_indices.html" target="_self">Indices</a></td><td class="desc"></td></tr>
<tr id="row_44_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_kernel_merge_sort.html" target="_self">KernelMergeSort</a></td><td class="desc"></td></tr>
<tr id="row_45_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_kernel_multi_block_merge_sort.html" target="_self">KernelMultiBlockMergeSort</a></td><td class="desc"></td></tr>
<tr id="row_46_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_left_shift.html" target="_self">LeftShift</a></td><td class="desc"></td></tr>
<tr id="row_47_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_less.html" target="_self">Less</a></td><td class="desc"></td></tr>
<tr id="row_48_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_less_equal.html" target="_self">LessEqual</a></td><td class="desc"></td></tr>
<tr id="row_49_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_less_than.html" target="_self">LessThan</a></td><td class="desc"></td></tr>
<tr id="row_50_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits.html" target="_self">Limits</a></td><td class="desc"></td></tr>
<tr id="row_51_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01bfloat16__t_01_4.html" target="_self">Limits&lt; bfloat16_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_52_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01bool_01_4.html" target="_self">Limits&lt; bool &gt;</a></td><td class="desc"></td></tr>
<tr id="row_53_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01complex64__t_01_4.html" target="_self">Limits&lt; complex64_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_54_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01float_01_4.html" target="_self">Limits&lt; float &gt;</a></td><td class="desc"></td></tr>
<tr id="row_55_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01half_01_4.html" target="_self">Limits&lt; half &gt;</a></td><td class="desc"></td></tr>
<tr id="row_56_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01int16__t_01_4.html" target="_self">Limits&lt; int16_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_57_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01int32__t_01_4.html" target="_self">Limits&lt; int32_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_58_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01int64__t_01_4.html" target="_self">Limits&lt; int64_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_59_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01int8__t_01_4.html" target="_self">Limits&lt; int8_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_60_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01uint16__t_01_4.html" target="_self">Limits&lt; uint16_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_61_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01uint32__t_01_4.html" target="_self">Limits&lt; uint32_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_62_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01uint64__t_01_4.html" target="_self">Limits&lt; uint64_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_63_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01uint8__t_01_4.html" target="_self">Limits&lt; uint8_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_64_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_log.html" target="_self">Log</a></td><td class="desc"></td></tr>
<tr id="row_65_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_log10.html" target="_self">Log10</a></td><td class="desc"></td></tr>
<tr id="row_66_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_log1p.html" target="_self">Log1p</a></td><td class="desc"></td></tr>
<tr id="row_67_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_log2.html" target="_self">Log2</a></td><td class="desc"></td></tr>
<tr id="row_68_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_log_add_exp.html" target="_self">LogAddExp</a></td><td class="desc"></td></tr>
<tr id="row_69_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_logical_and.html" target="_self">LogicalAnd</a></td><td class="desc"></td></tr>
<tr id="row_70_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_logical_not.html" target="_self">LogicalNot</a></td><td class="desc"></td></tr>
<tr id="row_71_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_logical_or.html" target="_self">LogicalOr</a></td><td class="desc"></td></tr>
<tr id="row_72_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlooped__elem__to__loc.html" target="_self">looped_elem_to_loc</a></td><td class="desc"></td></tr>
<tr id="row_73_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlooped__elem__to__loc_3_010_00_01offset__t_01_4.html" target="_self">looped_elem_to_loc&lt; 0, offset_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_74_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlooped__elem__to__loc_3_011_00_01offset__t_01_4.html" target="_self">looped_elem_to_loc&lt; 1, offset_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_75_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_max.html" target="_self">Max</a></td><td class="desc"></td></tr>
<tr id="row_76_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_maximum.html" target="_self">Maximum</a></td><td class="desc"></td></tr>
<tr id="row_77_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_min.html" target="_self">Min</a></td><td class="desc"></td></tr>
<tr id="row_78_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_minimum.html" target="_self">Minimum</a></td><td class="desc"></td></tr>
<tr id="row_79_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx__atomic.html" target="_self">mlx_atomic</a></td><td class="desc"></td></tr>
<tr id="row_80_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx__atomic_3_01_t_00_01enable__if__t_3_01is__metal__atomic_3_01_t_01_4_01_4_01_4.html" target="_self">mlx_atomic&lt; T, enable_if_t&lt; is_metal_atomic&lt; T &gt; &gt; &gt;</a></td><td class="desc"></td></tr>
<tr id="row_81_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_m_l_x_conv_params.html" target="_self">MLXConvParams</a></td><td class="desc"></td></tr>
<tr id="row_82_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_m_l_x_fast_attention_params.html" target="_self">MLXFastAttentionParams</a></td><td class="desc"></td></tr>
<tr id="row_83_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_m_l_x_scaled_dot_product_attention_params.html" target="_self">MLXScaledDotProductAttentionParams</a></td><td class="desc"></td></tr>
<tr id="row_84_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_multiply.html" target="_self">Multiply</a></td><td class="desc"></td></tr>
<tr id="row_85_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_na_n_equal.html" target="_self">NaNEqual</a></td><td class="desc"></td></tr>
<tr id="row_86_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_negative.html" target="_self">Negative</a></td><td class="desc"></td></tr>
<tr id="row_87_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_none.html" target="_self">None</a></td><td class="desc"></td></tr>
<tr id="row_88_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_not_equal.html" target="_self">NotEqual</a></td><td class="desc"></td></tr>
<tr id="row_89_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_or.html" target="_self">Or</a></td><td class="desc"></td></tr>
<tr id="row_90_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_power.html" target="_self">Power</a></td><td class="desc"></td></tr>
<tr id="row_91_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_prod.html" target="_self">Prod</a></td><td class="desc"></td></tr>
<tr id="row_92_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_quantized_block_loader.html" target="_self">QuantizedBlockLoader</a></td><td class="desc"></td></tr>
<tr id="row_93_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_read_writer.html" target="_self">ReadWriter</a></td><td class="desc"></td></tr>
<tr id="row_94_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_remainder.html" target="_self">Remainder</a></td><td class="desc"></td></tr>
<tr id="row_95_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_right_shift.html" target="_self">RightShift</a></td><td class="desc"></td></tr>
<tr id="row_96_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_round.html" target="_self">Round</a></td><td class="desc"></td></tr>
<tr id="row_97_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_rsqrt.html" target="_self">Rsqrt</a></td><td class="desc"></td></tr>
<tr id="row_98_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_scale_op.html" target="_self">ScaleOp</a></td><td class="desc"></td></tr>
<tr id="row_99_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_select.html" target="_self">Select</a></td><td class="desc"></td></tr>
<tr id="row_100_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_sigmoid.html" target="_self">Sigmoid</a></td><td class="desc"></td></tr>
<tr id="row_101_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_sign.html" target="_self">Sign</a></td><td class="desc"></td></tr>
<tr id="row_102_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_sin.html" target="_self">Sin</a></td><td class="desc"></td></tr>
<tr id="row_103_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_sinh.html" target="_self">Sinh</a></td><td class="desc"></td></tr>
<tr id="row_104_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_sqrt.html" target="_self">Sqrt</a></td><td class="desc"></td></tr>
<tr id="row_105_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_square.html" target="_self">Square</a></td><td class="desc"></td></tr>
<tr id="row_106_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_subtract.html" target="_self">Subtract</a></td><td class="desc"></td></tr>
<tr id="row_107_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_sum.html" target="_self">Sum</a></td><td class="desc"></td></tr>
<tr id="row_108_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_tan.html" target="_self">Tan</a></td><td class="desc"></td></tr>
<tr id="row_109_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_tanh.html" target="_self">Tanh</a></td><td class="desc"></td></tr>
<tr id="row_110_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_thread_pool.html" target="_self">ThreadPool</a></td><td class="desc"></td></tr>
<tr id="row_111_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_thread_sort.html" target="_self">ThreadSort</a></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

152
docs/build/html/array_8h.html vendored Normal file
View File

@ -0,0 +1,152 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.12.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/array.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">MLX
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.12.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#var-members">Variables</a> </div>
<div class="headertitle"><div class="title">array.h File Reference</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;algorithm&gt;</code><br />
<code>#include &lt;cstdint&gt;</code><br />
<code>#include &lt;functional&gt;</code><br />
<code>#include &lt;memory&gt;</code><br />
<code>#include &lt;vector&gt;</code><br />
<code>#include &quot;<a class="el" href="allocator_8h_source.html">mlx/allocator.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="dtype_8h_source.html">mlx/dtype.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="event_8h_source.html">mlx/event.h</a>&quot;</code><br />
</div>
<p><a href="array_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1array_1_1_array_iterator.html">mlx::core::array::ArrayIterator</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1array_1_1_data.html">mlx::core::array::Data</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1array_1_1_flags.html">mlx::core::array::Flags</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx.html">mlx</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html">mlx::core</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a1e6cec03ebd80fd2d6b12b288367bfa8" id="r_a1e6cec03ebd80fd2d6b12b288367bfa8"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a1e6cec03ebd80fd2d6b12b288367bfa8">mlx::core::deleter_t</a> = std::function&lt;void(<a class="el" href="classmlx_1_1core_1_1allocator_1_1_buffer.html">allocator::Buffer</a>)&gt;</td></tr>
<tr class="separator:a1e6cec03ebd80fd2d6b12b288367bfa8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af89751d79339f3e4d9318ea97d64d114" id="r_af89751d79339f3e4d9318ea97d64d114"><td class="memTemplParams" colspan="2">template&lt;typename... T&gt; </td></tr>
<tr class="memitem:af89751d79339f3e4d9318ea97d64d114"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#af89751d79339f3e4d9318ea97d64d114">mlx::core::enable_for_arrays_t</a> = typename std::enable_if_t&lt;<a class="el" href="namespacemlx_1_1core.html#a94c1057929b390e5613304afa16dfbda">is_arrays_v</a>&lt;T...&gt;&gt;</td></tr>
<tr class="separator:af89751d79339f3e4d9318ea97d64d114"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="var-members" name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:a01b0d64a75dfa2e95d6c7b5c53d708af" id="r_a01b0d64a75dfa2e95d6c7b5c53d708af"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a01b0d64a75dfa2e95d6c7b5c53d708af"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a01b0d64a75dfa2e95d6c7b5c53d708af">mlx::core::is_array_v</a></td></tr>
<tr class="separator:a01b0d64a75dfa2e95d6c7b5c53d708af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a94c1057929b390e5613304afa16dfbda" id="r_a94c1057929b390e5613304afa16dfbda"><td class="memTemplParams" colspan="2">template&lt;typename... T&gt; </td></tr>
<tr class="memitem:a94c1057929b390e5613304afa16dfbda"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a94c1057929b390e5613304afa16dfbda">mlx::core::is_arrays_v</a> = (<a class="el" href="namespacemlx_1_1core.html#a01b0d64a75dfa2e95d6c7b5c53d708af">is_array_v</a>&lt;T&gt; &amp;&amp; ...)</td></tr>
<tr class="separator:a94c1057929b390e5613304afa16dfbda"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

895
docs/build/html/array_8h_source.html vendored Normal file
View File

@ -0,0 +1,895 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.12.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/array.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">MLX
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.12.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<div class="header">
<div class="headertitle"><div class="title">array.h</div></div>
</div><!--header-->
<div class="contents">
<a href="array_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">// Copyright © 2023 Apple Inc.</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#pragma once</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="preprocessor">#include &lt;algorithm&gt;</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#include &lt;cstdint&gt;</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#include &lt;functional&gt;</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#include &lt;memory&gt;</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> </div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include &quot;<a class="code" href="allocator_8h.html">mlx/allocator.h</a>&quot;</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include &quot;<a class="code" href="dtype_8h.html">mlx/dtype.h</a>&quot;</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include &quot;<a class="code" href="event_8h.html">mlx/event.h</a>&quot;</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacemlx_1_1core.html">mlx::core</a> {</div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> </div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="comment">// Forward declaration</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="keyword">class </span>Primitive;</div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a1e6cec03ebd80fd2d6b12b288367bfa8"> 18</a></span><span class="keyword">using </span><a class="code hl_typedef" href="namespacemlx_1_1core.html#a1e6cec03ebd80fd2d6b12b288367bfa8">deleter_t</a> = std::function&lt;void(<a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_buffer.html">allocator::Buffer</a>)&gt;;</div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> </div>
<div class="foldopen" id="foldopen00020" data-start="{" data-end="};">
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html"> 20</a></span><span class="keyword">class </span><a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a> {</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> <span class="comment">/* An array is really a node in a graph. It contains a shared ArrayDesc</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="comment"> * object */</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a75fac72da3ce214fa3737df92a64b232">array</a>(T val, <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">dtype</a> = <a class="code hl_struct" href="structmlx_1_1core_1_1_type_to_dtype.html">TypeToDtype&lt;T&gt;</a>());</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> </div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> <span class="comment">/* Special case since std::complex can&#39;t be implicitly converted to other</span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="comment"> * types. */</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a6db4b8c28c767cc16ad2785ece496dca"> 31</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a6db4b8c28c767cc16ad2785ece496dca">array</a>(<span class="keyword">const</span> std::complex&lt;float&gt;&amp; val, <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">dtype</a> = <a class="code hl_variable" href="namespacemlx_1_1core.html#af99db87e0078bfcdb383f5689bc874d4">complex64</a>);</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> </div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> It&gt;</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a75fac72da3ce214fa3737df92a64b232">array</a>(</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> It <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data</a>,</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> std::vector&lt;int&gt; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a4a2a2c8a4a5beafd723fc13f2055d55d">shape</a>,</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">dtype</a> =</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_type_to_dtype.html">TypeToDtype</a>&lt;<span class="keyword">typename</span> std::iterator_traits&lt;It&gt;::value_type&gt;());</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> </div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a75fac72da3ce214fa3737df92a64b232">array</a>(std::initializer_list&lt;T&gt; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data</a>, <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">dtype</a> = <a class="code hl_struct" href="structmlx_1_1core_1_1_type_to_dtype.html">TypeToDtype&lt;T&gt;</a>());</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> </div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> <span class="comment">/* Special case so empty lists default to float32. */</span></div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a46642301da11e3eb4312c37349fbc9d7"> 44</a></span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a46642301da11e3eb4312c37349fbc9d7">array</a>(std::initializer_list&lt;float&gt; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data</a>);</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> </div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <span class="comment">/* Special case so array({}, type) is an empty array. */</span></div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a5e1812029394bfb1a706c83611286f49"> 47</a></span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a5e1812029394bfb1a706c83611286f49">array</a>(std::initializer_list&lt;int&gt; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data</a>, <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">dtype</a>);</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> </div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a75fac72da3ce214fa3737df92a64b232">array</a>(</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> std::initializer_list&lt;T&gt; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data</a>,</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> std::vector&lt;int&gt; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a4a2a2c8a4a5beafd723fc13f2055d55d">shape</a>,</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">dtype</a> = <a class="code hl_struct" href="structmlx_1_1core_1_1_type_to_dtype.html">TypeToDtype&lt;T&gt;</a>());</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> </div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="comment">/* Build an array from a buffer */</span></div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a5b5f562ff14c150842cb61628e531663"> 56</a></span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a5b5f562ff14c150842cb61628e531663">array</a>(</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_buffer.html">allocator::Buffer</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data</a>,</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> std::vector&lt;int&gt; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a4a2a2c8a4a5beafd723fc13f2055d55d">shape</a>,</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">dtype</a>,</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a1e6cec03ebd80fd2d6b12b288367bfa8">deleter_t</a> deleter = <a class="code hl_function" href="namespacemlx_1_1core_1_1allocator.html#a77f0a1215be242db6485612bcb273af5">allocator::free</a>);</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> </div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a8acf2b4c75f9b7f79da6675dbc36cf36"> 63</a></span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&amp; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a8acf2b4c75f9b7f79da6675dbc36cf36">operator=</a>(<span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&amp; other) &amp;&amp; = <span class="keyword">delete</span>;</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a5c89c2406a610b32943955f9a5060fbd"> 64</a></span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&amp; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a5c89c2406a610b32943955f9a5060fbd">operator=</a>(<a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&amp;&amp; other) &amp;&amp; = <span class="keyword">delete</span>;</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> </div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#ad3277ff68f1336aa217f9cbe40181479"> 67</a></span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&amp; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#ad3277ff68f1336aa217f9cbe40181479">operator=</a>(<a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&amp;&amp; other) &amp; = <span class="keywordflow">default</span>;</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a297df274e2da5cb884257bbeffd6b187"> 68</a></span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a297df274e2da5cb884257bbeffd6b187">array</a>(<span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&amp; other) = <span class="keywordflow">default</span>;</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#ab6cbccbba66cc54acda4390b19f0397c"> 69</a></span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#ab6cbccbba66cc54acda4390b19f0397c">array</a>(<a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&amp;&amp; other) = <span class="keywordflow">default</span>;</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> </div>
<div class="foldopen" id="foldopen00071" data-start="{" data-end="}">
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a5da41aabecf4c8055b7515341bf57147"> 71</a></span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&amp; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a5da41aabecf4c8055b7515341bf57147">operator=</a>(<span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&amp; other) &amp; {</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> <span class="keywordflow">if</span> (this-&gt;<span class="keywordtype">id</span>() != other.id()) {</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> this-&gt;array_desc_ = other.array_desc_;</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> }</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> }</div>
</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> </div>
<div class="foldopen" id="foldopen00079" data-start="{" data-end="}">
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#af329d9432c92de87cbaa2de8454eefc0"> 79</a></span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#af329d9432c92de87cbaa2de8454eefc0">itemsize</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespacemlx_1_1core.html#add4794cc0ffe5d717fc146084a235d95">size_of</a>(<a class="code hl_function" href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">dtype</a>());</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> }</div>
</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> </div>
<div class="foldopen" id="foldopen00084" data-start="{" data-end="}">
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6"> 84</a></span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> <span class="keywordflow">return</span> array_desc_-&gt;size;</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> }</div>
</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> </div>
<div class="foldopen" id="foldopen00089" data-start="{" data-end="}">
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a387b67cd3ef5cfc1e749c371766c4a05"> 89</a></span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a387b67cd3ef5cfc1e749c371766c4a05">nbytes</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>() * <a class="code hl_function" href="classmlx_1_1core_1_1array.html#af329d9432c92de87cbaa2de8454eefc0">itemsize</a>();</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> }</div>
</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> </div>
<div class="foldopen" id="foldopen00094" data-start="{" data-end="}">
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a53006e77d13d9d88b525ef577748939f"> 94</a></span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a53006e77d13d9d88b525ef577748939f">ndim</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> <span class="keywordflow">return</span> array_desc_-&gt;shape.size();</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> }</div>
</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> </div>
<div class="foldopen" id="foldopen00099" data-start="{" data-end="}">
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a4a2a2c8a4a5beafd723fc13f2055d55d"> 99</a></span> <span class="keyword">const</span> std::vector&lt;int&gt;&amp; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a4a2a2c8a4a5beafd723fc13f2055d55d">shape</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> <span class="keywordflow">return</span> array_desc_-&gt;shape;</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> }</div>
</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> </div>
<div class="foldopen" id="foldopen00108" data-start="{" data-end="}">
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a51ed0c45666264dc172d06fba159eb8f"> 108</a></span> <span class="keywordtype">int</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a51ed0c45666264dc172d06fba159eb8f">shape</a>(<span class="keywordtype">int</span> dim)<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a4a2a2c8a4a5beafd723fc13f2055d55d">shape</a>().at(dim &lt; 0 ? dim + <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a53006e77d13d9d88b525ef577748939f">ndim</a>() : dim);</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> }</div>
</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> </div>
<div class="foldopen" id="foldopen00113" data-start="{" data-end="}">
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a186cf2648da92584d5c1c8b24e69629b"> 113</a></span> <span class="keyword">const</span> std::vector&lt;size_t&gt;&amp; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a186cf2648da92584d5c1c8b24e69629b">strides</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> <span class="keywordflow">return</span> array_desc_-&gt;strides;</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> }</div>
</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> </div>
<div class="foldopen" id="foldopen00122" data-start="{" data-end="}">
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a919f850ca087d1c40aa68f854cb30be2"> 122</a></span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a919f850ca087d1c40aa68f854cb30be2">strides</a>(<span class="keywordtype">int</span> dim)<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a186cf2648da92584d5c1c8b24e69629b">strides</a>().at(dim &lt; 0 ? dim + <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a53006e77d13d9d88b525ef577748939f">ndim</a>() : dim);</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> }</div>
</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> </div>
<div class="foldopen" id="foldopen00127" data-start="{" data-end="}">
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd"> 127</a></span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">dtype</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> <span class="keywordflow">return</span> array_desc_-&gt;dtype;</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> }</div>
</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> </div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a2820c45188071a22175e9fa42e10a49a"> 132</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a2820c45188071a22175e9fa42e10a49a">eval</a>();</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> </div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> T <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a90c5afddc2fa3028c0f8099bd64c8a99">item</a>();</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> </div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> T <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a90c5afddc2fa3028c0f8099bd64c8a99">item</a>() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> </div>
<div class="foldopen" id="foldopen00141" data-start="{" data-end="};">
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1array_1_1_array_iterator.html"> 141</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1array_1_1_array_iterator.html">ArrayIterator</a> {</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1array_1_1_array_iterator.html#a2cbf481e39164245668b3be6cbcc614d"> 142</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="structmlx_1_1core_1_1array_1_1_array_iterator.html#a2cbf481e39164245668b3be6cbcc614d">iterator_category</a> = std::random_access_iterator_tag;</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1array_1_1_array_iterator.html#adcee44c77980fc2370a2c31e203aead5"> 143</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="structmlx_1_1core_1_1array_1_1_array_iterator.html#adcee44c77980fc2370a2c31e203aead5">difference_type</a> = size_t;</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1array_1_1_array_iterator.html#ae24fe304397e961687d0d4c7012b8ae4"> 144</a></span> <span class="keyword">using </span><a class="code hl_class" href="classmlx_1_1core_1_1array.html">value_type</a> = <span class="keyword">const</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a75fac72da3ce214fa3737df92a64b232">array</a>;</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1array_1_1_array_iterator.html#a44e2e1f29191c20ec4390de4fa0bd59f"> 145</a></span> <span class="keyword">using </span><a class="code hl_class" href="classmlx_1_1core_1_1array.html">reference</a> = <a class="code hl_typedef" href="structmlx_1_1core_1_1array_1_1_array_iterator.html#ae24fe304397e961687d0d4c7012b8ae4">value_type</a>;</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> </div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1array_1_1_array_iterator.html#ad3afcb24c6db7642bbc06835f7f3e27a"> 147</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="structmlx_1_1core_1_1array_1_1_array_iterator.html#ad3afcb24c6db7642bbc06835f7f3e27a">ArrayIterator</a>(<span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&amp; arr, <span class="keywordtype">int</span> idx = 0);</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> </div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1array_1_1_array_iterator.html#a153756072fda6d3e53bcca11b46a1238"> 149</a></span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">reference</a> <a class="code hl_function" href="structmlx_1_1core_1_1array_1_1_array_iterator.html#a153756072fda6d3e53bcca11b46a1238">operator*</a>() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> </div>
<div class="foldopen" id="foldopen00151" data-start="{" data-end="}">
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1array_1_1_array_iterator.html#ae2adde594b5a4853f6bc78263a957d85"> 151</a></span> <a class="code hl_struct" href="structmlx_1_1core_1_1array_1_1_array_iterator.html">ArrayIterator</a>&amp; <a class="code hl_function" href="structmlx_1_1core_1_1array_1_1_array_iterator.html#ae2adde594b5a4853f6bc78263a957d85">operator+</a>(<a class="code hl_typedef" href="structmlx_1_1core_1_1array_1_1_array_iterator.html#adcee44c77980fc2370a2c31e203aead5">difference_type</a> diff) {</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> idx += diff;</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> }</div>
</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> </div>
<div class="foldopen" id="foldopen00156" data-start="{" data-end="}">
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1array_1_1_array_iterator.html#a3efe69356a84d0d4438f033992fcbd9d"> 156</a></span> <a class="code hl_struct" href="structmlx_1_1core_1_1array_1_1_array_iterator.html">ArrayIterator</a>&amp; <a class="code hl_function" href="structmlx_1_1core_1_1array_1_1_array_iterator.html#a3efe69356a84d0d4438f033992fcbd9d">operator++</a>() {</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> idx++;</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> }</div>
</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> </div>
<div class="foldopen" id="foldopen00161" data-start="{" data-end="};">
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1array_1_1_array_iterator.html#a1afd6d2a19a2b0d712063f221ab4eba7"> 161</a></span> <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code hl_friend" href="structmlx_1_1core_1_1array_1_1_array_iterator.html#a1afd6d2a19a2b0d712063f221ab4eba7">operator==</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structmlx_1_1core_1_1array_1_1_array_iterator.html">ArrayIterator</a>&amp; a, <span class="keyword">const</span> <a class="code hl_struct" href="structmlx_1_1core_1_1array_1_1_array_iterator.html">ArrayIterator</a>&amp; b) {</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> <span class="keywordflow">return</span> a.arr.<a class="code hl_function" href="classmlx_1_1core_1_1array.html#adfa53f3f26bb0f942fb1c67ec8cd5380">id</a>() == b.arr.<a class="code hl_function" href="classmlx_1_1core_1_1array.html#adfa53f3f26bb0f942fb1c67ec8cd5380">id</a>() &amp;&amp; a.idx == b.idx;</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> }</div>
</div>
<div class="foldopen" id="foldopen00164" data-start="{" data-end="};">
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1array_1_1_array_iterator.html#a971aa511ab2e7ae1caae09556643a0bd"> 164</a></span> <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code hl_friend" href="structmlx_1_1core_1_1array_1_1_array_iterator.html#a971aa511ab2e7ae1caae09556643a0bd">operator!=</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structmlx_1_1core_1_1array_1_1_array_iterator.html">ArrayIterator</a>&amp; a, <span class="keyword">const</span> <a class="code hl_struct" href="structmlx_1_1core_1_1array_1_1_array_iterator.html">ArrayIterator</a>&amp; b) {</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> <span class="keywordflow">return</span> !(a == b);</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> }</div>
</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> </div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> <span class="keyword">private</span>:</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> <span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&amp; arr;</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> <span class="keywordtype">int</span> idx;</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> };</div>
</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> </div>
<div class="foldopen" id="foldopen00173" data-start="{" data-end="}">
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a76b258b169d7d73419ebbf85340fb914"> 173</a></span> <a class="code hl_struct" href="structmlx_1_1core_1_1array_1_1_array_iterator.html">ArrayIterator</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a76b258b169d7d73419ebbf85340fb914">begin</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> <span class="keywordflow">return</span> <a class="code hl_struct" href="structmlx_1_1core_1_1array_1_1_array_iterator.html">ArrayIterator</a>(*<span class="keyword">this</span>);</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> }</div>
</div>
<div class="foldopen" id="foldopen00176" data-start="{" data-end="}">
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a5daf64552fb450825c9b382f3a5fa2d4"> 176</a></span> <a class="code hl_struct" href="structmlx_1_1core_1_1array_1_1_array_iterator.html">ArrayIterator</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a5daf64552fb450825c9b382f3a5fa2d4">end</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> <span class="keywordflow">return</span> <a class="code hl_struct" href="structmlx_1_1core_1_1array_1_1_array_iterator.html">ArrayIterator</a>(*<span class="keyword">this</span>, <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a4a2a2c8a4a5beafd723fc13f2055d55d">shape</a>(0));</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> }</div>
</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> </div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#adaade8f4bb7f8ecc0ba07efb17cd2620"> 186</a></span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#adaade8f4bb7f8ecc0ba07efb17cd2620">array</a>(</div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> std::vector&lt;int&gt; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a4a2a2c8a4a5beafd723fc13f2055d55d">shape</a>,</div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">dtype</a>,</div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> std::shared_ptr&lt;Primitive&gt; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a790548666511d8c6d9f92ee79d2ce14c">primitive</a>,</div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> std::vector&lt;array&gt; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a2913abcdf71826827c8457f529825fff">inputs</a>);</div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> </div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a1173db4e23f5a8230911cb8fba45d5e6"> 192</a></span> <span class="keyword">static</span> std::vector&lt;array&gt; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a1173db4e23f5a8230911cb8fba45d5e6">make_arrays</a>(</div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> std::vector&lt;std::vector&lt;int&gt;&gt; shapes,</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> <span class="keyword">const</span> std::vector&lt;Dtype&gt;&amp; dtypes,</div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> <span class="keyword">const</span> std::shared_ptr&lt;Primitive&gt;&amp; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a790548666511d8c6d9f92ee79d2ce14c">primitive</a>,</div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> <span class="keyword">const</span> std::vector&lt;array&gt;&amp; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a2913abcdf71826827c8457f529825fff">inputs</a>);</div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> </div>
<div class="foldopen" id="foldopen00199" data-start="{" data-end="}">
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#adfa53f3f26bb0f942fb1c67ec8cd5380"> 199</a></span> std::uintptr_t <a class="code hl_function" href="classmlx_1_1core_1_1array.html#adfa53f3f26bb0f942fb1c67ec8cd5380">id</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span>std::uintptr_t<span class="keyword">&gt;</span>(array_desc_.get());</div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> }</div>
</div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> </div>
<div class="foldopen" id="foldopen00204" data-start="{" data-end="}">
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#af5ad83605d4eea81561246873bee1d7c"> 204</a></span> std::uintptr_t <a class="code hl_function" href="classmlx_1_1core_1_1array.html#af5ad83605d4eea81561246873bee1d7c">primitive_id</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span>std::uintptr_t<span class="keyword">&gt;</span>(array_desc_-&gt;primitive.get());</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> }</div>
</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> </div>
<div class="foldopen" id="foldopen00208" data-start="{" data-end="};">
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1array_1_1_data.html"> 208</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1array_1_1_data.html">Data</a> {</div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1array_1_1_data.html#a9a51e2d12ba505027cc0fca86bdd39ad"> 209</a></span> <a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_buffer.html">allocator::Buffer</a> <a class="code hl_variable" href="structmlx_1_1core_1_1array_1_1_data.html#a9a51e2d12ba505027cc0fca86bdd39ad">buffer</a>;</div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1array_1_1_data.html#a25f52ac67912a49bb6e2b6715aa65311"> 210</a></span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a1e6cec03ebd80fd2d6b12b288367bfa8">deleter_t</a> <a class="code hl_variable" href="structmlx_1_1core_1_1array_1_1_data.html#a25f52ac67912a49bb6e2b6715aa65311">d</a>;</div>
<div class="foldopen" id="foldopen00211" data-start="{" data-end="}">
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1array_1_1_data.html#a77e2ea35fac1d54e4062468a432e1482"> 211</a></span> <a class="code hl_function" href="structmlx_1_1core_1_1array_1_1_data.html#a77e2ea35fac1d54e4062468a432e1482">Data</a>(<a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_buffer.html">allocator::Buffer</a> <a class="code hl_variable" href="structmlx_1_1core_1_1array_1_1_data.html#a9a51e2d12ba505027cc0fca86bdd39ad">buffer</a>, <a class="code hl_typedef" href="namespacemlx_1_1core.html#a1e6cec03ebd80fd2d6b12b288367bfa8">deleter_t</a> <a class="code hl_variable" href="structmlx_1_1core_1_1array_1_1_data.html#a25f52ac67912a49bb6e2b6715aa65311">d</a> = <a class="code hl_function" href="namespacemlx_1_1core_1_1allocator.html#a77f0a1215be242db6485612bcb273af5">allocator::free</a>)</div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> : <a class="code hl_variable" href="structmlx_1_1core_1_1array_1_1_data.html#a9a51e2d12ba505027cc0fca86bdd39ad">buffer</a>(<a class="code hl_variable" href="structmlx_1_1core_1_1array_1_1_data.html#a9a51e2d12ba505027cc0fca86bdd39ad">buffer</a>), <a class="code hl_variable" href="structmlx_1_1core_1_1array_1_1_data.html#a25f52ac67912a49bb6e2b6715aa65311">d</a>(<a class="code hl_variable" href="structmlx_1_1core_1_1array_1_1_data.html#a25f52ac67912a49bb6e2b6715aa65311">d</a>) {}</div>
</div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> <span class="comment">// Not copyable</span></div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1array_1_1_data.html#a50f242040b123052e48e18c244ff70fc"> 214</a></span> <a class="code hl_function" href="structmlx_1_1core_1_1array_1_1_data.html#a50f242040b123052e48e18c244ff70fc">Data</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structmlx_1_1core_1_1array_1_1_data.html">Data</a>&amp; <a class="code hl_variable" href="structmlx_1_1core_1_1array_1_1_data.html#a25f52ac67912a49bb6e2b6715aa65311">d</a>) = <span class="keyword">delete</span>;</div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1array_1_1_data.html#a68e9417954fe811b5e41e6317a526748"> 215</a></span> <a class="code hl_struct" href="structmlx_1_1core_1_1array_1_1_data.html">Data</a>&amp; <a class="code hl_function" href="structmlx_1_1core_1_1array_1_1_data.html#a68e9417954fe811b5e41e6317a526748">operator=</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structmlx_1_1core_1_1array_1_1_data.html">Data</a>&amp; <a class="code hl_variable" href="structmlx_1_1core_1_1array_1_1_data.html#a25f52ac67912a49bb6e2b6715aa65311">d</a>) = <span class="keyword">delete</span>;</div>
<div class="foldopen" id="foldopen00216" data-start="{" data-end="}">
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1array_1_1_data.html#a1cf69d9709206578c4e87e9c1daad5e1"> 216</a></span> <a class="code hl_function" href="structmlx_1_1core_1_1array_1_1_data.html#a1cf69d9709206578c4e87e9c1daad5e1">~Data</a>() {</div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> <a class="code hl_variable" href="structmlx_1_1core_1_1array_1_1_data.html#a25f52ac67912a49bb6e2b6715aa65311">d</a>(<a class="code hl_variable" href="structmlx_1_1core_1_1array_1_1_data.html#a9a51e2d12ba505027cc0fca86bdd39ad">buffer</a>);</div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> }</div>
</div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> };</div>
</div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> </div>
<div class="foldopen" id="foldopen00221" data-start="{" data-end="};">
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1array_1_1_flags.html"> 221</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1array_1_1_flags.html">Flags</a> {</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> <span class="comment">// True iff there are no gaps in the underlying data. Each item</span></div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> <span class="comment">// in the underlying data buffer belongs to at least one index.</span></div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> <span class="comment">//</span></div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> <span class="comment">// True iff:</span></div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> <span class="comment">// prod(shape[i] for i in range(ndim) if strides[i] &gt; 0) == data_size()</span></div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1array_1_1_flags.html#afd0ab11e7a486a2a8e50ee84b971ac8a"> 227</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="structmlx_1_1core_1_1array_1_1_flags.html#afd0ab11e7a486a2a8e50ee84b971ac8a">contiguous</a> : 1;</div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span> </div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> <span class="comment">// True iff:</span></div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> <span class="comment">// strides[-1] == 1 and</span></div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> <span class="comment">// all(strides[i] == (shape[i+1]*strides[i+1]) or shape[i] == 1 for i in</span></div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> <span class="comment">// range(ndim - 1))</span></div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1array_1_1_flags.html#a3170fa381dc7a90f6eabcc029bdf9bfd"> 233</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="structmlx_1_1core_1_1array_1_1_flags.html#a3170fa381dc7a90f6eabcc029bdf9bfd">row_contiguous</a> : 1;</div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> </div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> <span class="comment">// True iff:</span></div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> <span class="comment">// strides[0] == 1 and</span></div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> <span class="comment">// all(strides[i] == (shape[i-1]*strides[i-1]) or shape[i] == 1 for i in</span></div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> <span class="comment">// range(1, ndim))</span></div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1array_1_1_flags.html#ae24709026598d635e6b5c24a15f8a802"> 239</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="structmlx_1_1core_1_1array_1_1_flags.html#ae24709026598d635e6b5c24a15f8a802">col_contiguous</a> : 1;</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> };</div>
</div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> </div>
<div class="foldopen" id="foldopen00243" data-start="{" data-end="}">
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a790548666511d8c6d9f92ee79d2ce14c"> 243</a></span> <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>&amp; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a790548666511d8c6d9f92ee79d2ce14c">primitive</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> <span class="keywordflow">return</span> *(array_desc_-&gt;primitive);</div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> }</div>
</div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> </div>
<div class="foldopen" id="foldopen00248" data-start="{" data-end="}">
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a5119cd616ec3c05d65878944b8889469"> 248</a></span> std::shared_ptr&lt;Primitive&gt;&amp; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a5119cd616ec3c05d65878944b8889469">primitive_ptr</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> <span class="keywordflow">return</span> array_desc_-&gt;primitive;</div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> }</div>
</div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> </div>
<div class="foldopen" id="foldopen00253" data-start="{" data-end="}">
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#aa5aceab15241e7826cbaf8b8a41440c1"> 253</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#aa5aceab15241e7826cbaf8b8a41440c1">has_primitive</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> <span class="keywordflow">return</span> array_desc_-&gt;primitive != <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> }</div>
</div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> </div>
<div class="foldopen" id="foldopen00258" data-start="{" data-end="}">
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a2913abcdf71826827c8457f529825fff"> 258</a></span> <span class="keyword">const</span> std::vector&lt;array&gt;&amp; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a2913abcdf71826827c8457f529825fff">inputs</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> <span class="keywordflow">return</span> array_desc_-&gt;inputs;</div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> }</div>
</div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span> </div>
<div class="foldopen" id="foldopen00262" data-start="{" data-end="}">
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#acffb082177f9b78f0c52e406adff972f"> 262</a></span> std::vector&lt;array&gt;&amp; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#acffb082177f9b78f0c52e406adff972f">inputs</a>() {</div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span> <span class="keywordflow">return</span> array_desc_-&gt;inputs;</div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> }</div>
</div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> </div>
<div class="foldopen" id="foldopen00267" data-start="{" data-end="}">
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a4677a404b5d191af20b52649225de087"> 267</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a4677a404b5d191af20b52649225de087">is_donatable</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> <span class="keywordflow">return</span> array_desc_.use_count() == 1 &amp;&amp; (array_desc_-&gt;data.use_count() == 1);</div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> }</div>
</div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> </div>
<div class="foldopen" id="foldopen00272" data-start="{" data-end="}">
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#acf80fde8f743f65ad5b4be69fcb7a74d"> 272</a></span> <span class="keyword">const</span> std::vector&lt;array&gt;&amp; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#acf80fde8f743f65ad5b4be69fcb7a74d">siblings</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> <span class="keywordflow">return</span> array_desc_-&gt;siblings;</div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span> }</div>
</div>
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span> </div>
<div class="foldopen" id="foldopen00277" data-start="{" data-end="}">
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a7263f23e70a580a9bc2129fbcde36e6c"> 277</a></span> std::vector&lt;array&gt;&amp; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a7263f23e70a580a9bc2129fbcde36e6c">siblings</a>() {</div>
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span> <span class="keywordflow">return</span> array_desc_-&gt;siblings;</div>
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span> }</div>
</div>
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> </div>
<div class="foldopen" id="foldopen00281" data-start="{" data-end="}">
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a8fccbe7a4edfd8cca168161124e263b1"> 281</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a8fccbe7a4edfd8cca168161124e263b1">set_siblings</a>(std::vector&lt;array&gt; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#acf80fde8f743f65ad5b4be69fcb7a74d">siblings</a>, uint16_t position) {</div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> array_desc_-&gt;siblings = std::move(<a class="code hl_function" href="classmlx_1_1core_1_1array.html#acf80fde8f743f65ad5b4be69fcb7a74d">siblings</a>);</div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> array_desc_-&gt;position = position;</div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> }</div>
</div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> </div>
<div class="foldopen" id="foldopen00288" data-start="{" data-end="}">
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a2c186fd527f984f0589d4183b4976289"> 288</a></span> std::vector&lt;array&gt; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a2c186fd527f984f0589d4183b4976289">outputs</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span> <span class="keyword">auto</span> idx = array_desc_-&gt;position;</div>
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span> std::vector&lt;array&gt; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a2c186fd527f984f0589d4183b4976289">outputs</a>;</div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a2c186fd527f984f0589d4183b4976289">outputs</a>.reserve(<a class="code hl_function" href="classmlx_1_1core_1_1array.html#acf80fde8f743f65ad5b4be69fcb7a74d">siblings</a>().<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>() + 1);</div>
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a2c186fd527f984f0589d4183b4976289">outputs</a>.insert(<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a2c186fd527f984f0589d4183b4976289">outputs</a>.end(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#acf80fde8f743f65ad5b4be69fcb7a74d">siblings</a>().<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a76b258b169d7d73419ebbf85340fb914">begin</a>(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#acf80fde8f743f65ad5b4be69fcb7a74d">siblings</a>().<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a76b258b169d7d73419ebbf85340fb914">begin</a>() + idx);</div>
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a2c186fd527f984f0589d4183b4976289">outputs</a>.push_back(*<span class="keyword">this</span>);</div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a2c186fd527f984f0589d4183b4976289">outputs</a>.insert(<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a2c186fd527f984f0589d4183b4976289">outputs</a>.end(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#acf80fde8f743f65ad5b4be69fcb7a74d">siblings</a>().<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a76b258b169d7d73419ebbf85340fb914">begin</a>() + idx, <a class="code hl_function" href="classmlx_1_1core_1_1array.html#acf80fde8f743f65ad5b4be69fcb7a74d">siblings</a>().<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a5daf64552fb450825c9b382f3a5fa2d4">end</a>());</div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a2c186fd527f984f0589d4183b4976289">outputs</a>;</div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> }</div>
</div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span> </div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a84948c29df8c957904919c8602692bd2"> 299</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a84948c29df8c957904919c8602692bd2">detach</a>();</div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> </div>
<div class="foldopen" id="foldopen00302" data-start="{" data-end="}">
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a0a20a6065ae71b64c1e3aa22a45fd8a1"> 302</a></span> <span class="keyword">const</span> <a class="code hl_struct" href="structmlx_1_1core_1_1array_1_1_flags.html">Flags</a>&amp; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a0a20a6065ae71b64c1e3aa22a45fd8a1">flags</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span> <span class="keywordflow">return</span> array_desc_-&gt;flags;</div>
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span> }</div>
</div>
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span> </div>
<div class="foldopen" id="foldopen00316" data-start="{" data-end="}">
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#afaf2a370fa35d96af1b27a4b814e3bfd"> 316</a></span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#afaf2a370fa35d96af1b27a4b814e3bfd">data_size</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span> <span class="keywordflow">return</span> array_desc_-&gt;data_size;</div>
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span> }</div>
</div>
<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span> </div>
<div class="foldopen" id="foldopen00320" data-start="{" data-end="}">
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#ab3daf04c27c4593d9d73c397b8484a08"> 320</a></span> <a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_buffer.html">allocator::Buffer</a>&amp; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#ab3daf04c27c4593d9d73c397b8484a08">buffer</a>() {</div>
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span> <span class="keywordflow">return</span> array_desc_-&gt;data-&gt;buffer;</div>
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno"> 322</span> }</div>
</div>
<div class="foldopen" id="foldopen00323" data-start="{" data-end="}">
<div class="line"><a id="l00323" name="l00323"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a634466ce661485394f2fdc3bd6796bcd"> 323</a></span> <span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_buffer.html">allocator::Buffer</a>&amp; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a634466ce661485394f2fdc3bd6796bcd">buffer</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00324" name="l00324"></a><span class="lineno"> 324</span> <span class="keywordflow">return</span> array_desc_-&gt;data-&gt;buffer;</div>
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span> }</div>
</div>
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</span> </div>
<div class="foldopen" id="foldopen00327" data-start="{" data-end="}">
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a914577c63755b2e862d2da68bbf8e3dd"> 327</a></span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a914577c63755b2e862d2da68bbf8e3dd">buffer_size</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"> 328</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1allocator.html#aa23e2f20a336d0b159c097087194634e">allocator::allocator</a>().<a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a2adf9a9c968f113dde830cc0dc27dcc6">size</a>(<a class="code hl_function" href="classmlx_1_1core_1_1array.html#ab3daf04c27c4593d9d73c397b8484a08">buffer</a>());</div>
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"> 329</span> }</div>
</div>
<div class="line"><a id="l00330" name="l00330"></a><span class="lineno"> 330</span> </div>
<div class="line"><a id="l00331" name="l00331"></a><span class="lineno"> 331</span> <span class="comment">// Return a copy of the shared pointer</span></div>
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"> 332</span> <span class="comment">// to the array::Data struct</span></div>
<div class="foldopen" id="foldopen00333" data-start="{" data-end="}">
<div class="line"><a id="l00333" name="l00333"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#ab84c792117e29cdf90ef3433303f6141"> 333</a></span> std::shared_ptr&lt;Data&gt; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#ab84c792117e29cdf90ef3433303f6141">data_shared_ptr</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00334" name="l00334"></a><span class="lineno"> 334</span> <span class="keywordflow">return</span> array_desc_-&gt;data;</div>
<div class="line"><a id="l00335" name="l00335"></a><span class="lineno"> 335</span> }</div>
</div>
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno"> 336</span> <span class="comment">// Return a raw pointer to the arrays data</span></div>
<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"> 337</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00338" data-start="{" data-end="}">
<div class="line"><a id="l00338" name="l00338"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95"> 338</a></span> T* <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data</a>() {</div>
<div class="line"><a id="l00339" name="l00339"></a><span class="lineno"> 339</span> <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>T*<span class="keyword">&gt;</span>(array_desc_-&gt;data_ptr);</div>
<div class="line"><a id="l00340" name="l00340"></a><span class="lineno"> 340</span> }</div>
</div>
<div class="line"><a id="l00341" name="l00341"></a><span class="lineno"> 341</span> </div>
<div class="line"><a id="l00342" name="l00342"></a><span class="lineno"> 342</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00343" data-start="{" data-end="}">
<div class="line"><a id="l00343" name="l00343"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a99fb28eeab39b9f429373f8bd7557676"> 343</a></span> <span class="keyword">const</span> T* <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a99fb28eeab39b9f429373f8bd7557676">data</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00344" name="l00344"></a><span class="lineno"> 344</span> <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>T*<span class="keyword">&gt;</span>(array_desc_-&gt;data_ptr);</div>
<div class="line"><a id="l00345" name="l00345"></a><span class="lineno"> 345</span> }</div>
</div>
<div class="line"><a id="l00346" name="l00346"></a><span class="lineno"> 346</span> </div>
<div class="foldopen" id="foldopen00347" data-start="{" data-end="};">
<div class="line"><a id="l00347" name="l00347"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078"> 347</a></span> <span class="keyword">enum</span> <a class="code hl_enumeration" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078">Status</a> {</div>
<div class="line"><a id="l00348" name="l00348"></a><span class="lineno"> 348</span> <span class="comment">// The ouptut of a computation which has not been scheduled.</span></div>
<div class="line"><a id="l00349" name="l00349"></a><span class="lineno"> 349</span> <span class="comment">// For example, the status of `x` in `auto x = a + b`.</span></div>
<div class="line"><a id="l00350" name="l00350"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078ae8a9988458b0355001674020a45656fb"> 350</a></span> <a class="code hl_enumvalue" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078ae8a9988458b0355001674020a45656fb">unscheduled</a>,</div>
<div class="line"><a id="l00351" name="l00351"></a><span class="lineno"> 351</span> </div>
<div class="line"><a id="l00352" name="l00352"></a><span class="lineno"> 352</span> <span class="comment">// The ouptut of a computation which has been scheduled but `eval_*` has</span></div>
<div class="line"><a id="l00353" name="l00353"></a><span class="lineno"> 353</span> <span class="comment">// not yet been called on the array&#39;s primitive. A possible</span></div>
<div class="line"><a id="l00354" name="l00354"></a><span class="lineno"> 354</span> <span class="comment">// status of `x` in `auto x = a + b; eval(x);`</span></div>
<div class="line"><a id="l00355" name="l00355"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078af8a6f8eed2395ab89a758dec434393ae"> 355</a></span> <a class="code hl_enumvalue" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078af8a6f8eed2395ab89a758dec434393ae">scheduled</a>,</div>
<div class="line"><a id="l00356" name="l00356"></a><span class="lineno"> 356</span> </div>
<div class="line"><a id="l00357" name="l00357"></a><span class="lineno"> 357</span> <span class="comment">// The array&#39;s `eval_*` function has been run, but the computation is not</span></div>
<div class="line"><a id="l00358" name="l00358"></a><span class="lineno"> 358</span> <span class="comment">// necessarily complete. The array will have memory allocated and if it is</span></div>
<div class="line"><a id="l00359" name="l00359"></a><span class="lineno"> 359</span> <span class="comment">// not a tracer then it will be detached from the graph.</span></div>
<div class="line"><a id="l00360" name="l00360"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078a6fc3d7595445dd877584495f47535268"> 360</a></span> <a class="code hl_enumvalue" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078a6fc3d7595445dd877584495f47535268">evaluated</a>,</div>
<div class="line"><a id="l00361" name="l00361"></a><span class="lineno"> 361</span> </div>
<div class="line"><a id="l00362" name="l00362"></a><span class="lineno"> 362</span> <span class="comment">// If the array is the output of a computation then the computation</span></div>
<div class="line"><a id="l00363" name="l00363"></a><span class="lineno"> 363</span> <span class="comment">// is complete. Constant arrays are always available (e.g. `array({1, 2,</span></div>
<div class="line"><a id="l00364" name="l00364"></a><span class="lineno"> 364</span> <span class="comment">// 3})`)</span></div>
<div class="line"><a id="l00365" name="l00365"></a><span class="lineno"> 365</span> <a class="code hl_enumvalue" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078a308bd3e5bf976888b120dd36d0c2d2ae">available</a></div>
<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078a308bd3e5bf976888b120dd36d0c2d2ae"> 366</a></span> };</div>
</div>
<div class="line"><a id="l00367" name="l00367"></a><span class="lineno"> 367</span> </div>
<div class="line"><a id="l00368" name="l00368"></a><span class="lineno"> 368</span> <span class="comment">// Check if the array is safe to read.</span></div>
<div class="line"><a id="l00369" name="l00369"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#aebed1f37c19197be76105161102a8a40"> 369</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#aebed1f37c19197be76105161102a8a40">is_available</a>() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00370" name="l00370"></a><span class="lineno"> 370</span> </div>
<div class="line"><a id="l00371" name="l00371"></a><span class="lineno"> 371</span> <span class="comment">// Wait on the array to be available. After this `is_available` returns</span></div>
<div class="line"><a id="l00372" name="l00372"></a><span class="lineno"> 372</span> <span class="comment">// `true`.</span></div>
<div class="line"><a id="l00373" name="l00373"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a648592006f1c92287734ba2428eaa45e"> 373</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a648592006f1c92287734ba2428eaa45e">wait</a>();</div>
<div class="line"><a id="l00374" name="l00374"></a><span class="lineno"> 374</span> </div>
<div class="foldopen" id="foldopen00375" data-start="{" data-end="}">
<div class="line"><a id="l00375" name="l00375"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a7102659be87e9ef62966696ab9b07dad"> 375</a></span> <a class="code hl_enumeration" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078">Status</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a7102659be87e9ef62966696ab9b07dad">status</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00376" name="l00376"></a><span class="lineno"> 376</span> <span class="keywordflow">return</span> array_desc_-&gt;status;</div>
<div class="line"><a id="l00377" name="l00377"></a><span class="lineno"> 377</span> }</div>
</div>
<div class="line"><a id="l00378" name="l00378"></a><span class="lineno"> 378</span> </div>
<div class="foldopen" id="foldopen00379" data-start="{" data-end="}">
<div class="line"><a id="l00379" name="l00379"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a63598018999b49f1340b183cb303f05c"> 379</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a63598018999b49f1340b183cb303f05c">set_status</a>(<a class="code hl_enumeration" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078">Status</a> s)<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00380" name="l00380"></a><span class="lineno"> 380</span> array_desc_-&gt;status = s;</div>
<div class="line"><a id="l00381" name="l00381"></a><span class="lineno"> 381</span> }</div>
</div>
<div class="line"><a id="l00382" name="l00382"></a><span class="lineno"> 382</span> </div>
<div class="line"><a id="l00383" name="l00383"></a><span class="lineno"> 383</span> <span class="comment">// Get the array&#39;s shared event</span></div>
<div class="foldopen" id="foldopen00384" data-start="{" data-end="}">
<div class="line"><a id="l00384" name="l00384"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a0a8e4d6e67e739a712876bb36f88f9bf"> 384</a></span> <a class="code hl_class" href="classmlx_1_1core_1_1_event.html">Event</a>&amp; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a0a8e4d6e67e739a712876bb36f88f9bf">event</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00385" name="l00385"></a><span class="lineno"> 385</span> <span class="keywordflow">return</span> array_desc_-&gt;event;</div>
<div class="line"><a id="l00386" name="l00386"></a><span class="lineno"> 386</span> }</div>
</div>
<div class="line"><a id="l00387" name="l00387"></a><span class="lineno"> 387</span> </div>
<div class="line"><a id="l00388" name="l00388"></a><span class="lineno"> 388</span> <span class="comment">// Attach an event to a not yet evaluated array</span></div>
<div class="foldopen" id="foldopen00389" data-start="{" data-end="}">
<div class="line"><a id="l00389" name="l00389"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a000c3cfe13cb378bf0523b62816190da"> 389</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a000c3cfe13cb378bf0523b62816190da">attach_event</a>(<a class="code hl_class" href="classmlx_1_1core_1_1_event.html">Event</a> e)<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00390" name="l00390"></a><span class="lineno"> 390</span> array_desc_-&gt;event = std::move(e);</div>
<div class="line"><a id="l00391" name="l00391"></a><span class="lineno"> 391</span> }</div>
</div>
<div class="line"><a id="l00392" name="l00392"></a><span class="lineno"> 392</span> </div>
<div class="line"><a id="l00393" name="l00393"></a><span class="lineno"> 393</span> <span class="comment">// Mark the array as a tracer array (true) or not.</span></div>
<div class="foldopen" id="foldopen00394" data-start="{" data-end="}">
<div class="line"><a id="l00394" name="l00394"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#af26e6be1a9e6239471a4c24310c0c7c8"> 394</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#af26e6be1a9e6239471a4c24310c0c7c8">set_tracer</a>(<span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#af9acb115019b995354d366c4ac6b968c">is_tracer</a>) {</div>
<div class="line"><a id="l00395" name="l00395"></a><span class="lineno"> 395</span> array_desc_-&gt;is_tracer = <a class="code hl_function" href="classmlx_1_1core_1_1array.html#af9acb115019b995354d366c4ac6b968c">is_tracer</a>;</div>
<div class="line"><a id="l00396" name="l00396"></a><span class="lineno"> 396</span> }</div>
</div>
<div class="line"><a id="l00397" name="l00397"></a><span class="lineno"> 397</span> <span class="comment">// Check if the array is a tracer array</span></div>
<div class="line"><a id="l00398" name="l00398"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#af9acb115019b995354d366c4ac6b968c"> 398</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#af9acb115019b995354d366c4ac6b968c">is_tracer</a>() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00399" name="l00399"></a><span class="lineno"> 399</span> </div>
<div class="line"><a id="l00400" name="l00400"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a631acd8e318189640b8338f9ae1a554d"> 400</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a631acd8e318189640b8338f9ae1a554d">set_data</a>(<a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_buffer.html">allocator::Buffer</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#ab3daf04c27c4593d9d73c397b8484a08">buffer</a>, <a class="code hl_typedef" href="namespacemlx_1_1core.html#a1e6cec03ebd80fd2d6b12b288367bfa8">deleter_t</a> d = <a class="code hl_function" href="namespacemlx_1_1core_1_1allocator.html#a77f0a1215be242db6485612bcb273af5">allocator::free</a>);</div>
<div class="line"><a id="l00401" name="l00401"></a><span class="lineno"> 401</span> </div>
<div class="line"><a id="l00402" name="l00402"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a2112af5fba37b3135cd2e6ac9e851606"> 402</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a2112af5fba37b3135cd2e6ac9e851606">set_data</a>(</div>
<div class="line"><a id="l00403" name="l00403"></a><span class="lineno"> 403</span> <a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_buffer.html">allocator::Buffer</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#ab3daf04c27c4593d9d73c397b8484a08">buffer</a>,</div>
<div class="line"><a id="l00404" name="l00404"></a><span class="lineno"> 404</span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#afaf2a370fa35d96af1b27a4b814e3bfd">data_size</a>,</div>
<div class="line"><a id="l00405" name="l00405"></a><span class="lineno"> 405</span> std::vector&lt;size_t&gt; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a186cf2648da92584d5c1c8b24e69629b">strides</a>,</div>
<div class="line"><a id="l00406" name="l00406"></a><span class="lineno"> 406</span> <a class="code hl_struct" href="structmlx_1_1core_1_1array_1_1_flags.html">Flags</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a0a20a6065ae71b64c1e3aa22a45fd8a1">flags</a>,</div>
<div class="line"><a id="l00407" name="l00407"></a><span class="lineno"> 407</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a1e6cec03ebd80fd2d6b12b288367bfa8">deleter_t</a> d = <a class="code hl_function" href="namespacemlx_1_1core_1_1allocator.html#a77f0a1215be242db6485612bcb273af5">allocator::free</a>);</div>
<div class="line"><a id="l00408" name="l00408"></a><span class="lineno"> 408</span> </div>
<div class="line"><a id="l00409" name="l00409"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a28df7a333d90a311c49bc4bce7a1ad6d"> 409</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a28df7a333d90a311c49bc4bce7a1ad6d">copy_shared_buffer</a>(</div>
<div class="line"><a id="l00410" name="l00410"></a><span class="lineno"> 410</span> <span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&amp; other,</div>
<div class="line"><a id="l00411" name="l00411"></a><span class="lineno"> 411</span> <span class="keyword">const</span> std::vector&lt;size_t&gt;&amp; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a186cf2648da92584d5c1c8b24e69629b">strides</a>,</div>
<div class="line"><a id="l00412" name="l00412"></a><span class="lineno"> 412</span> <a class="code hl_struct" href="structmlx_1_1core_1_1array_1_1_flags.html">Flags</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a0a20a6065ae71b64c1e3aa22a45fd8a1">flags</a>,</div>
<div class="line"><a id="l00413" name="l00413"></a><span class="lineno"> 413</span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#afaf2a370fa35d96af1b27a4b814e3bfd">data_size</a>,</div>
<div class="line"><a id="l00414" name="l00414"></a><span class="lineno"> 414</span> <span class="keywordtype">size_t</span> offset = 0);</div>
<div class="line"><a id="l00415" name="l00415"></a><span class="lineno"> 415</span> </div>
<div class="line"><a id="l00416" name="l00416"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a92974c656c35a972ad241f80584bbd29"> 416</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a92974c656c35a972ad241f80584bbd29">copy_shared_buffer</a>(<span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&amp; other);</div>
<div class="line"><a id="l00417" name="l00417"></a><span class="lineno"> 417</span> </div>
<div class="line"><a id="l00418" name="l00418"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#acce00db63e0f3d80f797b02397ade836"> 418</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#acce00db63e0f3d80f797b02397ade836">move_shared_buffer</a>(</div>
<div class="line"><a id="l00419" name="l00419"></a><span class="lineno"> 419</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a> other,</div>
<div class="line"><a id="l00420" name="l00420"></a><span class="lineno"> 420</span> <span class="keyword">const</span> std::vector&lt;size_t&gt;&amp; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a186cf2648da92584d5c1c8b24e69629b">strides</a>,</div>
<div class="line"><a id="l00421" name="l00421"></a><span class="lineno"> 421</span> <a class="code hl_struct" href="structmlx_1_1core_1_1array_1_1_flags.html">Flags</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a0a20a6065ae71b64c1e3aa22a45fd8a1">flags</a>,</div>
<div class="line"><a id="l00422" name="l00422"></a><span class="lineno"> 422</span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#afaf2a370fa35d96af1b27a4b814e3bfd">data_size</a>,</div>
<div class="line"><a id="l00423" name="l00423"></a><span class="lineno"> 423</span> <span class="keywordtype">size_t</span> offset = 0);</div>
<div class="line"><a id="l00424" name="l00424"></a><span class="lineno"> 424</span> </div>
<div class="line"><a id="l00425" name="l00425"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a38d7ad605f8282e5e49d0c09e0555c78"> 425</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a38d7ad605f8282e5e49d0c09e0555c78">move_shared_buffer</a>(<a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a> other);</div>
<div class="line"><a id="l00426" name="l00426"></a><span class="lineno"> 426</span> </div>
<div class="foldopen" id="foldopen00427" data-start="{" data-end="}">
<div class="line"><a id="l00427" name="l00427"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a95e6b156c8e05439f076b85c05079387"> 427</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a95e6b156c8e05439f076b85c05079387">overwrite_descriptor</a>(<span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&amp; other) {</div>
<div class="line"><a id="l00428" name="l00428"></a><span class="lineno"> 428</span> array_desc_ = other.array_desc_;</div>
<div class="line"><a id="l00429" name="l00429"></a><span class="lineno"> 429</span> }</div>
</div>
<div class="line"><a id="l00430" name="l00430"></a><span class="lineno"> 430</span> </div>
<div class="line"><a id="l00431" name="l00431"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a2f16c1ef8ee248d2fba95520c86dfad2"> 431</a></span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a2f16c1ef8ee248d2fba95520c86dfad2">~array</a>();</div>
<div class="line"><a id="l00432" name="l00432"></a><span class="lineno"> 432</span> </div>
<div class="line"><a id="l00433" name="l00433"></a><span class="lineno"> 433</span> <span class="keyword">private</span>:</div>
<div class="line"><a id="l00434" name="l00434"></a><span class="lineno"> 434</span> <span class="comment">// Initialize the arrays data</span></div>
<div class="line"><a id="l00435" name="l00435"></a><span class="lineno"> 435</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> It&gt;</div>
<div class="line"><a id="l00436" name="l00436"></a><span class="lineno"> 436</span> <span class="keywordtype">void</span> init(<span class="keyword">const</span> It src);</div>
<div class="line"><a id="l00437" name="l00437"></a><span class="lineno"> 437</span> </div>
<div class="line"><a id="l00438" name="l00438"></a><span class="lineno"> 438</span> <span class="keyword">struct </span>ArrayDesc {</div>
<div class="line"><a id="l00439" name="l00439"></a><span class="lineno"> 439</span> std::vector&lt;int&gt; shape;</div>
<div class="line"><a id="l00440" name="l00440"></a><span class="lineno"> 440</span> std::vector&lt;size_t&gt; strides;</div>
<div class="line"><a id="l00441" name="l00441"></a><span class="lineno"> 441</span> <span class="keywordtype">size_t</span> size;</div>
<div class="line"><a id="l00442" name="l00442"></a><span class="lineno"> 442</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> dtype;</div>
<div class="line"><a id="l00443" name="l00443"></a><span class="lineno"> 443</span> std::shared_ptr&lt;Primitive&gt; primitive;</div>
<div class="line"><a id="l00444" name="l00444"></a><span class="lineno"> 444</span> </div>
<div class="line"><a id="l00445" name="l00445"></a><span class="lineno"> 445</span> <a class="code hl_enumeration" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078">Status</a> status;</div>
<div class="line"><a id="l00446" name="l00446"></a><span class="lineno"> 446</span> </div>
<div class="line"><a id="l00447" name="l00447"></a><span class="lineno"> 447</span> <span class="comment">// An event on the array used for synchronization</span></div>
<div class="line"><a id="l00448" name="l00448"></a><span class="lineno"> 448</span> <a class="code hl_class" href="classmlx_1_1core_1_1_event.html">Event</a> event;</div>
<div class="line"><a id="l00449" name="l00449"></a><span class="lineno"> 449</span> </div>
<div class="line"><a id="l00450" name="l00450"></a><span class="lineno"> 450</span> <span class="comment">// Indicates an array is being used in a graph transform</span></div>
<div class="line"><a id="l00451" name="l00451"></a><span class="lineno"> 451</span> <span class="comment">// and should not be detached from the graph</span></div>
<div class="line"><a id="l00452" name="l00452"></a><span class="lineno"> 452</span> <span class="keywordtype">bool</span> is_tracer{<span class="keyword">false</span>};</div>
<div class="line"><a id="l00453" name="l00453"></a><span class="lineno"> 453</span> </div>
<div class="line"><a id="l00454" name="l00454"></a><span class="lineno"> 454</span> <span class="comment">// This is a shared pointer so that *different* arrays</span></div>
<div class="line"><a id="l00455" name="l00455"></a><span class="lineno"> 455</span> <span class="comment">// can share the underlying data buffer.</span></div>
<div class="line"><a id="l00456" name="l00456"></a><span class="lineno"> 456</span> std::shared_ptr&lt;Data&gt; data;</div>
<div class="line"><a id="l00457" name="l00457"></a><span class="lineno"> 457</span> </div>
<div class="line"><a id="l00458" name="l00458"></a><span class="lineno"> 458</span> <span class="comment">// Properly offset data pointer</span></div>
<div class="line"><a id="l00459" name="l00459"></a><span class="lineno"> 459</span> <span class="keywordtype">void</span>* data_ptr{<span class="keyword">nullptr</span>};</div>
<div class="line"><a id="l00460" name="l00460"></a><span class="lineno"> 460</span> </div>
<div class="line"><a id="l00461" name="l00461"></a><span class="lineno"> 461</span> <span class="comment">// The size in elements of the data buffer the array accesses</span></div>
<div class="line"><a id="l00462" name="l00462"></a><span class="lineno"> 462</span> <span class="keywordtype">size_t</span> data_size;</div>
<div class="line"><a id="l00463" name="l00463"></a><span class="lineno"> 463</span> </div>
<div class="line"><a id="l00464" name="l00464"></a><span class="lineno"> 464</span> <span class="comment">// Contains useful meta data about the array</span></div>
<div class="line"><a id="l00465" name="l00465"></a><span class="lineno"> 465</span> Flags flags;</div>
<div class="line"><a id="l00466" name="l00466"></a><span class="lineno"> 466</span> </div>
<div class="line"><a id="l00467" name="l00467"></a><span class="lineno"> 467</span> std::vector&lt;array&gt; inputs;</div>
<div class="line"><a id="l00468" name="l00468"></a><span class="lineno"> 468</span> <span class="comment">// An array to keep track of the siblings from a multi-output</span></div>
<div class="line"><a id="l00469" name="l00469"></a><span class="lineno"> 469</span> <span class="comment">// primitive.</span></div>
<div class="line"><a id="l00470" name="l00470"></a><span class="lineno"> 470</span> std::vector&lt;array&gt; siblings;</div>
<div class="line"><a id="l00471" name="l00471"></a><span class="lineno"> 471</span> <span class="comment">// The arrays position in the output list</span></div>
<div class="line"><a id="l00472" name="l00472"></a><span class="lineno"> 472</span> uint32_t position{0};</div>
<div class="line"><a id="l00473" name="l00473"></a><span class="lineno"> 473</span> </div>
<div class="line"><a id="l00474" name="l00474"></a><span class="lineno"> 474</span> <span class="keyword">explicit</span> ArrayDesc(std::vector&lt;int&gt; shape, Dtype dtype);</div>
<div class="line"><a id="l00475" name="l00475"></a><span class="lineno"> 475</span> </div>
<div class="line"><a id="l00476" name="l00476"></a><span class="lineno"> 476</span> <span class="keyword">explicit</span> ArrayDesc(</div>
<div class="line"><a id="l00477" name="l00477"></a><span class="lineno"> 477</span> std::vector&lt;int&gt; shape,</div>
<div class="line"><a id="l00478" name="l00478"></a><span class="lineno"> 478</span> Dtype dtype,</div>
<div class="line"><a id="l00479" name="l00479"></a><span class="lineno"> 479</span> std::shared_ptr&lt;Primitive&gt; primitive,</div>
<div class="line"><a id="l00480" name="l00480"></a><span class="lineno"> 480</span> std::vector&lt;array&gt; inputs);</div>
<div class="line"><a id="l00481" name="l00481"></a><span class="lineno"> 481</span> </div>
<div class="line"><a id="l00482" name="l00482"></a><span class="lineno"> 482</span> ~ArrayDesc();</div>
<div class="line"><a id="l00483" name="l00483"></a><span class="lineno"> 483</span> </div>
<div class="line"><a id="l00484" name="l00484"></a><span class="lineno"> 484</span> <span class="keyword">private</span>:</div>
<div class="line"><a id="l00485" name="l00485"></a><span class="lineno"> 485</span> <span class="comment">// Initialize size, strides, and other metadata</span></div>
<div class="line"><a id="l00486" name="l00486"></a><span class="lineno"> 486</span> <span class="keywordtype">void</span> init();</div>
<div class="line"><a id="l00487" name="l00487"></a><span class="lineno"> 487</span> };</div>
<div class="line"><a id="l00488" name="l00488"></a><span class="lineno"> 488</span> </div>
<div class="line"><a id="l00489" name="l00489"></a><span class="lineno"> 489</span> <span class="comment">// The ArrayDesc contains the details of the materialized array including the</span></div>
<div class="line"><a id="l00490" name="l00490"></a><span class="lineno"> 490</span> <span class="comment">// shape, strides, the data type. It also includes</span></div>
<div class="line"><a id="l00491" name="l00491"></a><span class="lineno"> 491</span> <span class="comment">// the primitive which knows how to compute the array&#39;s data from its inputs</span></div>
<div class="line"><a id="l00492" name="l00492"></a><span class="lineno"> 492</span> <span class="comment">// and the list of array&#39;s inputs for the primitive.</span></div>
<div class="line"><a id="l00493" name="l00493"></a><span class="lineno"> 493</span> std::shared_ptr&lt;ArrayDesc&gt; array_desc_;</div>
<div class="line"><a id="l00494" name="l00494"></a><span class="lineno"> 494</span>};</div>
</div>
<div class="line"><a id="l00495" name="l00495"></a><span class="lineno"> 495</span> </div>
<div class="line"><a id="l00496" name="l00496"></a><span class="lineno"> 496</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00497" data-start="{" data-end="}">
<div class="line"><a id="l00497" name="l00497"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a75fac72da3ce214fa3737df92a64b232"> 497</a></span><a class="code hl_function" href="classmlx_1_1core_1_1array.html#a75fac72da3ce214fa3737df92a64b232">array::array</a>(T val, <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> dtype <span class="comment">/* = TypeToDtype&lt;T&gt;() */</span>)</div>
<div class="line"><a id="l00498" name="l00498"></a><span class="lineno"> 498</span> : array_desc_(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::make_shared&lt;ArrayDesc&gt;(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector&lt;int&gt;{}, dtype)) {</div>
<div class="line"><a id="l00499" name="l00499"></a><span class="lineno"> 499</span> init(&amp;val);</div>
<div class="line"><a id="l00500" name="l00500"></a><span class="lineno"> 500</span>}</div>
</div>
<div class="line"><a id="l00501" name="l00501"></a><span class="lineno"> 501</span> </div>
<div class="line"><a id="l00502" name="l00502"></a><span class="lineno"> 502</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> It&gt;</div>
<div class="foldopen" id="foldopen00503" data-start="{" data-end="}">
<div class="line"><a id="l00503" name="l00503"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a3e506a53b9c7567448f7809dda680210"> 503</a></span><a class="code hl_function" href="classmlx_1_1core_1_1array.html#a75fac72da3ce214fa3737df92a64b232">array::array</a>(</div>
<div class="line"><a id="l00504" name="l00504"></a><span class="lineno"> 504</span> It data,</div>
<div class="line"><a id="l00505" name="l00505"></a><span class="lineno"> 505</span> std::vector&lt;int&gt; shape,</div>
<div class="line"><a id="l00506" name="l00506"></a><span class="lineno"> 506</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> dtype <span class="comment">/* = TypeToDtype&lt;typename std::iterator_traits&lt;It&gt;::value_type&gt;() */</span>) :</div>
<div class="line"><a id="l00507" name="l00507"></a><span class="lineno"> 507</span> array_desc_(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::make_shared&lt;ArrayDesc&gt;(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::move(shape), dtype)) {</div>
<div class="line"><a id="l00508" name="l00508"></a><span class="lineno"> 508</span> init(<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data</a>);</div>
<div class="line"><a id="l00509" name="l00509"></a><span class="lineno"> 509</span>}</div>
</div>
<div class="line"><a id="l00510" name="l00510"></a><span class="lineno"> 510</span> </div>
<div class="line"><a id="l00511" name="l00511"></a><span class="lineno"> 511</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00512" data-start="{" data-end="}">
<div class="line"><a id="l00512" name="l00512"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a87f170384f4fb93decf2b80ae7280f00"> 512</a></span><a class="code hl_function" href="classmlx_1_1core_1_1array.html#a75fac72da3ce214fa3737df92a64b232">array::array</a>(</div>
<div class="line"><a id="l00513" name="l00513"></a><span class="lineno"> 513</span> std::initializer_list&lt;T&gt; data,</div>
<div class="line"><a id="l00514" name="l00514"></a><span class="lineno"> 514</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> dtype <span class="comment">/* = TypeToDtype&lt;T&gt;() */</span>)</div>
<div class="line"><a id="l00515" name="l00515"></a><span class="lineno"> 515</span> : array_desc_(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::make_shared&lt;ArrayDesc&gt;(</div>
<div class="line"><a id="l00516" name="l00516"></a><span class="lineno"> 516</span> <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector&lt;int&gt;{<span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data</a>.size())},</div>
<div class="line"><a id="l00517" name="l00517"></a><span class="lineno"> 517</span> dtype)) {</div>
<div class="line"><a id="l00518" name="l00518"></a><span class="lineno"> 518</span> init(<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data</a>.begin());</div>
<div class="line"><a id="l00519" name="l00519"></a><span class="lineno"> 519</span>}</div>
</div>
<div class="line"><a id="l00520" name="l00520"></a><span class="lineno"> 520</span> </div>
<div class="line"><a id="l00521" name="l00521"></a><span class="lineno"> 521</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00522" data-start="{" data-end="}">
<div class="line"><a id="l00522" name="l00522"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a44e57a41819321e0d796e08cb9a06e4b"> 522</a></span><a class="code hl_function" href="classmlx_1_1core_1_1array.html#a75fac72da3ce214fa3737df92a64b232">array::array</a>(</div>
<div class="line"><a id="l00523" name="l00523"></a><span class="lineno"> 523</span> std::initializer_list&lt;T&gt; data,</div>
<div class="line"><a id="l00524" name="l00524"></a><span class="lineno"> 524</span> std::vector&lt;int&gt; shape,</div>
<div class="line"><a id="l00525" name="l00525"></a><span class="lineno"> 525</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> dtype <span class="comment">/* = TypeToDtype&lt;T&gt;() */</span>)</div>
<div class="line"><a id="l00526" name="l00526"></a><span class="lineno"> 526</span> : array_desc_(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::make_shared&lt;ArrayDesc&gt;(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::move(shape), dtype)) {</div>
<div class="line"><a id="l00527" name="l00527"></a><span class="lineno"> 527</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data</a>.size() != <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>()) {</div>
<div class="line"><a id="l00528" name="l00528"></a><span class="lineno"> 528</span> <span class="keywordflow">throw</span> std::invalid_argument(</div>
<div class="line"><a id="l00529" name="l00529"></a><span class="lineno"> 529</span> <span class="stringliteral">&quot;Data size and provided shape mismatch in array construction.&quot;</span>);</div>
<div class="line"><a id="l00530" name="l00530"></a><span class="lineno"> 530</span> }</div>
<div class="line"><a id="l00531" name="l00531"></a><span class="lineno"> 531</span> init(<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data</a>.begin());</div>
<div class="line"><a id="l00532" name="l00532"></a><span class="lineno"> 532</span>}</div>
</div>
<div class="line"><a id="l00533" name="l00533"></a><span class="lineno"> 533</span> </div>
<div class="line"><a id="l00534" name="l00534"></a><span class="lineno"> 534</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00535" data-start="{" data-end="}">
<div class="line"><a id="l00535" name="l00535"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a90c5afddc2fa3028c0f8099bd64c8a99"> 535</a></span>T <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a90c5afddc2fa3028c0f8099bd64c8a99">array::item</a>() {</div>
<div class="line"><a id="l00536" name="l00536"></a><span class="lineno"> 536</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>() != 1) {</div>
<div class="line"><a id="l00537" name="l00537"></a><span class="lineno"> 537</span> <span class="keywordflow">throw</span> std::invalid_argument(<span class="stringliteral">&quot;item can only be called on arrays of size 1.&quot;</span>);</div>
<div class="line"><a id="l00538" name="l00538"></a><span class="lineno"> 538</span> }</div>
<div class="line"><a id="l00539" name="l00539"></a><span class="lineno"> 539</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a2820c45188071a22175e9fa42e10a49a">eval</a>();</div>
<div class="line"><a id="l00540" name="l00540"></a><span class="lineno"> 540</span> <span class="keywordflow">return</span> *<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data&lt;T&gt;</a>();</div>
<div class="line"><a id="l00541" name="l00541"></a><span class="lineno"> 541</span>}</div>
</div>
<div class="line"><a id="l00542" name="l00542"></a><span class="lineno"> 542</span> </div>
<div class="line"><a id="l00543" name="l00543"></a><span class="lineno"> 543</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00544" data-start="{" data-end="}">
<div class="line"><a id="l00544" name="l00544"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a8650a99a6b7549bc823b03ad92590ff7"> 544</a></span>T <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a90c5afddc2fa3028c0f8099bd64c8a99">array::item</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00545" name="l00545"></a><span class="lineno"> 545</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>() != 1) {</div>
<div class="line"><a id="l00546" name="l00546"></a><span class="lineno"> 546</span> <span class="keywordflow">throw</span> std::invalid_argument(<span class="stringliteral">&quot;item can only be called on arrays of size 1.&quot;</span>);</div>
<div class="line"><a id="l00547" name="l00547"></a><span class="lineno"> 547</span> }</div>
<div class="line"><a id="l00548" name="l00548"></a><span class="lineno"> 548</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a7102659be87e9ef62966696ab9b07dad">status</a>() == <a class="code hl_enumvalue" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078ae8a9988458b0355001674020a45656fb">Status::unscheduled</a>) {</div>
<div class="line"><a id="l00549" name="l00549"></a><span class="lineno"> 549</span> <span class="keywordflow">throw</span> std::invalid_argument(</div>
<div class="line"><a id="l00550" name="l00550"></a><span class="lineno"> 550</span> <span class="stringliteral">&quot;item() const can only be called on evaled arrays&quot;</span>);</div>
<div class="line"><a id="l00551" name="l00551"></a><span class="lineno"> 551</span> }</div>
<div class="line"><a id="l00552" name="l00552"></a><span class="lineno"> 552</span> <span class="keyword">const_cast&lt;</span><a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>*<span class="keyword">&gt;</span>(<span class="keyword">this</span>)-&gt;<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a2820c45188071a22175e9fa42e10a49a">eval</a>();</div>
<div class="line"><a id="l00553" name="l00553"></a><span class="lineno"> 553</span> <span class="keywordflow">return</span> *<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data&lt;T&gt;</a>();</div>
<div class="line"><a id="l00554" name="l00554"></a><span class="lineno"> 554</span>}</div>
</div>
<div class="line"><a id="l00555" name="l00555"></a><span class="lineno"> 555</span> </div>
<div class="line"><a id="l00556" name="l00556"></a><span class="lineno"> 556</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> It&gt;</div>
<div class="line"><a id="l00557" name="l00557"></a><span class="lineno"> 557</span><span class="keywordtype">void</span> array::init(It src) {</div>
<div class="line"><a id="l00558" name="l00558"></a><span class="lineno"> 558</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a631acd8e318189640b8338f9ae1a554d">set_data</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1allocator.html#a560d10a166e3c294f3757166f9bd6801">allocator::malloc</a>(<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>() * <a class="code hl_function" href="namespacemlx_1_1core.html#add4794cc0ffe5d717fc146084a235d95">size_of</a>(<a class="code hl_function" href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">dtype</a>())));</div>
<div class="line"><a id="l00559" name="l00559"></a><span class="lineno"> 559</span> <span class="keywordflow">switch</span> (<a class="code hl_function" href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">dtype</a>()) {</div>
<div class="line"><a id="l00560" name="l00560"></a><span class="lineno"> 560</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a113d2bac7e4aa6a4cb4a5c3242527b82">bool_</a>:</div>
<div class="line"><a id="l00561" name="l00561"></a><span class="lineno"> 561</span> std::copy(src, src + <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data&lt;bool&gt;</a>());</div>
<div class="line"><a id="l00562" name="l00562"></a><span class="lineno"> 562</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00563" name="l00563"></a><span class="lineno"> 563</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a9778d50afbf456b0bd738751243b3b68">uint8</a>:</div>
<div class="line"><a id="l00564" name="l00564"></a><span class="lineno"> 564</span> std::copy(src, src + <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data&lt;uint8_t&gt;</a>());</div>
<div class="line"><a id="l00565" name="l00565"></a><span class="lineno"> 565</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00566" name="l00566"></a><span class="lineno"> 566</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a312a70c487366968af5e6cbf5038c812">uint16</a>:</div>
<div class="line"><a id="l00567" name="l00567"></a><span class="lineno"> 567</span> std::copy(src, src + <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data&lt;uint16_t&gt;</a>());</div>
<div class="line"><a id="l00568" name="l00568"></a><span class="lineno"> 568</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00569" name="l00569"></a><span class="lineno"> 569</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#ac63820d6fe10545907c33faf466a929e">uint32</a>:</div>
<div class="line"><a id="l00570" name="l00570"></a><span class="lineno"> 570</span> std::copy(src, src + <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data&lt;uint32_t&gt;</a>());</div>
<div class="line"><a id="l00571" name="l00571"></a><span class="lineno"> 571</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00572" name="l00572"></a><span class="lineno"> 572</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a1f42e3dd4787d2ecec7114a12daefec8">uint64</a>:</div>
<div class="line"><a id="l00573" name="l00573"></a><span class="lineno"> 573</span> std::copy(src, src + <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data&lt;uint64_t&gt;</a>());</div>
<div class="line"><a id="l00574" name="l00574"></a><span class="lineno"> 574</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00575" name="l00575"></a><span class="lineno"> 575</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a892e934e146dd938d144cee8813ca672">int8</a>:</div>
<div class="line"><a id="l00576" name="l00576"></a><span class="lineno"> 576</span> std::copy(src, src + <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data&lt;int8_t&gt;</a>());</div>
<div class="line"><a id="l00577" name="l00577"></a><span class="lineno"> 577</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00578" name="l00578"></a><span class="lineno"> 578</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a71ebba4ad1afa730962f0692c4f42f07">int16</a>:</div>
<div class="line"><a id="l00579" name="l00579"></a><span class="lineno"> 579</span> std::copy(src, src + <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data&lt;int16_t&gt;</a>());</div>
<div class="line"><a id="l00580" name="l00580"></a><span class="lineno"> 580</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00581" name="l00581"></a><span class="lineno"> 581</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a5d6373aad1444edc9de1eb07bfe5cad3">int32</a>:</div>
<div class="line"><a id="l00582" name="l00582"></a><span class="lineno"> 582</span> std::copy(src, src + <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data&lt;int32_t&gt;</a>());</div>
<div class="line"><a id="l00583" name="l00583"></a><span class="lineno"> 583</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00584" name="l00584"></a><span class="lineno"> 584</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a9019bdc191054ada0a502c7c34cef5b8">int64</a>:</div>
<div class="line"><a id="l00585" name="l00585"></a><span class="lineno"> 585</span> std::copy(src, src + <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data&lt;int64_t&gt;</a>());</div>
<div class="line"><a id="l00586" name="l00586"></a><span class="lineno"> 586</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00587" name="l00587"></a><span class="lineno"> 587</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#abf228ee9d8ec48c03bb15adcc4e1f3ec">float16</a>:</div>
<div class="line"><a id="l00588" name="l00588"></a><span class="lineno"> 588</span> std::copy(src, src + <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data&lt;float16_t&gt;</a>());</div>
<div class="line"><a id="l00589" name="l00589"></a><span class="lineno"> 589</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00590" name="l00590"></a><span class="lineno"> 590</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319">float32</a>:</div>
<div class="line"><a id="l00591" name="l00591"></a><span class="lineno"> 591</span> std::copy(src, src + <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data&lt;float&gt;</a>());</div>
<div class="line"><a id="l00592" name="l00592"></a><span class="lineno"> 592</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00593" name="l00593"></a><span class="lineno"> 593</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a514cf8b4e6f0a6af3a867e752f4338f7">bfloat16</a>:</div>
<div class="line"><a id="l00594" name="l00594"></a><span class="lineno"> 594</span> std::copy(src, src + <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data&lt;bfloat16_t&gt;</a>());</div>
<div class="line"><a id="l00595" name="l00595"></a><span class="lineno"> 595</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00596" name="l00596"></a><span class="lineno"> 596</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#af99db87e0078bfcdb383f5689bc874d4">complex64</a>:</div>
<div class="line"><a id="l00597" name="l00597"></a><span class="lineno"> 597</span> std::copy(src, src + <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data&lt;complex64_t&gt;</a>());</div>
<div class="line"><a id="l00598" name="l00598"></a><span class="lineno"> 598</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00599" name="l00599"></a><span class="lineno"> 599</span> }</div>
<div class="line"><a id="l00600" name="l00600"></a><span class="lineno"> 600</span>}</div>
<div class="line"><a id="l00601" name="l00601"></a><span class="lineno"> 601</span> </div>
<div class="line"><a id="l00602" name="l00602"></a><span class="lineno"> 602</span><span class="comment">/* Utilities for determining whether a template parameter is array. */</span></div>
<div class="line"><a id="l00603" name="l00603"></a><span class="lineno"> 603</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a id="l00604" name="l00604"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a01b0d64a75dfa2e95d6c7b5c53d708af"> 604</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a01b0d64a75dfa2e95d6c7b5c53d708af">is_array_v</a> =</div>
<div class="line"><a id="l00605" name="l00605"></a><span class="lineno"> 605</span> std::is_same_v&lt;std::remove_cv_t&lt;std::remove_reference_t&lt;T&gt;&gt;, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&gt;;</div>
<div class="line"><a id="l00606" name="l00606"></a><span class="lineno"> 606</span> </div>
<div class="line"><a id="l00607" name="l00607"></a><span class="lineno"> 607</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span>... T&gt;</div>
<div class="line"><a id="l00608" name="l00608"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a94c1057929b390e5613304afa16dfbda"> 608</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a94c1057929b390e5613304afa16dfbda">is_arrays_v</a> = (<a class="code hl_variable" href="namespacemlx_1_1core.html#a01b0d64a75dfa2e95d6c7b5c53d708af">is_array_v&lt;T&gt;</a> &amp;&amp; ...);</div>
<div class="line"><a id="l00609" name="l00609"></a><span class="lineno"> 609</span> </div>
<div class="line"><a id="l00610" name="l00610"></a><span class="lineno"> 610</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span>... T&gt;</div>
<div class="line"><a id="l00611" name="l00611"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#af89751d79339f3e4d9318ea97d64d114"> 611</a></span><span class="keyword">using </span><a class="code hl_typedef" href="namespacemlx_1_1core.html#af89751d79339f3e4d9318ea97d64d114">enable_for_arrays_t</a> = <span class="keyword">typename</span> std::enable_if_t&lt;<a class="code hl_variable" href="namespacemlx_1_1core.html#a94c1057929b390e5613304afa16dfbda">is_arrays_v</a>&lt;T...&gt;&gt;;</div>
<div class="line"><a id="l00612" name="l00612"></a><span class="lineno"> 612</span> </div>
<div class="line"><a id="l00613" name="l00613"></a><span class="lineno"> 613</span>} <span class="comment">// namespace mlx::core</span></div>
<div class="ttc" id="aallocator_8h_html"><div class="ttname"><a href="allocator_8h.html">allocator.h</a></div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_event_html"><div class="ttname"><a href="classmlx_1_1core_1_1_event.html">mlx::core::Event</a></div><div class="ttdef"><b>Definition</b> event.h:11</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_primitive_html"><div class="ttname"><a href="classmlx_1_1core_1_1_primitive.html">mlx::core::Primitive</a></div><div class="ttdef"><b>Definition</b> primitives.h:48</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1allocator_1_1_allocator_html_a2adf9a9c968f113dde830cc0dc27dcc6"><div class="ttname"><a href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a2adf9a9c968f113dde830cc0dc27dcc6">mlx::core::allocator::Allocator::size</a></div><div class="ttdeci">virtual size_t size(Buffer buffer) const =0</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1allocator_1_1_buffer_html"><div class="ttname"><a href="classmlx_1_1core_1_1allocator_1_1_buffer.html">mlx::core::allocator::Buffer</a></div><div class="ttdef"><b>Definition</b> allocator.h:12</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html"><div class="ttname"><a href="classmlx_1_1core_1_1array.html">mlx::core::array</a></div><div class="ttdef"><b>Definition</b> array.h:20</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a000c3cfe13cb378bf0523b62816190da"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a000c3cfe13cb378bf0523b62816190da">mlx::core::array::attach_event</a></div><div class="ttdeci">void attach_event(Event e) const</div><div class="ttdef"><b>Definition</b> array.h:389</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a0a20a6065ae71b64c1e3aa22a45fd8a1"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a0a20a6065ae71b64c1e3aa22a45fd8a1">mlx::core::array::flags</a></div><div class="ttdeci">const Flags &amp; flags() const</div><div class="ttdoc">Get the Flags bit-field.</div><div class="ttdef"><b>Definition</b> array.h:302</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a0a8e4d6e67e739a712876bb36f88f9bf"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a0a8e4d6e67e739a712876bb36f88f9bf">mlx::core::array::event</a></div><div class="ttdeci">Event &amp; event() const</div><div class="ttdef"><b>Definition</b> array.h:384</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a1173db4e23f5a8230911cb8fba45d5e6"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a1173db4e23f5a8230911cb8fba45d5e6">mlx::core::array::make_arrays</a></div><div class="ttdeci">static std::vector&lt; array &gt; make_arrays(std::vector&lt; std::vector&lt; int &gt; &gt; shapes, const std::vector&lt; Dtype &gt; &amp;dtypes, const std::shared_ptr&lt; Primitive &gt; &amp;primitive, const std::vector&lt; array &gt; &amp;inputs)</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a186cf2648da92584d5c1c8b24e69629b"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a186cf2648da92584d5c1c8b24e69629b">mlx::core::array::strides</a></div><div class="ttdeci">const std::vector&lt; size_t &gt; &amp; strides() const</div><div class="ttdoc">The strides of the array.</div><div class="ttdef"><b>Definition</b> array.h:113</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a199726612fa8a4bcd5c2d05eadad7078"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078">mlx::core::array::Status</a></div><div class="ttdeci">Status</div><div class="ttdef"><b>Definition</b> array.h:347</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a199726612fa8a4bcd5c2d05eadad7078a308bd3e5bf976888b120dd36d0c2d2ae"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078a308bd3e5bf976888b120dd36d0c2d2ae">mlx::core::array::available</a></div><div class="ttdeci">@ available</div><div class="ttdef"><b>Definition</b> array.h:365</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a199726612fa8a4bcd5c2d05eadad7078a6fc3d7595445dd877584495f47535268"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078a6fc3d7595445dd877584495f47535268">mlx::core::array::evaluated</a></div><div class="ttdeci">@ evaluated</div><div class="ttdef"><b>Definition</b> array.h:360</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a199726612fa8a4bcd5c2d05eadad7078ae8a9988458b0355001674020a45656fb"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078ae8a9988458b0355001674020a45656fb">mlx::core::array::unscheduled</a></div><div class="ttdeci">@ unscheduled</div><div class="ttdef"><b>Definition</b> array.h:350</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a199726612fa8a4bcd5c2d05eadad7078af8a6f8eed2395ab89a758dec434393ae"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078af8a6f8eed2395ab89a758dec434393ae">mlx::core::array::scheduled</a></div><div class="ttdeci">@ scheduled</div><div class="ttdef"><b>Definition</b> array.h:355</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a2112af5fba37b3135cd2e6ac9e851606"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a2112af5fba37b3135cd2e6ac9e851606">mlx::core::array::set_data</a></div><div class="ttdeci">void set_data(allocator::Buffer buffer, size_t data_size, std::vector&lt; size_t &gt; strides, Flags flags, deleter_t d=allocator::free)</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a2820c45188071a22175e9fa42e10a49a"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a2820c45188071a22175e9fa42e10a49a">mlx::core::array::eval</a></div><div class="ttdeci">void eval()</div><div class="ttdoc">Evaluate the array.</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a28df7a333d90a311c49bc4bce7a1ad6d"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a28df7a333d90a311c49bc4bce7a1ad6d">mlx::core::array::copy_shared_buffer</a></div><div class="ttdeci">void copy_shared_buffer(const array &amp;other, const std::vector&lt; size_t &gt; &amp;strides, Flags flags, size_t data_size, size_t offset=0)</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a2913abcdf71826827c8457f529825fff"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a2913abcdf71826827c8457f529825fff">mlx::core::array::inputs</a></div><div class="ttdeci">const std::vector&lt; array &gt; &amp; inputs() const</div><div class="ttdoc">The array's inputs.</div><div class="ttdef"><b>Definition</b> array.h:258</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a297df274e2da5cb884257bbeffd6b187"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a297df274e2da5cb884257bbeffd6b187">mlx::core::array::array</a></div><div class="ttdeci">array(const array &amp;other)=default</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a2c186fd527f984f0589d4183b4976289"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a2c186fd527f984f0589d4183b4976289">mlx::core::array::outputs</a></div><div class="ttdeci">std::vector&lt; array &gt; outputs() const</div><div class="ttdoc">The outputs of the array's primitive (i.e.</div><div class="ttdef"><b>Definition</b> array.h:288</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a2f16c1ef8ee248d2fba95520c86dfad2"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a2f16c1ef8ee248d2fba95520c86dfad2">mlx::core::array::~array</a></div><div class="ttdeci">~array()</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a387b67cd3ef5cfc1e749c371766c4a05"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a387b67cd3ef5cfc1e749c371766c4a05">mlx::core::array::nbytes</a></div><div class="ttdeci">size_t nbytes() const</div><div class="ttdoc">The number of bytes in the array.</div><div class="ttdef"><b>Definition</b> array.h:89</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a38d7ad605f8282e5e49d0c09e0555c78"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a38d7ad605f8282e5e49d0c09e0555c78">mlx::core::array::move_shared_buffer</a></div><div class="ttdeci">void move_shared_buffer(array other)</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a46642301da11e3eb4312c37349fbc9d7"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a46642301da11e3eb4312c37349fbc9d7">mlx::core::array::array</a></div><div class="ttdeci">array(std::initializer_list&lt; float &gt; data)</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a4677a404b5d191af20b52649225de087"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a4677a404b5d191af20b52649225de087">mlx::core::array::is_donatable</a></div><div class="ttdeci">bool is_donatable() const</div><div class="ttdoc">True indicates the arrays buffer is safe to reuse.</div><div class="ttdef"><b>Definition</b> array.h:267</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a4a2a2c8a4a5beafd723fc13f2055d55d"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a4a2a2c8a4a5beafd723fc13f2055d55d">mlx::core::array::shape</a></div><div class="ttdeci">const std::vector&lt; int &gt; &amp; shape() const</div><div class="ttdoc">The shape of the array as a vector of integers.</div><div class="ttdef"><b>Definition</b> array.h:99</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a5119cd616ec3c05d65878944b8889469"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a5119cd616ec3c05d65878944b8889469">mlx::core::array::primitive_ptr</a></div><div class="ttdeci">std::shared_ptr&lt; Primitive &gt; &amp; primitive_ptr() const</div><div class="ttdoc">A shared pointer to the array's primitive.</div><div class="ttdef"><b>Definition</b> array.h:248</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a51ed0c45666264dc172d06fba159eb8f"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a51ed0c45666264dc172d06fba159eb8f">mlx::core::array::shape</a></div><div class="ttdeci">int shape(int dim) const</div><div class="ttdoc">Get the size of the corresponding dimension.</div><div class="ttdef"><b>Definition</b> array.h:108</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a53006e77d13d9d88b525ef577748939f"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a53006e77d13d9d88b525ef577748939f">mlx::core::array::ndim</a></div><div class="ttdeci">size_t ndim() const</div><div class="ttdoc">The number of dimensions of the array.</div><div class="ttdef"><b>Definition</b> array.h:94</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a598f87161926d9e0b516860f0ea2c8f6"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">mlx::core::array::size</a></div><div class="ttdeci">size_t size() const</div><div class="ttdoc">The number of elements in the array.</div><div class="ttdef"><b>Definition</b> array.h:84</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a5b5f562ff14c150842cb61628e531663"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a5b5f562ff14c150842cb61628e531663">mlx::core::array::array</a></div><div class="ttdeci">array(allocator::Buffer data, std::vector&lt; int &gt; shape, Dtype dtype, deleter_t deleter=allocator::free)</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a5c89c2406a610b32943955f9a5060fbd"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a5c89c2406a610b32943955f9a5060fbd">mlx::core::array::operator=</a></div><div class="ttdeci">array &amp; operator=(array &amp;&amp;other) &amp;&amp;=delete</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a5da41aabecf4c8055b7515341bf57147"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a5da41aabecf4c8055b7515341bf57147">mlx::core::array::operator=</a></div><div class="ttdeci">array &amp; operator=(const array &amp;other) &amp;</div><div class="ttdef"><b>Definition</b> array.h:71</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a5daf64552fb450825c9b382f3a5fa2d4"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a5daf64552fb450825c9b382f3a5fa2d4">mlx::core::array::end</a></div><div class="ttdeci">ArrayIterator end() const</div><div class="ttdef"><b>Definition</b> array.h:176</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a5e1812029394bfb1a706c83611286f49"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a5e1812029394bfb1a706c83611286f49">mlx::core::array::array</a></div><div class="ttdeci">array(std::initializer_list&lt; int &gt; data, Dtype dtype)</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a631acd8e318189640b8338f9ae1a554d"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a631acd8e318189640b8338f9ae1a554d">mlx::core::array::set_data</a></div><div class="ttdeci">void set_data(allocator::Buffer buffer, deleter_t d=allocator::free)</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a634466ce661485394f2fdc3bd6796bcd"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a634466ce661485394f2fdc3bd6796bcd">mlx::core::array::buffer</a></div><div class="ttdeci">const allocator::Buffer &amp; buffer() const</div><div class="ttdef"><b>Definition</b> array.h:323</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a63598018999b49f1340b183cb303f05c"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a63598018999b49f1340b183cb303f05c">mlx::core::array::set_status</a></div><div class="ttdeci">void set_status(Status s) const</div><div class="ttdef"><b>Definition</b> array.h:379</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a648592006f1c92287734ba2428eaa45e"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a648592006f1c92287734ba2428eaa45e">mlx::core::array::wait</a></div><div class="ttdeci">void wait()</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a6db4b8c28c767cc16ad2785ece496dca"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a6db4b8c28c767cc16ad2785ece496dca">mlx::core::array::array</a></div><div class="ttdeci">array(const std::complex&lt; float &gt; &amp;val, Dtype dtype=complex64)</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a7102659be87e9ef62966696ab9b07dad"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a7102659be87e9ef62966696ab9b07dad">mlx::core::array::status</a></div><div class="ttdeci">Status status() const</div><div class="ttdef"><b>Definition</b> array.h:375</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a7263f23e70a580a9bc2129fbcde36e6c"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a7263f23e70a580a9bc2129fbcde36e6c">mlx::core::array::siblings</a></div><div class="ttdeci">std::vector&lt; array &gt; &amp; siblings()</div><div class="ttdoc">The array's siblings.</div><div class="ttdef"><b>Definition</b> array.h:277</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a72e3ce6c03fefe272cadf214bd127b95"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">mlx::core::array::data</a></div><div class="ttdeci">T * data()</div><div class="ttdef"><b>Definition</b> array.h:338</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a75fac72da3ce214fa3737df92a64b232"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a75fac72da3ce214fa3737df92a64b232">mlx::core::array::array</a></div><div class="ttdeci">array(T val, Dtype dtype=TypeToDtype&lt; T &gt;())</div><div class="ttdoc">Construct a scalar array with zero dimensions.</div><div class="ttdef"><b>Definition</b> array.h:497</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a76b258b169d7d73419ebbf85340fb914"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a76b258b169d7d73419ebbf85340fb914">mlx::core::array::begin</a></div><div class="ttdeci">ArrayIterator begin() const</div><div class="ttdef"><b>Definition</b> array.h:173</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a790548666511d8c6d9f92ee79d2ce14c"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a790548666511d8c6d9f92ee79d2ce14c">mlx::core::array::primitive</a></div><div class="ttdeci">Primitive &amp; primitive() const</div><div class="ttdoc">The array's primitive.</div><div class="ttdef"><b>Definition</b> array.h:243</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a84948c29df8c957904919c8602692bd2"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a84948c29df8c957904919c8602692bd2">mlx::core::array::detach</a></div><div class="ttdeci">void detach()</div><div class="ttdoc">Detach the array from the graph.</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a8acf2b4c75f9b7f79da6675dbc36cf36"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a8acf2b4c75f9b7f79da6675dbc36cf36">mlx::core::array::operator=</a></div><div class="ttdeci">array &amp; operator=(const array &amp;other) &amp;&amp;=delete</div><div class="ttdoc">Assignment to rvalue does not compile.</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a8fccbe7a4edfd8cca168161124e263b1"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a8fccbe7a4edfd8cca168161124e263b1">mlx::core::array::set_siblings</a></div><div class="ttdeci">void set_siblings(std::vector&lt; array &gt; siblings, uint16_t position)</div><div class="ttdef"><b>Definition</b> array.h:281</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a90c5afddc2fa3028c0f8099bd64c8a99"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a90c5afddc2fa3028c0f8099bd64c8a99">mlx::core::array::item</a></div><div class="ttdeci">T item()</div><div class="ttdoc">Get the value from a scalar array.</div><div class="ttdef"><b>Definition</b> array.h:535</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a914577c63755b2e862d2da68bbf8e3dd"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a914577c63755b2e862d2da68bbf8e3dd">mlx::core::array::buffer_size</a></div><div class="ttdeci">size_t buffer_size() const</div><div class="ttdef"><b>Definition</b> array.h:327</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a919f850ca087d1c40aa68f854cb30be2"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a919f850ca087d1c40aa68f854cb30be2">mlx::core::array::strides</a></div><div class="ttdeci">size_t strides(int dim) const</div><div class="ttdoc">Get the stride of the corresponding dimension.</div><div class="ttdef"><b>Definition</b> array.h:122</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a92974c656c35a972ad241f80584bbd29"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a92974c656c35a972ad241f80584bbd29">mlx::core::array::copy_shared_buffer</a></div><div class="ttdeci">void copy_shared_buffer(const array &amp;other)</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a95e6b156c8e05439f076b85c05079387"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a95e6b156c8e05439f076b85c05079387">mlx::core::array::overwrite_descriptor</a></div><div class="ttdeci">void overwrite_descriptor(const array &amp;other)</div><div class="ttdef"><b>Definition</b> array.h:427</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a99fb28eeab39b9f429373f8bd7557676"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a99fb28eeab39b9f429373f8bd7557676">mlx::core::array::data</a></div><div class="ttdeci">const T * data() const</div><div class="ttdef"><b>Definition</b> array.h:343</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_aa5aceab15241e7826cbaf8b8a41440c1"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#aa5aceab15241e7826cbaf8b8a41440c1">mlx::core::array::has_primitive</a></div><div class="ttdeci">bool has_primitive() const</div><div class="ttdoc">Check if the array has an attached primitive or is a leaf node.</div><div class="ttdef"><b>Definition</b> array.h:253</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_ab3daf04c27c4593d9d73c397b8484a08"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#ab3daf04c27c4593d9d73c397b8484a08">mlx::core::array::buffer</a></div><div class="ttdeci">allocator::Buffer &amp; buffer()</div><div class="ttdef"><b>Definition</b> array.h:320</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_ab6cbccbba66cc54acda4390b19f0397c"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#ab6cbccbba66cc54acda4390b19f0397c">mlx::core::array::array</a></div><div class="ttdeci">array(array &amp;&amp;other)=default</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_ab84c792117e29cdf90ef3433303f6141"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#ab84c792117e29cdf90ef3433303f6141">mlx::core::array::data_shared_ptr</a></div><div class="ttdeci">std::shared_ptr&lt; Data &gt; data_shared_ptr() const</div><div class="ttdef"><b>Definition</b> array.h:333</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_acce00db63e0f3d80f797b02397ade836"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#acce00db63e0f3d80f797b02397ade836">mlx::core::array::move_shared_buffer</a></div><div class="ttdeci">void move_shared_buffer(array other, const std::vector&lt; size_t &gt; &amp;strides, Flags flags, size_t data_size, size_t offset=0)</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_acf80fde8f743f65ad5b4be69fcb7a74d"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#acf80fde8f743f65ad5b4be69fcb7a74d">mlx::core::array::siblings</a></div><div class="ttdeci">const std::vector&lt; array &gt; &amp; siblings() const</div><div class="ttdoc">The array's siblings.</div><div class="ttdef"><b>Definition</b> array.h:272</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_acffb082177f9b78f0c52e406adff972f"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#acffb082177f9b78f0c52e406adff972f">mlx::core::array::inputs</a></div><div class="ttdeci">std::vector&lt; array &gt; &amp; inputs()</div><div class="ttdef"><b>Definition</b> array.h:262</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_ad3277ff68f1336aa217f9cbe40181479"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#ad3277ff68f1336aa217f9cbe40181479">mlx::core::array::operator=</a></div><div class="ttdeci">array &amp; operator=(array &amp;&amp;other) &amp;=default</div><div class="ttdoc">Default copy and move constructors otherwise.</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_adaade8f4bb7f8ecc0ba07efb17cd2620"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#adaade8f4bb7f8ecc0ba07efb17cd2620">mlx::core::array::array</a></div><div class="ttdeci">array(std::vector&lt; int &gt; shape, Dtype dtype, std::shared_ptr&lt; Primitive &gt; primitive, std::vector&lt; array &gt; inputs)</div><div class="ttdoc">The following methods should be used with caution.</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_adfa53f3f26bb0f942fb1c67ec8cd5380"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#adfa53f3f26bb0f942fb1c67ec8cd5380">mlx::core::array::id</a></div><div class="ttdeci">std::uintptr_t id() const</div><div class="ttdoc">A unique identifier for an array.</div><div class="ttdef"><b>Definition</b> array.h:199</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_ae29e7d6fbfbea1e5e321a8d1ea3cfacd"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">mlx::core::array::dtype</a></div><div class="ttdeci">Dtype dtype() const</div><div class="ttdoc">Get the arrays data type.</div><div class="ttdef"><b>Definition</b> array.h:127</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_aebed1f37c19197be76105161102a8a40"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#aebed1f37c19197be76105161102a8a40">mlx::core::array::is_available</a></div><div class="ttdeci">bool is_available() const</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_af26e6be1a9e6239471a4c24310c0c7c8"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#af26e6be1a9e6239471a4c24310c0c7c8">mlx::core::array::set_tracer</a></div><div class="ttdeci">void set_tracer(bool is_tracer)</div><div class="ttdef"><b>Definition</b> array.h:394</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_af329d9432c92de87cbaa2de8454eefc0"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#af329d9432c92de87cbaa2de8454eefc0">mlx::core::array::itemsize</a></div><div class="ttdeci">size_t itemsize() const</div><div class="ttdoc">The size of the array's datatype in bytes.</div><div class="ttdef"><b>Definition</b> array.h:79</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_af5ad83605d4eea81561246873bee1d7c"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#af5ad83605d4eea81561246873bee1d7c">mlx::core::array::primitive_id</a></div><div class="ttdeci">std::uintptr_t primitive_id() const</div><div class="ttdoc">A unique identifier for an arrays primitive.</div><div class="ttdef"><b>Definition</b> array.h:204</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_af9acb115019b995354d366c4ac6b968c"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#af9acb115019b995354d366c4ac6b968c">mlx::core::array::is_tracer</a></div><div class="ttdeci">bool is_tracer() const</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_afaf2a370fa35d96af1b27a4b814e3bfd"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#afaf2a370fa35d96af1b27a4b814e3bfd">mlx::core::array::data_size</a></div><div class="ttdeci">size_t data_size() const</div><div class="ttdoc">The size (in elements) of the underlying buffer the array points to.</div><div class="ttdef"><b>Definition</b> array.h:316</div></div>
<div class="ttc" id="adtype_8h_html"><div class="ttname"><a href="dtype_8h.html">dtype.h</a></div></div>
<div class="ttc" id="aevent_8h_html"><div class="ttname"><a href="event_8h.html">event.h</a></div></div>
<div class="ttc" id="agroup__ops_html_ga2a466024f8061febc0a64be557644cb0"><div class="ttname"><a href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">mlx::core::std</a></div><div class="ttdeci">array std(const array &amp;a, bool keepdims, int ddof=0, StreamOrDevice s={})</div><div class="ttdoc">Computes the standard deviation of the elements of an array.</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1allocator_html_a560d10a166e3c294f3757166f9bd6801"><div class="ttname"><a href="namespacemlx_1_1core_1_1allocator.html#a560d10a166e3c294f3757166f9bd6801">mlx::core::allocator::malloc</a></div><div class="ttdeci">Buffer malloc(size_t size)</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1allocator_html_a77f0a1215be242db6485612bcb273af5"><div class="ttname"><a href="namespacemlx_1_1core_1_1allocator.html#a77f0a1215be242db6485612bcb273af5">mlx::core::allocator::free</a></div><div class="ttdeci">void free(Buffer buffer)</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1allocator_html_aa23e2f20a336d0b159c097087194634e"><div class="ttname"><a href="namespacemlx_1_1core_1_1allocator.html#aa23e2f20a336d0b159c097087194634e">mlx::core::allocator::allocator</a></div><div class="ttdeci">Allocator &amp; allocator()</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html"><div class="ttname"><a href="namespacemlx_1_1core.html">mlx::core</a></div><div class="ttdef"><b>Definition</b> allocator.h:7</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a01b0d64a75dfa2e95d6c7b5c53d708af"><div class="ttname"><a href="namespacemlx_1_1core.html#a01b0d64a75dfa2e95d6c7b5c53d708af">mlx::core::is_array_v</a></div><div class="ttdeci">constexpr bool is_array_v</div><div class="ttdef"><b>Definition</b> array.h:604</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a113d2bac7e4aa6a4cb4a5c3242527b82"><div class="ttname"><a href="namespacemlx_1_1core.html#a113d2bac7e4aa6a4cb4a5c3242527b82">mlx::core::bool_</a></div><div class="ttdeci">constexpr Dtype bool_</div><div class="ttdef"><b>Definition</b> dtype.h:67</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a1e6cec03ebd80fd2d6b12b288367bfa8"><div class="ttname"><a href="namespacemlx_1_1core.html#a1e6cec03ebd80fd2d6b12b288367bfa8">mlx::core::deleter_t</a></div><div class="ttdeci">std::function&lt; void(allocator::Buffer)&gt; deleter_t</div><div class="ttdef"><b>Definition</b> array.h:18</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a1f42e3dd4787d2ecec7114a12daefec8"><div class="ttname"><a href="namespacemlx_1_1core.html#a1f42e3dd4787d2ecec7114a12daefec8">mlx::core::uint64</a></div><div class="ttdeci">constexpr Dtype uint64</div><div class="ttdef"><b>Definition</b> dtype.h:72</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a312a70c487366968af5e6cbf5038c812"><div class="ttname"><a href="namespacemlx_1_1core.html#a312a70c487366968af5e6cbf5038c812">mlx::core::uint16</a></div><div class="ttdeci">constexpr Dtype uint16</div><div class="ttdef"><b>Definition</b> dtype.h:70</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a514cf8b4e6f0a6af3a867e752f4338f7"><div class="ttname"><a href="namespacemlx_1_1core.html#a514cf8b4e6f0a6af3a867e752f4338f7">mlx::core::bfloat16</a></div><div class="ttdeci">constexpr Dtype bfloat16</div><div class="ttdef"><b>Definition</b> dtype.h:81</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a5d6373aad1444edc9de1eb07bfe5cad3"><div class="ttname"><a href="namespacemlx_1_1core.html#a5d6373aad1444edc9de1eb07bfe5cad3">mlx::core::int32</a></div><div class="ttdeci">constexpr Dtype int32</div><div class="ttdef"><b>Definition</b> dtype.h:76</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a6894543b340321193dfb8052c438a319"><div class="ttname"><a href="namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319">mlx::core::float32</a></div><div class="ttdeci">constexpr Dtype float32</div><div class="ttdef"><b>Definition</b> dtype.h:80</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a71ebba4ad1afa730962f0692c4f42f07"><div class="ttname"><a href="namespacemlx_1_1core.html#a71ebba4ad1afa730962f0692c4f42f07">mlx::core::int16</a></div><div class="ttdeci">constexpr Dtype int16</div><div class="ttdef"><b>Definition</b> dtype.h:75</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a892e934e146dd938d144cee8813ca672"><div class="ttname"><a href="namespacemlx_1_1core.html#a892e934e146dd938d144cee8813ca672">mlx::core::int8</a></div><div class="ttdeci">constexpr Dtype int8</div><div class="ttdef"><b>Definition</b> dtype.h:74</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a9019bdc191054ada0a502c7c34cef5b8"><div class="ttname"><a href="namespacemlx_1_1core.html#a9019bdc191054ada0a502c7c34cef5b8">mlx::core::int64</a></div><div class="ttdeci">constexpr Dtype int64</div><div class="ttdef"><b>Definition</b> dtype.h:77</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a94c1057929b390e5613304afa16dfbda"><div class="ttname"><a href="namespacemlx_1_1core.html#a94c1057929b390e5613304afa16dfbda">mlx::core::is_arrays_v</a></div><div class="ttdeci">constexpr bool is_arrays_v</div><div class="ttdef"><b>Definition</b> array.h:608</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a9778d50afbf456b0bd738751243b3b68"><div class="ttname"><a href="namespacemlx_1_1core.html#a9778d50afbf456b0bd738751243b3b68">mlx::core::uint8</a></div><div class="ttdeci">constexpr Dtype uint8</div><div class="ttdef"><b>Definition</b> dtype.h:69</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_abf228ee9d8ec48c03bb15adcc4e1f3ec"><div class="ttname"><a href="namespacemlx_1_1core.html#abf228ee9d8ec48c03bb15adcc4e1f3ec">mlx::core::float16</a></div><div class="ttdeci">constexpr Dtype float16</div><div class="ttdef"><b>Definition</b> dtype.h:79</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_ac63820d6fe10545907c33faf466a929e"><div class="ttname"><a href="namespacemlx_1_1core.html#ac63820d6fe10545907c33faf466a929e">mlx::core::uint32</a></div><div class="ttdeci">constexpr Dtype uint32</div><div class="ttdef"><b>Definition</b> dtype.h:71</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_add4794cc0ffe5d717fc146084a235d95"><div class="ttname"><a href="namespacemlx_1_1core.html#add4794cc0ffe5d717fc146084a235d95">mlx::core::size_of</a></div><div class="ttdeci">uint8_t size_of(const Dtype &amp;t)</div><div class="ttdef"><b>Definition</b> dtype.h:102</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_af89751d79339f3e4d9318ea97d64d114"><div class="ttname"><a href="namespacemlx_1_1core.html#af89751d79339f3e4d9318ea97d64d114">mlx::core::enable_for_arrays_t</a></div><div class="ttdeci">typename std::enable_if_t&lt; is_arrays_v&lt; T... &gt; &gt; enable_for_arrays_t</div><div class="ttdef"><b>Definition</b> array.h:611</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_af99db87e0078bfcdb383f5689bc874d4"><div class="ttname"><a href="namespacemlx_1_1core.html#af99db87e0078bfcdb383f5689bc874d4">mlx::core::complex64</a></div><div class="ttdeci">constexpr Dtype complex64</div><div class="ttdef"><b>Definition</b> dtype.h:82</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html">mlx::core::Dtype</a></div><div class="ttdef"><b>Definition</b> dtype.h:13</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_type_to_dtype_html"><div class="ttname"><a href="structmlx_1_1core_1_1_type_to_dtype.html">mlx::core::TypeToDtype</a></div><div class="ttdef"><b>Definition</b> dtype.h:109</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1array_1_1_array_iterator_html"><div class="ttname"><a href="structmlx_1_1core_1_1array_1_1_array_iterator.html">mlx::core::array::ArrayIterator</a></div><div class="ttdef"><b>Definition</b> array.h:141</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1array_1_1_array_iterator_html_a153756072fda6d3e53bcca11b46a1238"><div class="ttname"><a href="structmlx_1_1core_1_1array_1_1_array_iterator.html#a153756072fda6d3e53bcca11b46a1238">mlx::core::array::ArrayIterator::operator*</a></div><div class="ttdeci">reference operator*() const</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1array_1_1_array_iterator_html_a1afd6d2a19a2b0d712063f221ab4eba7"><div class="ttname"><a href="structmlx_1_1core_1_1array_1_1_array_iterator.html#a1afd6d2a19a2b0d712063f221ab4eba7">mlx::core::array::ArrayIterator::operator==</a></div><div class="ttdeci">friend bool operator==(const ArrayIterator &amp;a, const ArrayIterator &amp;b)</div><div class="ttdef"><b>Definition</b> array.h:161</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1array_1_1_array_iterator_html_a2cbf481e39164245668b3be6cbcc614d"><div class="ttname"><a href="structmlx_1_1core_1_1array_1_1_array_iterator.html#a2cbf481e39164245668b3be6cbcc614d">mlx::core::array::ArrayIterator::iterator_category</a></div><div class="ttdeci">std::random_access_iterator_tag iterator_category</div><div class="ttdef"><b>Definition</b> array.h:142</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1array_1_1_array_iterator_html_a3efe69356a84d0d4438f033992fcbd9d"><div class="ttname"><a href="structmlx_1_1core_1_1array_1_1_array_iterator.html#a3efe69356a84d0d4438f033992fcbd9d">mlx::core::array::ArrayIterator::operator++</a></div><div class="ttdeci">ArrayIterator &amp; operator++()</div><div class="ttdef"><b>Definition</b> array.h:156</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1array_1_1_array_iterator_html_a971aa511ab2e7ae1caae09556643a0bd"><div class="ttname"><a href="structmlx_1_1core_1_1array_1_1_array_iterator.html#a971aa511ab2e7ae1caae09556643a0bd">mlx::core::array::ArrayIterator::operator!=</a></div><div class="ttdeci">friend bool operator!=(const ArrayIterator &amp;a, const ArrayIterator &amp;b)</div><div class="ttdef"><b>Definition</b> array.h:164</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1array_1_1_array_iterator_html_ad3afcb24c6db7642bbc06835f7f3e27a"><div class="ttname"><a href="structmlx_1_1core_1_1array_1_1_array_iterator.html#ad3afcb24c6db7642bbc06835f7f3e27a">mlx::core::array::ArrayIterator::ArrayIterator</a></div><div class="ttdeci">ArrayIterator(const array &amp;arr, int idx=0)</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1array_1_1_array_iterator_html_adcee44c77980fc2370a2c31e203aead5"><div class="ttname"><a href="structmlx_1_1core_1_1array_1_1_array_iterator.html#adcee44c77980fc2370a2c31e203aead5">mlx::core::array::ArrayIterator::difference_type</a></div><div class="ttdeci">size_t difference_type</div><div class="ttdef"><b>Definition</b> array.h:143</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1array_1_1_array_iterator_html_ae24fe304397e961687d0d4c7012b8ae4"><div class="ttname"><a href="structmlx_1_1core_1_1array_1_1_array_iterator.html#ae24fe304397e961687d0d4c7012b8ae4">mlx::core::array::ArrayIterator::value_type</a></div><div class="ttdeci">const array value_type</div><div class="ttdef"><b>Definition</b> array.h:144</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1array_1_1_array_iterator_html_ae2adde594b5a4853f6bc78263a957d85"><div class="ttname"><a href="structmlx_1_1core_1_1array_1_1_array_iterator.html#ae2adde594b5a4853f6bc78263a957d85">mlx::core::array::ArrayIterator::operator+</a></div><div class="ttdeci">ArrayIterator &amp; operator+(difference_type diff)</div><div class="ttdef"><b>Definition</b> array.h:151</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1array_1_1_data_html"><div class="ttname"><a href="structmlx_1_1core_1_1array_1_1_data.html">mlx::core::array::Data</a></div><div class="ttdef"><b>Definition</b> array.h:208</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1array_1_1_data_html_a1cf69d9709206578c4e87e9c1daad5e1"><div class="ttname"><a href="structmlx_1_1core_1_1array_1_1_data.html#a1cf69d9709206578c4e87e9c1daad5e1">mlx::core::array::Data::~Data</a></div><div class="ttdeci">~Data()</div><div class="ttdef"><b>Definition</b> array.h:216</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1array_1_1_data_html_a25f52ac67912a49bb6e2b6715aa65311"><div class="ttname"><a href="structmlx_1_1core_1_1array_1_1_data.html#a25f52ac67912a49bb6e2b6715aa65311">mlx::core::array::Data::d</a></div><div class="ttdeci">deleter_t d</div><div class="ttdef"><b>Definition</b> array.h:210</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1array_1_1_data_html_a50f242040b123052e48e18c244ff70fc"><div class="ttname"><a href="structmlx_1_1core_1_1array_1_1_data.html#a50f242040b123052e48e18c244ff70fc">mlx::core::array::Data::Data</a></div><div class="ttdeci">Data(const Data &amp;d)=delete</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1array_1_1_data_html_a68e9417954fe811b5e41e6317a526748"><div class="ttname"><a href="structmlx_1_1core_1_1array_1_1_data.html#a68e9417954fe811b5e41e6317a526748">mlx::core::array::Data::operator=</a></div><div class="ttdeci">Data &amp; operator=(const Data &amp;d)=delete</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1array_1_1_data_html_a77e2ea35fac1d54e4062468a432e1482"><div class="ttname"><a href="structmlx_1_1core_1_1array_1_1_data.html#a77e2ea35fac1d54e4062468a432e1482">mlx::core::array::Data::Data</a></div><div class="ttdeci">Data(allocator::Buffer buffer, deleter_t d=allocator::free)</div><div class="ttdef"><b>Definition</b> array.h:211</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1array_1_1_data_html_a9a51e2d12ba505027cc0fca86bdd39ad"><div class="ttname"><a href="structmlx_1_1core_1_1array_1_1_data.html#a9a51e2d12ba505027cc0fca86bdd39ad">mlx::core::array::Data::buffer</a></div><div class="ttdeci">allocator::Buffer buffer</div><div class="ttdef"><b>Definition</b> array.h:209</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1array_1_1_flags_html"><div class="ttname"><a href="structmlx_1_1core_1_1array_1_1_flags.html">mlx::core::array::Flags</a></div><div class="ttdef"><b>Definition</b> array.h:221</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1array_1_1_flags_html_a3170fa381dc7a90f6eabcc029bdf9bfd"><div class="ttname"><a href="structmlx_1_1core_1_1array_1_1_flags.html#a3170fa381dc7a90f6eabcc029bdf9bfd">mlx::core::array::Flags::row_contiguous</a></div><div class="ttdeci">bool row_contiguous</div><div class="ttdef"><b>Definition</b> array.h:233</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1array_1_1_flags_html_ae24709026598d635e6b5c24a15f8a802"><div class="ttname"><a href="structmlx_1_1core_1_1array_1_1_flags.html#ae24709026598d635e6b5c24a15f8a802">mlx::core::array::Flags::col_contiguous</a></div><div class="ttdeci">bool col_contiguous</div><div class="ttdef"><b>Definition</b> array.h:239</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1array_1_1_flags_html_afd0ab11e7a486a2a8e50ee84b971ac8a"><div class="ttname"><a href="structmlx_1_1core_1_1array_1_1_flags.html#afd0ab11e7a486a2a8e50ee84b971ac8a">mlx::core::array::Flags::contiguous</a></div><div class="ttdeci">bool contiguous</div><div class="ttdef"><b>Definition</b> array.h:227</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

534
docs/build/html/atomic_8h.html vendored Normal file
View File

@ -0,0 +1,534 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.12.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/metal/kernels/atomic.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">MLX
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.12.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a> </div>
<div class="headertitle"><div class="title">atomic.h File Reference</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;metal_atomic&gt;</code><br />
<code>#include &lt;metal_stdlib&gt;</code><br />
</div>
<p><a href="atomic_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx__atomic.html">mlx_atomic&lt; T, typename &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx__atomic_3_01_t_00_01enable__if__t_3_01is__metal__atomic_3_01_t_01_4_01_4_01_4.html">mlx_atomic&lt; T, enable_if_t&lt; is_metal_atomic&lt; T &gt; &gt; &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a253a4e8c2c5768a069e2791b627dfc99" id="r_a253a4e8c2c5768a069e2791b627dfc99"><td class="memTemplParams" colspan="2">template&lt;typename T , enable_if_t&lt; <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>&lt; T &gt;, bool &gt; = true&gt; </td></tr>
<tr class="memitem:a253a4e8c2c5768a069e2791b627dfc99"><td class="memTemplItemLeft" align="right" valign="top">METAL_FUNC T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a253a4e8c2c5768a069e2791b627dfc99">mlx_atomic_load_explicit</a> (device <a class="el" href="structmlx__atomic.html">mlx_atomic</a>&lt; T &gt; *object, size_t offset)</td></tr>
<tr class="separator:a253a4e8c2c5768a069e2791b627dfc99"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ae453140b0819a4c02f265334de98c0" id="r_a0ae453140b0819a4c02f265334de98c0"><td class="memTemplParams" colspan="2">template&lt;typename T , enable_if_t&lt; <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>&lt; T &gt;, bool &gt; = true&gt; </td></tr>
<tr class="memitem:a0ae453140b0819a4c02f265334de98c0"><td class="memTemplItemLeft" align="right" valign="top">METAL_FUNC void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a0ae453140b0819a4c02f265334de98c0">mlx_atomic_store_explicit</a> (device <a class="el" href="structmlx__atomic.html">mlx_atomic</a>&lt; T &gt; *object, T val, size_t offset)</td></tr>
<tr class="separator:a0ae453140b0819a4c02f265334de98c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a253e3c870c0ddc7c28ab2f6ca2c3eae5" id="r_a253e3c870c0ddc7c28ab2f6ca2c3eae5"><td class="memTemplParams" colspan="2">template&lt;typename T , enable_if_t&lt; <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>&lt; T &gt;, bool &gt; = true&gt; </td></tr>
<tr class="memitem:a253e3c870c0ddc7c28ab2f6ca2c3eae5"><td class="memTemplItemLeft" align="right" valign="top">METAL_FUNC void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a253e3c870c0ddc7c28ab2f6ca2c3eae5">mlx_atomic_fetch_and_explicit</a> (device <a class="el" href="structmlx__atomic.html">mlx_atomic</a>&lt; T &gt; *object, T val, size_t offset)</td></tr>
<tr class="separator:a253e3c870c0ddc7c28ab2f6ca2c3eae5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab7391f197001471e4788312bdb6ab37a" id="r_ab7391f197001471e4788312bdb6ab37a"><td class="memTemplParams" colspan="2">template&lt;typename T , enable_if_t&lt; <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>&lt; T &gt;, bool &gt; = true&gt; </td></tr>
<tr class="memitem:ab7391f197001471e4788312bdb6ab37a"><td class="memTemplItemLeft" align="right" valign="top">METAL_FUNC void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#ab7391f197001471e4788312bdb6ab37a">mlx_atomic_fetch_or_explicit</a> (device <a class="el" href="structmlx__atomic.html">mlx_atomic</a>&lt; T &gt; *object, T val, size_t offset)</td></tr>
<tr class="separator:ab7391f197001471e4788312bdb6ab37a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ec33dca0039bd944d73d1c2b378cc19" id="r_a2ec33dca0039bd944d73d1c2b378cc19"><td class="memTemplParams" colspan="2">template&lt;typename T , enable_if_t&lt; <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>&lt; T &gt;, bool &gt; = true&gt; </td></tr>
<tr class="memitem:a2ec33dca0039bd944d73d1c2b378cc19"><td class="memTemplItemLeft" align="right" valign="top">METAL_FUNC void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a2ec33dca0039bd944d73d1c2b378cc19">mlx_atomic_fetch_min_explicit</a> (device <a class="el" href="structmlx__atomic.html">mlx_atomic</a>&lt; T &gt; *object, T val, size_t offset)</td></tr>
<tr class="separator:a2ec33dca0039bd944d73d1c2b378cc19"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac480f2b459a8ad9095cee353e152d00c" id="r_ac480f2b459a8ad9095cee353e152d00c"><td class="memTemplParams" colspan="2">template&lt;typename T , enable_if_t&lt; <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>&lt; T &gt;, bool &gt; = true&gt; </td></tr>
<tr class="memitem:ac480f2b459a8ad9095cee353e152d00c"><td class="memTemplItemLeft" align="right" valign="top">METAL_FUNC void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#ac480f2b459a8ad9095cee353e152d00c">mlx_atomic_fetch_max_explicit</a> (device <a class="el" href="structmlx__atomic.html">mlx_atomic</a>&lt; T &gt; *object, T val, size_t offset)</td></tr>
<tr class="separator:ac480f2b459a8ad9095cee353e152d00c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad448d9e06e001700b65ca8317216a3b" id="r_aad448d9e06e001700b65ca8317216a3b"><td class="memTemplParams" colspan="2">template&lt;typename T , enable_if_t&lt; <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>&lt; T &gt;, bool &gt; = true&gt; </td></tr>
<tr class="memitem:aad448d9e06e001700b65ca8317216a3b"><td class="memTemplItemLeft" align="right" valign="top">METAL_FUNC void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#aad448d9e06e001700b65ca8317216a3b">mlx_atomic_fetch_add_explicit</a> (device <a class="el" href="structmlx__atomic.html">mlx_atomic</a>&lt; T &gt; *object, T val, size_t offset)</td></tr>
<tr class="separator:aad448d9e06e001700b65ca8317216a3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adfdbea60436f14f1af9ce36e2a0a77a3" id="r_adfdbea60436f14f1af9ce36e2a0a77a3"><td class="memTemplParams" colspan="2">template&lt;typename T , enable_if_t&lt; <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>&lt; T &gt;, bool &gt; = true&gt; </td></tr>
<tr class="memitem:adfdbea60436f14f1af9ce36e2a0a77a3"><td class="memTemplItemLeft" align="right" valign="top">METAL_FUNC void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#adfdbea60436f14f1af9ce36e2a0a77a3">mlx_atomic_fetch_mul_explicit</a> (device <a class="el" href="structmlx__atomic.html">mlx_atomic</a>&lt; T &gt; *object, T val, size_t offset)</td></tr>
<tr class="separator:adfdbea60436f14f1af9ce36e2a0a77a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad7f32327ff66354cfa2f0cfdac79316f" id="r_ad7f32327ff66354cfa2f0cfdac79316f"><td class="memTemplParams" colspan="2">template&lt;typename T , enable_if_t&lt; <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>&lt; T &gt;, bool &gt; = true&gt; </td></tr>
<tr class="memitem:ad7f32327ff66354cfa2f0cfdac79316f"><td class="memTemplItemLeft" align="right" valign="top">METAL_FUNC bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#ad7f32327ff66354cfa2f0cfdac79316f">mlx_atomic_compare_exchange_weak_explicit</a> (device <a class="el" href="structmlx__atomic.html">mlx_atomic</a>&lt; T &gt; *object, thread T *expected, T val, size_t offset)</td></tr>
<tr class="separator:ad7f32327ff66354cfa2f0cfdac79316f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab7d1dc49f319f239b7ee0b7c72976dd0" id="r_ab7d1dc49f319f239b7ee0b7c72976dd0"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:ab7d1dc49f319f239b7ee0b7c72976dd0"><td class="memTemplItemLeft" align="right" valign="top">METAL_FUNC void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#ab7d1dc49f319f239b7ee0b7c72976dd0">mlx_atomic_fetch_min_explicit&lt; float &gt;</a> (device <a class="el" href="structmlx__atomic.html">mlx_atomic</a>&lt; float &gt; *object, float val, size_t offset)</td></tr>
<tr class="separator:ab7d1dc49f319f239b7ee0b7c72976dd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1dce2abfa16417122c4d2bf261129ae4" id="r_a1dce2abfa16417122c4d2bf261129ae4"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:a1dce2abfa16417122c4d2bf261129ae4"><td class="memTemplItemLeft" align="right" valign="top">METAL_FUNC void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a1dce2abfa16417122c4d2bf261129ae4">mlx_atomic_fetch_max_explicit&lt; float &gt;</a> (device <a class="el" href="structmlx__atomic.html">mlx_atomic</a>&lt; float &gt; *object, float val, size_t offset)</td></tr>
<tr class="separator:a1dce2abfa16417122c4d2bf261129ae4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8f47b2e9b95d4b00ad51f08b070deb5" id="r_aa8f47b2e9b95d4b00ad51f08b070deb5"><td class="memTemplParams" colspan="2">template&lt;typename T , enable_if_t&lt;!<a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>&lt; T &gt;, bool &gt; = true&gt; </td></tr>
<tr class="memitem:aa8f47b2e9b95d4b00ad51f08b070deb5"><td class="memTemplItemLeft" align="right" valign="top">METAL_FUNC bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#aa8f47b2e9b95d4b00ad51f08b070deb5">mlx_atomic_compare_exchange_weak_explicit</a> (device <a class="el" href="structmlx__atomic.html">mlx_atomic</a>&lt; T &gt; *object, thread uint *expected, uint val, size_t offset)</td></tr>
<tr class="separator:aa8f47b2e9b95d4b00ad51f08b070deb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="var-members" name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:a91a8bdcae647947a83c6689d7f252d24" id="r_a91a8bdcae647947a83c6689d7f252d24"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a91a8bdcae647947a83c6689d7f252d24"><td class="memTemplItemLeft" align="right" valign="top">constexpr constant bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a></td></tr>
<tr class="separator:a91a8bdcae647947a83c6689d7f252d24"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a id="ad7f32327ff66354cfa2f0cfdac79316f" name="ad7f32327ff66354cfa2f0cfdac79316f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad7f32327ff66354cfa2f0cfdac79316f">&#9670;&#160;</a></span>mlx_atomic_compare_exchange_weak_explicit() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , enable_if_t&lt; <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>&lt; T &gt;, bool &gt; = true&gt; </div>
<table class="memname">
<tr>
<td class="memname">METAL_FUNC bool mlx_atomic_compare_exchange_weak_explicit </td>
<td>(</td>
<td class="paramtype">device <a class="el" href="structmlx__atomic.html">mlx_atomic</a>&lt; T &gt; *</td> <td class="paramname"><span class="paramname"><em>object</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">thread T *</td> <td class="paramname"><span class="paramname"><em>expected</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>val</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t</td> <td class="paramname"><span class="paramname"><em>offset</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="aa8f47b2e9b95d4b00ad51f08b070deb5" name="aa8f47b2e9b95d4b00ad51f08b070deb5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa8f47b2e9b95d4b00ad51f08b070deb5">&#9670;&#160;</a></span>mlx_atomic_compare_exchange_weak_explicit() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , enable_if_t&lt;!<a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>&lt; T &gt;, bool &gt; = true&gt; </div>
<table class="memname">
<tr>
<td class="memname">METAL_FUNC bool mlx_atomic_compare_exchange_weak_explicit </td>
<td>(</td>
<td class="paramtype">device <a class="el" href="structmlx__atomic.html">mlx_atomic</a>&lt; T &gt; *</td> <td class="paramname"><span class="paramname"><em>object</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">thread uint *</td> <td class="paramname"><span class="paramname"><em>expected</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint</td> <td class="paramname"><span class="paramname"><em>val</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t</td> <td class="paramname"><span class="paramname"><em>offset</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="aad448d9e06e001700b65ca8317216a3b" name="aad448d9e06e001700b65ca8317216a3b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aad448d9e06e001700b65ca8317216a3b">&#9670;&#160;</a></span>mlx_atomic_fetch_add_explicit()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , enable_if_t&lt; <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>&lt; T &gt;, bool &gt; = true&gt; </div>
<table class="memname">
<tr>
<td class="memname">METAL_FUNC void mlx_atomic_fetch_add_explicit </td>
<td>(</td>
<td class="paramtype">device <a class="el" href="structmlx__atomic.html">mlx_atomic</a>&lt; T &gt; *</td> <td class="paramname"><span class="paramname"><em>object</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>val</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t</td> <td class="paramname"><span class="paramname"><em>offset</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a253e3c870c0ddc7c28ab2f6ca2c3eae5" name="a253e3c870c0ddc7c28ab2f6ca2c3eae5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a253e3c870c0ddc7c28ab2f6ca2c3eae5">&#9670;&#160;</a></span>mlx_atomic_fetch_and_explicit()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , enable_if_t&lt; <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>&lt; T &gt;, bool &gt; = true&gt; </div>
<table class="memname">
<tr>
<td class="memname">METAL_FUNC void mlx_atomic_fetch_and_explicit </td>
<td>(</td>
<td class="paramtype">device <a class="el" href="structmlx__atomic.html">mlx_atomic</a>&lt; T &gt; *</td> <td class="paramname"><span class="paramname"><em>object</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>val</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t</td> <td class="paramname"><span class="paramname"><em>offset</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ac480f2b459a8ad9095cee353e152d00c" name="ac480f2b459a8ad9095cee353e152d00c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac480f2b459a8ad9095cee353e152d00c">&#9670;&#160;</a></span>mlx_atomic_fetch_max_explicit()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , enable_if_t&lt; <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>&lt; T &gt;, bool &gt; = true&gt; </div>
<table class="memname">
<tr>
<td class="memname">METAL_FUNC void mlx_atomic_fetch_max_explicit </td>
<td>(</td>
<td class="paramtype">device <a class="el" href="structmlx__atomic.html">mlx_atomic</a>&lt; T &gt; *</td> <td class="paramname"><span class="paramname"><em>object</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>val</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t</td> <td class="paramname"><span class="paramname"><em>offset</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a1dce2abfa16417122c4d2bf261129ae4" name="a1dce2abfa16417122c4d2bf261129ae4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1dce2abfa16417122c4d2bf261129ae4">&#9670;&#160;</a></span>mlx_atomic_fetch_max_explicit&lt; float &gt;()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">METAL_FUNC void <a class="el" href="#ac480f2b459a8ad9095cee353e152d00c">mlx_atomic_fetch_max_explicit</a>&lt; float &gt; </td>
<td>(</td>
<td class="paramtype">device <a class="el" href="structmlx__atomic.html">mlx_atomic</a>&lt; float &gt; *</td> <td class="paramname"><span class="paramname"><em>object</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>val</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t</td> <td class="paramname"><span class="paramname"><em>offset</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a2ec33dca0039bd944d73d1c2b378cc19" name="a2ec33dca0039bd944d73d1c2b378cc19"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2ec33dca0039bd944d73d1c2b378cc19">&#9670;&#160;</a></span>mlx_atomic_fetch_min_explicit()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , enable_if_t&lt; <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>&lt; T &gt;, bool &gt; = true&gt; </div>
<table class="memname">
<tr>
<td class="memname">METAL_FUNC void mlx_atomic_fetch_min_explicit </td>
<td>(</td>
<td class="paramtype">device <a class="el" href="structmlx__atomic.html">mlx_atomic</a>&lt; T &gt; *</td> <td class="paramname"><span class="paramname"><em>object</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>val</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t</td> <td class="paramname"><span class="paramname"><em>offset</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ab7d1dc49f319f239b7ee0b7c72976dd0" name="ab7d1dc49f319f239b7ee0b7c72976dd0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab7d1dc49f319f239b7ee0b7c72976dd0">&#9670;&#160;</a></span>mlx_atomic_fetch_min_explicit&lt; float &gt;()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">METAL_FUNC void <a class="el" href="#a2ec33dca0039bd944d73d1c2b378cc19">mlx_atomic_fetch_min_explicit</a>&lt; float &gt; </td>
<td>(</td>
<td class="paramtype">device <a class="el" href="structmlx__atomic.html">mlx_atomic</a>&lt; float &gt; *</td> <td class="paramname"><span class="paramname"><em>object</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>val</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t</td> <td class="paramname"><span class="paramname"><em>offset</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="adfdbea60436f14f1af9ce36e2a0a77a3" name="adfdbea60436f14f1af9ce36e2a0a77a3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adfdbea60436f14f1af9ce36e2a0a77a3">&#9670;&#160;</a></span>mlx_atomic_fetch_mul_explicit()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , enable_if_t&lt; <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>&lt; T &gt;, bool &gt; = true&gt; </div>
<table class="memname">
<tr>
<td class="memname">METAL_FUNC void mlx_atomic_fetch_mul_explicit </td>
<td>(</td>
<td class="paramtype">device <a class="el" href="structmlx__atomic.html">mlx_atomic</a>&lt; T &gt; *</td> <td class="paramname"><span class="paramname"><em>object</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>val</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t</td> <td class="paramname"><span class="paramname"><em>offset</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ab7391f197001471e4788312bdb6ab37a" name="ab7391f197001471e4788312bdb6ab37a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab7391f197001471e4788312bdb6ab37a">&#9670;&#160;</a></span>mlx_atomic_fetch_or_explicit()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , enable_if_t&lt; <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>&lt; T &gt;, bool &gt; = true&gt; </div>
<table class="memname">
<tr>
<td class="memname">METAL_FUNC void mlx_atomic_fetch_or_explicit </td>
<td>(</td>
<td class="paramtype">device <a class="el" href="structmlx__atomic.html">mlx_atomic</a>&lt; T &gt; *</td> <td class="paramname"><span class="paramname"><em>object</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>val</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t</td> <td class="paramname"><span class="paramname"><em>offset</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a253a4e8c2c5768a069e2791b627dfc99" name="a253a4e8c2c5768a069e2791b627dfc99"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a253a4e8c2c5768a069e2791b627dfc99">&#9670;&#160;</a></span>mlx_atomic_load_explicit()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , enable_if_t&lt; <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>&lt; T &gt;, bool &gt; = true&gt; </div>
<table class="memname">
<tr>
<td class="memname">METAL_FUNC T mlx_atomic_load_explicit </td>
<td>(</td>
<td class="paramtype">device <a class="el" href="structmlx__atomic.html">mlx_atomic</a>&lt; T &gt; *</td> <td class="paramname"><span class="paramname"><em>object</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t</td> <td class="paramname"><span class="paramname"><em>offset</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a0ae453140b0819a4c02f265334de98c0" name="a0ae453140b0819a4c02f265334de98c0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0ae453140b0819a4c02f265334de98c0">&#9670;&#160;</a></span>mlx_atomic_store_explicit()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , enable_if_t&lt; <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>&lt; T &gt;, bool &gt; = true&gt; </div>
<table class="memname">
<tr>
<td class="memname">METAL_FUNC void mlx_atomic_store_explicit </td>
<td>(</td>
<td class="paramtype">device <a class="el" href="structmlx__atomic.html">mlx_atomic</a>&lt; T &gt; *</td> <td class="paramname"><span class="paramname"><em>object</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>val</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t</td> <td class="paramname"><span class="paramname"><em>offset</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a id="a91a8bdcae647947a83c6689d7f252d24" name="a91a8bdcae647947a83c6689d7f252d24"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a91a8bdcae647947a83c6689d7f252d24">&#9670;&#160;</a></span>is_metal_atomic</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">constant bool is_metal_atomic</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">= _disjunction&lt;</div>
<div class="line"> is_same&lt;T, int&gt;,</div>
<div class="line"> is_same&lt;T, uint&gt;,</div>
<div class="line"> is_same&lt;T, ulong&gt;,</div>
<div class="line"> is_same&lt;T, float&gt;&gt;::value</div>
</div><!-- fragment -->
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

490
docs/build/html/atomic_8h_source.html vendored Normal file
View File

@ -0,0 +1,490 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.12.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/metal/kernels/atomic.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">MLX
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.12.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<div class="header">
<div class="headertitle"><div class="title">atomic.h</div></div>
</div><!--header-->
<div class="contents">
<a href="atomic_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">// Copyright © 2023 Apple Inc.</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span> </div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="preprocessor">#pragma once</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span> </div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#include &lt;metal_atomic&gt;</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#include &lt;metal_stdlib&gt;</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span> </div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="keyword">using namespace </span><a class="code hl_namespace" href="namespacemetal.html">metal</a>;</div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> </div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment">// Atomic utils</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#pragma METAL internals : enable</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"><a class="line" href="atomic_8h.html#a91a8bdcae647947a83c6689d7f252d24"> 16</a></span><span class="keyword">constexpr</span> constant <span class="keywordtype">bool</span> <a class="code hl_variable" href="atomic_8h.html#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a> = _disjunction&lt;</div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> is_same&lt;T, int&gt;,</div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> is_same&lt;T, uint&gt;,</div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> is_same&lt;T, ulong&gt;,</div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> is_same&lt;T, float&gt;&gt;::value;</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> </div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#pragma METAL internals : disable</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keywordtype">void</span>&gt;</div>
<div class="foldopen" id="foldopen00025" data-start="{" data-end="};">
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"><a class="line" href="structmlx__atomic.html"> 25</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx__atomic.html">mlx_atomic</a> {</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"><a class="line" href="structmlx__atomic.html#a6f6651b8dd8149917c50cd99b13c6747"> 26</a></span> atomic&lt;uint&gt; <a class="code hl_variable" href="structmlx__atomic.html#a6f6651b8dd8149917c50cd99b13c6747">val</a>;</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span>};</div>
</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> </div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00030" data-start="{" data-end="};">
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"><a class="line" href="structmlx__atomic_3_01_t_00_01enable__if__t_3_01is__metal__atomic_3_01_t_01_4_01_4_01_4.html"> 30</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx__atomic.html">mlx_atomic</a>&lt;T, enable_if_t&lt;<a class="code hl_variable" href="atomic_8h.html#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>&lt;T&gt;&gt;&gt; {</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"><a class="line" href="structmlx__atomic_3_01_t_00_01enable__if__t_3_01is__metal__atomic_3_01_t_01_4_01_4_01_4.html#a8dbf729fcd8c4a16e41b546c7405543d"> 31</a></span> atomic&lt;T&gt; <a class="code hl_variable" href="structmlx__atomic_3_01_t_00_01enable__if__t_3_01is__metal__atomic_3_01_t_01_4_01_4_01_4.html#a8dbf729fcd8c4a16e41b546c7405543d">val</a>;</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span>};</div>
</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> </div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="comment">// Native metal atomics</span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> </div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, enable_if_t&lt;is_metal_atomic&lt;T&gt;, <span class="keywordtype">bool</span>&gt; = true&gt;</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span>METAL_FUNC T</div>
<div class="foldopen" id="foldopen00040" data-start="{" data-end="}">
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"><a class="line" href="atomic_8h.html#a253a4e8c2c5768a069e2791b627dfc99"> 40</a></span><a class="code hl_function" href="atomic_8h.html#a253a4e8c2c5768a069e2791b627dfc99">mlx_atomic_load_explicit</a>(device <a class="code hl_struct" href="structmlx__atomic.html">mlx_atomic&lt;T&gt;</a>* <span class="keywordtype">object</span>, <span class="keywordtype">size_t</span> offset) {</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="keywordflow">return</span> atomic_load_explicit(&amp;(<span class="keywordtype">object</span>[offset].val), memory_order_relaxed);</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span>}</div>
</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> </div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, enable_if_t&lt;is_metal_atomic&lt;T&gt;, <span class="keywordtype">bool</span>&gt; = true&gt;</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span>METAL_FUNC <span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen00046" data-start="{" data-end="}">
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"><a class="line" href="atomic_8h.html#a0ae453140b0819a4c02f265334de98c0"> 46</a></span><a class="code hl_function" href="atomic_8h.html#a0ae453140b0819a4c02f265334de98c0">mlx_atomic_store_explicit</a>(device <a class="code hl_struct" href="structmlx__atomic.html">mlx_atomic&lt;T&gt;</a>* <span class="keywordtype">object</span>, T val, <span class="keywordtype">size_t</span> offset) {</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> atomic_store_explicit(&amp;(<span class="keywordtype">object</span>[offset].val), val, memory_order_relaxed);</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span>}</div>
</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> </div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, enable_if_t&lt;is_metal_atomic&lt;T&gt;, <span class="keywordtype">bool</span>&gt; = true&gt;</div>
<div class="foldopen" id="foldopen00051" data-start="{" data-end="}">
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"><a class="line" href="atomic_8h.html#a253e3c870c0ddc7c28ab2f6ca2c3eae5"> 51</a></span>METAL_FUNC <span class="keywordtype">void</span> <a class="code hl_function" href="atomic_8h.html#a253e3c870c0ddc7c28ab2f6ca2c3eae5">mlx_atomic_fetch_and_explicit</a>(</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> device <a class="code hl_struct" href="structmlx__atomic.html">mlx_atomic&lt;T&gt;</a>* <span class="keywordtype">object</span>,</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> T val,</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <span class="keywordtype">size_t</span> offset) {</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> atomic_fetch_and_explicit(&amp;(<span class="keywordtype">object</span>[offset].val), val, memory_order_relaxed);</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span>}</div>
</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> </div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, enable_if_t&lt;is_metal_atomic&lt;T&gt;, <span class="keywordtype">bool</span>&gt; = true&gt;</div>
<div class="foldopen" id="foldopen00059" data-start="{" data-end="}">
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"><a class="line" href="atomic_8h.html#ab7391f197001471e4788312bdb6ab37a"> 59</a></span>METAL_FUNC <span class="keywordtype">void</span> <a class="code hl_function" href="atomic_8h.html#ab7391f197001471e4788312bdb6ab37a">mlx_atomic_fetch_or_explicit</a>(</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> device <a class="code hl_struct" href="structmlx__atomic.html">mlx_atomic&lt;T&gt;</a>* <span class="keywordtype">object</span>,</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> T val,</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <span class="keywordtype">size_t</span> offset) {</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> atomic_fetch_or_explicit(&amp;(<span class="keywordtype">object</span>[offset].val), val, memory_order_relaxed);</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span>}</div>
</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> </div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, enable_if_t&lt;is_metal_atomic&lt;T&gt;, <span class="keywordtype">bool</span>&gt; = true&gt;</div>
<div class="foldopen" id="foldopen00067" data-start="{" data-end="}">
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"><a class="line" href="atomic_8h.html#a2ec33dca0039bd944d73d1c2b378cc19"> 67</a></span>METAL_FUNC <span class="keywordtype">void</span> <a class="code hl_function" href="atomic_8h.html#a2ec33dca0039bd944d73d1c2b378cc19">mlx_atomic_fetch_min_explicit</a>(</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> device <a class="code hl_struct" href="structmlx__atomic.html">mlx_atomic&lt;T&gt;</a>* <span class="keywordtype">object</span>,</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> T val,</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <span class="keywordtype">size_t</span> offset) {</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> atomic_fetch_min_explicit(&amp;(<span class="keywordtype">object</span>[offset].val), val, memory_order_relaxed);</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span>}</div>
</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> </div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, enable_if_t&lt;is_metal_atomic&lt;T&gt;, <span class="keywordtype">bool</span>&gt; = true&gt;</div>
<div class="foldopen" id="foldopen00075" data-start="{" data-end="}">
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"><a class="line" href="atomic_8h.html#ac480f2b459a8ad9095cee353e152d00c"> 75</a></span>METAL_FUNC <span class="keywordtype">void</span> <a class="code hl_function" href="atomic_8h.html#ac480f2b459a8ad9095cee353e152d00c">mlx_atomic_fetch_max_explicit</a>(</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> device <a class="code hl_struct" href="structmlx__atomic.html">mlx_atomic&lt;T&gt;</a>* <span class="keywordtype">object</span>,</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> T val,</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <span class="keywordtype">size_t</span> offset) {</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> atomic_fetch_max_explicit(&amp;(<span class="keywordtype">object</span>[offset].val), val, memory_order_relaxed);</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span>}</div>
</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> </div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, enable_if_t&lt;is_metal_atomic&lt;T&gt;, <span class="keywordtype">bool</span>&gt; = true&gt;</div>
<div class="foldopen" id="foldopen00083" data-start="{" data-end="}">
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"><a class="line" href="atomic_8h.html#aad448d9e06e001700b65ca8317216a3b"> 83</a></span>METAL_FUNC <span class="keywordtype">void</span> <a class="code hl_function" href="atomic_8h.html#aad448d9e06e001700b65ca8317216a3b">mlx_atomic_fetch_add_explicit</a>(</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> device <a class="code hl_struct" href="structmlx__atomic.html">mlx_atomic&lt;T&gt;</a>* <span class="keywordtype">object</span>,</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> T val,</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> <span class="keywordtype">size_t</span> offset) {</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> atomic_fetch_add_explicit(&amp;(<span class="keywordtype">object</span>[offset].val), val, memory_order_relaxed);</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span>}</div>
</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> </div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, enable_if_t&lt;is_metal_atomic&lt;T&gt;, <span class="keywordtype">bool</span>&gt; = true&gt;</div>
<div class="foldopen" id="foldopen00091" data-start="{" data-end="}">
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"><a class="line" href="atomic_8h.html#adfdbea60436f14f1af9ce36e2a0a77a3"> 91</a></span>METAL_FUNC <span class="keywordtype">void</span> <a class="code hl_function" href="atomic_8h.html#adfdbea60436f14f1af9ce36e2a0a77a3">mlx_atomic_fetch_mul_explicit</a>(</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> device <a class="code hl_struct" href="structmlx__atomic.html">mlx_atomic&lt;T&gt;</a>* <span class="keywordtype">object</span>,</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> T val,</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> <span class="keywordtype">size_t</span> offset) {</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> T expected = <a class="code hl_function" href="atomic_8h.html#a253a4e8c2c5768a069e2791b627dfc99">mlx_atomic_load_explicit</a>(<span class="keywordtype">object</span>, offset);</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> <span class="keywordflow">while</span> (!<a class="code hl_function" href="atomic_8h.html#ad7f32327ff66354cfa2f0cfdac79316f">mlx_atomic_compare_exchange_weak_explicit</a>(</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> <span class="keywordtype">object</span>, &amp;expected, val * expected, offset)) {</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> }</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span>}</div>
</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> </div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, enable_if_t&lt;is_metal_atomic&lt;T&gt;, <span class="keywordtype">bool</span>&gt; = true&gt;</div>
<div class="foldopen" id="foldopen00102" data-start="{" data-end="}">
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"><a class="line" href="atomic_8h.html#ad7f32327ff66354cfa2f0cfdac79316f"> 102</a></span>METAL_FUNC <span class="keywordtype">bool</span> <a class="code hl_function" href="atomic_8h.html#ad7f32327ff66354cfa2f0cfdac79316f">mlx_atomic_compare_exchange_weak_explicit</a>(</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> device <a class="code hl_struct" href="structmlx__atomic.html">mlx_atomic&lt;T&gt;</a>* <span class="keywordtype">object</span>,</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> thread T* expected,</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> T val,</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> <span class="keywordtype">size_t</span> offset) {</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> <span class="keywordflow">return</span> atomic_compare_exchange_weak_explicit(</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> &amp;(<span class="keywordtype">object</span>[offset].val),</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> expected,</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> val,</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> memory_order_relaxed,</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> memory_order_relaxed);</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span>}</div>
</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> </div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span><span class="comment">// Specialization for float since it does not atomic_fetch_min_explicit</span></div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span><span class="keyword">template</span> &lt;&gt;</div>
<div class="foldopen" id="foldopen00117" data-start="{" data-end="}">
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"><a class="line" href="atomic_8h.html#ab7d1dc49f319f239b7ee0b7c72976dd0"> 117</a></span>METAL_FUNC <span class="keywordtype">void</span> <a class="code hl_function" href="atomic_8h.html#ab7d1dc49f319f239b7ee0b7c72976dd0">mlx_atomic_fetch_min_explicit&lt;float&gt;</a>(</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> device <a class="code hl_struct" href="structmlx__atomic.html">mlx_atomic&lt;float&gt;</a>* <span class="keywordtype">object</span>,</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> <span class="keywordtype">float</span> val,</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> <span class="keywordtype">size_t</span> offset) {</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> <span class="keywordtype">float</span> expected = <a class="code hl_function" href="atomic_8h.html#a253a4e8c2c5768a069e2791b627dfc99">mlx_atomic_load_explicit</a>(<span class="keywordtype">object</span>, offset);</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <span class="keywordflow">while</span> (val &lt; expected) {</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="atomic_8h.html#ad7f32327ff66354cfa2f0cfdac79316f">mlx_atomic_compare_exchange_weak_explicit</a>(</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <span class="keywordtype">object</span>, &amp;expected, val, offset)) {</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> }</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> }</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span>}</div>
</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> </div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span><span class="comment">// Specialization for float since it does not atomic_fetch_max_explicit</span></div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span><span class="keyword">template</span> &lt;&gt;</div>
<div class="foldopen" id="foldopen00132" data-start="{" data-end="}">
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"><a class="line" href="atomic_8h.html#a1dce2abfa16417122c4d2bf261129ae4"> 132</a></span>METAL_FUNC <span class="keywordtype">void</span> <a class="code hl_function" href="atomic_8h.html#a1dce2abfa16417122c4d2bf261129ae4">mlx_atomic_fetch_max_explicit&lt;float&gt;</a>(</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> device <a class="code hl_struct" href="structmlx__atomic.html">mlx_atomic&lt;float&gt;</a>* <span class="keywordtype">object</span>,</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> <span class="keywordtype">float</span> val,</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> <span class="keywordtype">size_t</span> offset) {</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> <span class="keywordtype">float</span> expected = <a class="code hl_function" href="atomic_8h.html#a253a4e8c2c5768a069e2791b627dfc99">mlx_atomic_load_explicit</a>(<span class="keywordtype">object</span>, offset);</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <span class="keywordflow">while</span> (val &gt; expected) {</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="atomic_8h.html#ad7f32327ff66354cfa2f0cfdac79316f">mlx_atomic_compare_exchange_weak_explicit</a>(</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> <span class="keywordtype">object</span>, &amp;expected, val, offset)) {</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> }</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> }</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span>}</div>
</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> </div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span><span class="comment">// Custom atomics</span></div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> </div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span><span class="keyword">namespace </span>{</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> </div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span><span class="keyword">constexpr</span> constant uint packing_size = <span class="keyword">sizeof</span>(uint) / <span class="keyword">sizeof</span>(T);</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> </div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span><span class="keyword">union </span>uint_or_packed {</div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> T val[packing_size&lt;T&gt;];</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> uint <a class="code hl_function" href="namespacemlx_1_1core_1_1random.html#abb895baa477f5a06b5f88e69245f1825">bits</a>;</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span>};</div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> </div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> Op&gt;</div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span><span class="keyword">struct </span>mlx_atomic_update_helper {</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> uint operator()(uint_or_packed&lt;T&gt; init, T update, <span class="keywordtype">size_t</span> elem_offset) {</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> Op <a class="code hl_variable" href="common_2binary_8h.html#a70228731d29946574b238d21fb4b360c">op</a>;</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1distributed.html#a33633c058c7ec82cca4f237243c6810d">init</a>.val[elem_offset] = <a class="code hl_variable" href="common_2binary_8h.html#a70228731d29946574b238d21fb4b360c">op</a>(update, <a class="code hl_function" href="namespacemlx_1_1core_1_1distributed.html#a33633c058c7ec82cca4f237243c6810d">init</a>.val[elem_offset]);</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1distributed.html#a33633c058c7ec82cca4f237243c6810d">init</a>.bits;</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> }</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span>};</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> </div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> Op&gt;</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span>METAL_FUNC <span class="keywordtype">void</span> mlx_atomic_update_and_store(</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> device <a class="code hl_struct" href="structmlx__atomic.html">mlx_atomic&lt;T&gt;</a>* <span class="keywordtype">object</span>,</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> T update,</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> <span class="keywordtype">size_t</span> offset) {</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> <span class="keywordtype">size_t</span> pack_offset = offset / packing_size&lt;T&gt;;</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> <span class="keywordtype">size_t</span> elem_offset = offset % packing_size&lt;T&gt;;</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> </div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> mlx_atomic_update_helper&lt;T, Op&gt; helper;</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> uint_or_packed&lt;T&gt; expected;</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> expected.bits =</div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> atomic_load_explicit(&amp;(<span class="keywordtype">object</span>[pack_offset].val), memory_order_relaxed);</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> </div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> <span class="keywordflow">while</span> (Op::condition(update, expected.val[elem_offset]) &amp;&amp;</div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> !<a class="code hl_function" href="atomic_8h.html#ad7f32327ff66354cfa2f0cfdac79316f">mlx_atomic_compare_exchange_weak_explicit</a>(</div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> <span class="keywordtype">object</span>,</div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> &amp;(expected.bits),</div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> helper(expected, update, elem_offset),</div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> pack_offset)) {</div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> }</div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span>}</div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> </div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span><span class="keyword">struct </span>__None {</div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> condition(T a, T b) {</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span><span class="preprocessor">#pragma unused(a)</span></div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span><span class="preprocessor">#pragma unused(b)</span></div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> }</div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> </div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> T operator()(T a, T b) {</div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span><span class="preprocessor">#pragma unused(b)</span></div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> <span class="keywordflow">return</span> a;</div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> }</div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span>};</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> </div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span><span class="keyword">struct </span>__Add {</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> condition(T a, T b) {</div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span><span class="preprocessor">#pragma unused(a)</span></div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span><span class="preprocessor">#pragma unused(b)</span></div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> }</div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> </div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> T operator()(T a, T b) {</div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> <span class="keywordflow">return</span> a + b;</div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> }</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span>};</div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> </div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span><span class="keyword">struct </span>__Mul {</div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> condition(T a, T b) {</div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span><span class="preprocessor">#pragma unused(a)</span></div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> <span class="keywordflow">return</span> b != 0;</div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> }</div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> </div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> T operator()(T a, T b) {</div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> <span class="keywordflow">return</span> a * b;</div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> }</div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span>};</div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> </div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span><span class="keyword">struct </span>__Max {</div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> condition(T a, T b) {</div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> <span class="keywordflow">return</span> a &gt; b;</div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> }</div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> </div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> T operator()(T a, T b) {</div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespacemetal.html#a853c80479ab2264d9c4587c7bcac767b">max</a>(a, b);</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> }</div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span>};</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> </div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span><span class="keyword">struct </span>__Min {</div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> condition(T a, T b) {</div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> <span class="keywordflow">return</span> a &lt; b;</div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> }</div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> </div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> T operator()(T a, T b) {</div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespacemetal.html#a6653b28c9473087141eddce39878d4d3">min</a>(a, b);</div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> }</div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span>};</div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> </div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span>} <span class="comment">// namespace</span></div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> </div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, enable_if_t&lt;!is_metal_atomic&lt;T&gt;, <span class="keywordtype">bool</span>&gt; = true&gt;</div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span>METAL_FUNC T</div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span><a class="code hl_function" href="atomic_8h.html#a253a4e8c2c5768a069e2791b627dfc99">mlx_atomic_load_explicit</a>(device <a class="code hl_struct" href="structmlx__atomic.html">mlx_atomic&lt;T&gt;</a>* <span class="keywordtype">object</span>, <span class="keywordtype">size_t</span> offset) {</div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> <span class="keywordtype">size_t</span> pack_offset = offset / <span class="keyword">sizeof</span>(T);</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> <span class="keywordtype">size_t</span> elem_offset = offset % <span class="keyword">sizeof</span>(T);</div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> uint_or_packed&lt;T&gt; packed_val;</div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> packed_val.bits =</div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span> atomic_load_explicit(&amp;(<span class="keywordtype">object</span>[pack_offset].val), memory_order_relaxed);</div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> <span class="keywordflow">return</span> packed_val.val[elem_offset];</div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span>}</div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> </div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, enable_if_t&lt;!is_metal_atomic&lt;T&gt;, <span class="keywordtype">bool</span>&gt; = true&gt;</div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span>METAL_FUNC <span class="keywordtype">void</span></div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span><a class="code hl_function" href="atomic_8h.html#a0ae453140b0819a4c02f265334de98c0">mlx_atomic_store_explicit</a>(device <a class="code hl_struct" href="structmlx__atomic.html">mlx_atomic&lt;T&gt;</a>* <span class="keywordtype">object</span>, T val, <span class="keywordtype">size_t</span> offset) {</div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> mlx_atomic_update_and_store&lt;T, __None&lt;T&gt;&gt;(object, val, offset);</div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span>}</div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> </div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, enable_if_t&lt;!is_metal_atomic&lt;T&gt;, <span class="keywordtype">bool</span>&gt; = true&gt;</div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span>METAL_FUNC <span class="keywordtype">void</span> <a class="code hl_function" href="atomic_8h.html#a253e3c870c0ddc7c28ab2f6ca2c3eae5">mlx_atomic_fetch_and_explicit</a>(</div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> device <a class="code hl_struct" href="structmlx__atomic.html">mlx_atomic&lt;T&gt;</a>* <span class="keywordtype">object</span>,</div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span> T val,</div>
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span> <span class="keywordtype">size_t</span> offset) {</div>
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span> <span class="keywordtype">size_t</span> pack_offset = offset / packing_size&lt;T&gt;;</div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span> <span class="keywordtype">size_t</span> elem_offset = offset % packing_size&lt;T&gt;;</div>
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span> uint_or_packed&lt;T&gt; <a class="code hl_function" href="group__ops.html#ga484eaa10d5e19a4ca46d3a9cd9fab600">identity</a>;</div>
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span> <a class="code hl_function" href="group__ops.html#ga484eaa10d5e19a4ca46d3a9cd9fab600">identity</a>.bits = __UINT32_MAX__;</div>
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> <a class="code hl_function" href="group__ops.html#ga484eaa10d5e19a4ca46d3a9cd9fab600">identity</a>.val[elem_offset] = val;</div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> </div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> atomic_fetch_and_explicit(</div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> &amp;(<span class="keywordtype">object</span>[pack_offset].val), <a class="code hl_function" href="group__ops.html#ga484eaa10d5e19a4ca46d3a9cd9fab600">identity</a>.bits, memory_order_relaxed);</div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span>}</div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> </div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, enable_if_t&lt;!is_metal_atomic&lt;T&gt;, <span class="keywordtype">bool</span>&gt; = true&gt;</div>
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span>METAL_FUNC <span class="keywordtype">void</span> <a class="code hl_function" href="atomic_8h.html#ab7391f197001471e4788312bdb6ab37a">mlx_atomic_fetch_or_explicit</a>(</div>
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span> device <a class="code hl_struct" href="structmlx__atomic.html">mlx_atomic&lt;T&gt;</a>* <span class="keywordtype">object</span>,</div>
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span> T val,</div>
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span> <span class="keywordtype">size_t</span> offset) {</div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span> <span class="keywordtype">size_t</span> pack_offset = offset / packing_size&lt;T&gt;;</div>
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span> <span class="keywordtype">size_t</span> elem_offset = offset % packing_size&lt;T&gt;;</div>
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span> uint_or_packed&lt;T&gt; <a class="code hl_function" href="group__ops.html#ga484eaa10d5e19a4ca46d3a9cd9fab600">identity</a>;</div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span> <a class="code hl_function" href="group__ops.html#ga484eaa10d5e19a4ca46d3a9cd9fab600">identity</a>.bits = 0;</div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> <a class="code hl_function" href="group__ops.html#ga484eaa10d5e19a4ca46d3a9cd9fab600">identity</a>.val[elem_offset] = val;</div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> </div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span> atomic_fetch_or_explicit(</div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> &amp;(<span class="keywordtype">object</span>[pack_offset].val), <a class="code hl_function" href="group__ops.html#ga484eaa10d5e19a4ca46d3a9cd9fab600">identity</a>.bits, memory_order_relaxed);</div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span>}</div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> </div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, enable_if_t&lt;!is_metal_atomic&lt;T&gt;, <span class="keywordtype">bool</span>&gt; = true&gt;</div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span>METAL_FUNC <span class="keywordtype">void</span> <a class="code hl_function" href="atomic_8h.html#a2ec33dca0039bd944d73d1c2b378cc19">mlx_atomic_fetch_min_explicit</a>(</div>
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span> device <a class="code hl_struct" href="structmlx__atomic.html">mlx_atomic&lt;T&gt;</a>* <span class="keywordtype">object</span>,</div>
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span> T val,</div>
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span> <span class="keywordtype">size_t</span> offset) {</div>
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span> mlx_atomic_update_and_store&lt;T, __Min&lt;T&gt;&gt;(object, val, offset);</div>
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span>}</div>
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</span> </div>
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"> 309</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, enable_if_t&lt;!is_metal_atomic&lt;T&gt;, <span class="keywordtype">bool</span>&gt; = true&gt;</div>
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</span>METAL_FUNC <span class="keywordtype">void</span> <a class="code hl_function" href="atomic_8h.html#ac480f2b459a8ad9095cee353e152d00c">mlx_atomic_fetch_max_explicit</a>(</div>
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"> 311</span> device <a class="code hl_struct" href="structmlx__atomic.html">mlx_atomic&lt;T&gt;</a>* <span class="keywordtype">object</span>,</div>
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"> 312</span> T val,</div>
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"> 313</span> <span class="keywordtype">size_t</span> offset) {</div>
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</span> mlx_atomic_update_and_store&lt;T, __Max&lt;T&gt;&gt;(object, val, offset);</div>
<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"> 315</span>}</div>
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"> 316</span> </div>
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, enable_if_t&lt;!is_metal_atomic&lt;T&gt;, <span class="keywordtype">bool</span>&gt; = true&gt;</div>
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span>METAL_FUNC <span class="keywordtype">void</span> <a class="code hl_function" href="atomic_8h.html#aad448d9e06e001700b65ca8317216a3b">mlx_atomic_fetch_add_explicit</a>(</div>
<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span> device <a class="code hl_struct" href="structmlx__atomic.html">mlx_atomic&lt;T&gt;</a>* <span class="keywordtype">object</span>,</div>
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno"> 320</span> T val,</div>
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span> <span class="keywordtype">size_t</span> offset) {</div>
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno"> 322</span> mlx_atomic_update_and_store&lt;T, __Add&lt;T&gt;&gt;(object, val, offset);</div>
<div class="line"><a id="l00323" name="l00323"></a><span class="lineno"> 323</span>}</div>
<div class="line"><a id="l00324" name="l00324"></a><span class="lineno"> 324</span> </div>
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, enable_if_t&lt;!is_metal_atomic&lt;T&gt;, <span class="keywordtype">bool</span>&gt; = true&gt;</div>
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</span>METAL_FUNC <span class="keywordtype">void</span> <a class="code hl_function" href="atomic_8h.html#adfdbea60436f14f1af9ce36e2a0a77a3">mlx_atomic_fetch_mul_explicit</a>(</div>
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"> 327</span> device <a class="code hl_struct" href="structmlx__atomic.html">mlx_atomic&lt;T&gt;</a>* <span class="keywordtype">object</span>,</div>
<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"> 328</span> T val,</div>
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"> 329</span> <span class="keywordtype">size_t</span> offset) {</div>
<div class="line"><a id="l00330" name="l00330"></a><span class="lineno"> 330</span> mlx_atomic_update_and_store&lt;T, __Mul&lt;T&gt;&gt;(object, val, offset);</div>
<div class="line"><a id="l00331" name="l00331"></a><span class="lineno"> 331</span>}</div>
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"> 332</span> </div>
<div class="line"><a id="l00333" name="l00333"></a><span class="lineno"> 333</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, enable_if_t&lt;!is_metal_atomic&lt;T&gt;, <span class="keywordtype">bool</span>&gt; = true&gt;</div>
<div class="foldopen" id="foldopen00334" data-start="{" data-end="}">
<div class="line"><a id="l00334" name="l00334"></a><span class="lineno"><a class="line" href="atomic_8h.html#aa8f47b2e9b95d4b00ad51f08b070deb5"> 334</a></span>METAL_FUNC <span class="keywordtype">bool</span> <a class="code hl_function" href="atomic_8h.html#ad7f32327ff66354cfa2f0cfdac79316f">mlx_atomic_compare_exchange_weak_explicit</a>(</div>
<div class="line"><a id="l00335" name="l00335"></a><span class="lineno"> 335</span> device <a class="code hl_struct" href="structmlx__atomic.html">mlx_atomic&lt;T&gt;</a>* <span class="keywordtype">object</span>,</div>
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno"> 336</span> thread uint* expected,</div>
<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"> 337</span> uint val,</div>
<div class="line"><a id="l00338" name="l00338"></a><span class="lineno"> 338</span> <span class="keywordtype">size_t</span> offset) {</div>
<div class="line"><a id="l00339" name="l00339"></a><span class="lineno"> 339</span> <span class="keywordflow">return</span> atomic_compare_exchange_weak_explicit(</div>
<div class="line"><a id="l00340" name="l00340"></a><span class="lineno"> 340</span> &amp;(<span class="keywordtype">object</span>[offset].val),</div>
<div class="line"><a id="l00341" name="l00341"></a><span class="lineno"> 341</span> expected,</div>
<div class="line"><a id="l00342" name="l00342"></a><span class="lineno"> 342</span> val,</div>
<div class="line"><a id="l00343" name="l00343"></a><span class="lineno"> 343</span> memory_order_relaxed,</div>
<div class="line"><a id="l00344" name="l00344"></a><span class="lineno"> 344</span> memory_order_relaxed);</div>
<div class="line"><a id="l00345" name="l00345"></a><span class="lineno"> 345</span>}</div>
</div>
<div class="ttc" id="aatomic_8h_html_a0ae453140b0819a4c02f265334de98c0"><div class="ttname"><a href="atomic_8h.html#a0ae453140b0819a4c02f265334de98c0">mlx_atomic_store_explicit</a></div><div class="ttdeci">METAL_FUNC void mlx_atomic_store_explicit(device mlx_atomic&lt; T &gt; *object, T val, size_t offset)</div><div class="ttdef"><b>Definition</b> atomic.h:46</div></div>
<div class="ttc" id="aatomic_8h_html_a1dce2abfa16417122c4d2bf261129ae4"><div class="ttname"><a href="atomic_8h.html#a1dce2abfa16417122c4d2bf261129ae4">mlx_atomic_fetch_max_explicit&lt; float &gt;</a></div><div class="ttdeci">METAL_FUNC void mlx_atomic_fetch_max_explicit&lt; float &gt;(device mlx_atomic&lt; float &gt; *object, float val, size_t offset)</div><div class="ttdef"><b>Definition</b> atomic.h:132</div></div>
<div class="ttc" id="aatomic_8h_html_a253a4e8c2c5768a069e2791b627dfc99"><div class="ttname"><a href="atomic_8h.html#a253a4e8c2c5768a069e2791b627dfc99">mlx_atomic_load_explicit</a></div><div class="ttdeci">METAL_FUNC T mlx_atomic_load_explicit(device mlx_atomic&lt; T &gt; *object, size_t offset)</div><div class="ttdef"><b>Definition</b> atomic.h:40</div></div>
<div class="ttc" id="aatomic_8h_html_a253e3c870c0ddc7c28ab2f6ca2c3eae5"><div class="ttname"><a href="atomic_8h.html#a253e3c870c0ddc7c28ab2f6ca2c3eae5">mlx_atomic_fetch_and_explicit</a></div><div class="ttdeci">METAL_FUNC void mlx_atomic_fetch_and_explicit(device mlx_atomic&lt; T &gt; *object, T val, size_t offset)</div><div class="ttdef"><b>Definition</b> atomic.h:51</div></div>
<div class="ttc" id="aatomic_8h_html_a2ec33dca0039bd944d73d1c2b378cc19"><div class="ttname"><a href="atomic_8h.html#a2ec33dca0039bd944d73d1c2b378cc19">mlx_atomic_fetch_min_explicit</a></div><div class="ttdeci">METAL_FUNC void mlx_atomic_fetch_min_explicit(device mlx_atomic&lt; T &gt; *object, T val, size_t offset)</div><div class="ttdef"><b>Definition</b> atomic.h:67</div></div>
<div class="ttc" id="aatomic_8h_html_a91a8bdcae647947a83c6689d7f252d24"><div class="ttname"><a href="atomic_8h.html#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a></div><div class="ttdeci">constexpr constant bool is_metal_atomic</div><div class="ttdef"><b>Definition</b> atomic.h:16</div></div>
<div class="ttc" id="aatomic_8h_html_aad448d9e06e001700b65ca8317216a3b"><div class="ttname"><a href="atomic_8h.html#aad448d9e06e001700b65ca8317216a3b">mlx_atomic_fetch_add_explicit</a></div><div class="ttdeci">METAL_FUNC void mlx_atomic_fetch_add_explicit(device mlx_atomic&lt; T &gt; *object, T val, size_t offset)</div><div class="ttdef"><b>Definition</b> atomic.h:83</div></div>
<div class="ttc" id="aatomic_8h_html_ab7391f197001471e4788312bdb6ab37a"><div class="ttname"><a href="atomic_8h.html#ab7391f197001471e4788312bdb6ab37a">mlx_atomic_fetch_or_explicit</a></div><div class="ttdeci">METAL_FUNC void mlx_atomic_fetch_or_explicit(device mlx_atomic&lt; T &gt; *object, T val, size_t offset)</div><div class="ttdef"><b>Definition</b> atomic.h:59</div></div>
<div class="ttc" id="aatomic_8h_html_ab7d1dc49f319f239b7ee0b7c72976dd0"><div class="ttname"><a href="atomic_8h.html#ab7d1dc49f319f239b7ee0b7c72976dd0">mlx_atomic_fetch_min_explicit&lt; float &gt;</a></div><div class="ttdeci">METAL_FUNC void mlx_atomic_fetch_min_explicit&lt; float &gt;(device mlx_atomic&lt; float &gt; *object, float val, size_t offset)</div><div class="ttdef"><b>Definition</b> atomic.h:117</div></div>
<div class="ttc" id="aatomic_8h_html_ac480f2b459a8ad9095cee353e152d00c"><div class="ttname"><a href="atomic_8h.html#ac480f2b459a8ad9095cee353e152d00c">mlx_atomic_fetch_max_explicit</a></div><div class="ttdeci">METAL_FUNC void mlx_atomic_fetch_max_explicit(device mlx_atomic&lt; T &gt; *object, T val, size_t offset)</div><div class="ttdef"><b>Definition</b> atomic.h:75</div></div>
<div class="ttc" id="aatomic_8h_html_ad7f32327ff66354cfa2f0cfdac79316f"><div class="ttname"><a href="atomic_8h.html#ad7f32327ff66354cfa2f0cfdac79316f">mlx_atomic_compare_exchange_weak_explicit</a></div><div class="ttdeci">METAL_FUNC bool mlx_atomic_compare_exchange_weak_explicit(device mlx_atomic&lt; T &gt; *object, thread T *expected, T val, size_t offset)</div><div class="ttdef"><b>Definition</b> atomic.h:102</div></div>
<div class="ttc" id="aatomic_8h_html_adfdbea60436f14f1af9ce36e2a0a77a3"><div class="ttname"><a href="atomic_8h.html#adfdbea60436f14f1af9ce36e2a0a77a3">mlx_atomic_fetch_mul_explicit</a></div><div class="ttdeci">METAL_FUNC void mlx_atomic_fetch_mul_explicit(device mlx_atomic&lt; T &gt; *object, T val, size_t offset)</div><div class="ttdef"><b>Definition</b> atomic.h:91</div></div>
<div class="ttc" id="acommon_2binary_8h_html_a70228731d29946574b238d21fb4b360c"><div class="ttname"><a href="common_2binary_8h.html#a70228731d29946574b238d21fb4b360c">op</a></div><div class="ttdeci">Op op</div><div class="ttdef"><b>Definition</b> binary.h:129</div></div>
<div class="ttc" id="agroup__ops_html_ga484eaa10d5e19a4ca46d3a9cd9fab600"><div class="ttname"><a href="group__ops.html#ga484eaa10d5e19a4ca46d3a9cd9fab600">mlx::core::identity</a></div><div class="ttdeci">array identity(int n, Dtype dtype, StreamOrDevice s={})</div><div class="ttdoc">Create a square matrix of shape (n,n) of zeros, and ones in the major diagonal.</div></div>
<div class="ttc" id="anamespacemetal_html"><div class="ttname"><a href="namespacemetal.html">metal</a></div><div class="ttdef"><b>Definition</b> bf16.h:265</div></div>
<div class="ttc" id="anamespacemetal_html_a6653b28c9473087141eddce39878d4d3"><div class="ttname"><a href="namespacemetal.html#a6653b28c9473087141eddce39878d4d3">metal::min</a></div><div class="ttdeci">METAL_FUNC bfloat16_t min(bfloat16_t x, bfloat16_t y)</div><div class="ttdef"><b>Definition</b> bf16_math.h:234</div></div>
<div class="ttc" id="anamespacemetal_html_a853c80479ab2264d9c4587c7bcac767b"><div class="ttname"><a href="namespacemetal.html#a853c80479ab2264d9c4587c7bcac767b">metal::max</a></div><div class="ttdeci">METAL_FUNC bfloat16_t max(bfloat16_t x, bfloat16_t y)</div><div class="ttdef"><b>Definition</b> bf16_math.h:234</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1distributed_html_a33633c058c7ec82cca4f237243c6810d"><div class="ttname"><a href="namespacemlx_1_1core_1_1distributed.html#a33633c058c7ec82cca4f237243c6810d">mlx::core::distributed::init</a></div><div class="ttdeci">Group init(bool strict=false)</div><div class="ttdoc">Initialize the distributed backend and return the group containing all discoverable processes.</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1random_html_abb895baa477f5a06b5f88e69245f1825"><div class="ttname"><a href="namespacemlx_1_1core_1_1random.html#abb895baa477f5a06b5f88e69245f1825">mlx::core::random::bits</a></div><div class="ttdeci">array bits(const std::vector&lt; int &gt; &amp;shape, int width, const std::optional&lt; array &gt; &amp;key=std::nullopt, StreamOrDevice s={})</div><div class="ttdoc">Generate an array with type uint32 filled with random bits.</div></div>
<div class="ttc" id="astructmlx__atomic_3_01_t_00_01enable__if__t_3_01is__metal__atomic_3_01_t_01_4_01_4_01_4_html_a8dbf729fcd8c4a16e41b546c7405543d"><div class="ttname"><a href="structmlx__atomic_3_01_t_00_01enable__if__t_3_01is__metal__atomic_3_01_t_01_4_01_4_01_4.html#a8dbf729fcd8c4a16e41b546c7405543d">mlx_atomic&lt; T, enable_if_t&lt; is_metal_atomic&lt; T &gt; &gt; &gt;::val</a></div><div class="ttdeci">atomic&lt; T &gt; val</div><div class="ttdef"><b>Definition</b> atomic.h:31</div></div>
<div class="ttc" id="astructmlx__atomic_html"><div class="ttname"><a href="structmlx__atomic.html">mlx_atomic</a></div><div class="ttdef"><b>Definition</b> atomic.h:25</div></div>
<div class="ttc" id="astructmlx__atomic_html_a6f6651b8dd8149917c50cd99b13c6747"><div class="ttname"><a href="structmlx__atomic.html#a6f6651b8dd8149917c50cd99b13c6747">mlx_atomic::val</a></div><div class="ttdeci">atomic&lt; uint &gt; val</div><div class="ttdef"><b>Definition</b> atomic.h:26</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

View File

@ -0,0 +1,121 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.12.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/accelerate/utils.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">MLX
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.12.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_86b95e7b1d0d6e25466bb9213752d32f.html">accelerate</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle"><div class="title">utils.h File Reference</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;Accelerate/Accelerate.h&gt;</code><br />
<code>#include &quot;<a class="el" href="dtype_8h_source.html">mlx/dtype.h</a>&quot;</code><br />
</div>
<p><a href="backend_2accelerate_2utils_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx.html">mlx</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html">mlx::core</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a7a4193f37b1de9c33c31d1da09c77edb" id="r_a7a4193f37b1de9c33c31d1da09c77edb"><td class="memItemLeft" align="right" valign="top">BNNSDataType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a7a4193f37b1de9c33c31d1da09c77edb">mlx::core::to_bnns_dtype</a> (<a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> mlx_dtype)</td></tr>
<tr class="separator:a7a4193f37b1de9c33c31d1da09c77edb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

View File

@ -0,0 +1,143 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.12.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/accelerate/utils.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">MLX
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.12.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_86b95e7b1d0d6e25466bb9213752d32f.html">accelerate</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<div class="header">
<div class="headertitle"><div class="title">utils.h</div></div>
</div><!--header-->
<div class="contents">
<a href="backend_2accelerate_2utils_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">// Copyright © 2023-2024 Apple Inc.</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span> </div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="preprocessor">#pragma once</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span> </div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#include &lt;Accelerate/Accelerate.h&gt;</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#include &quot;<a class="code" href="dtype_8h.html">mlx/dtype.h</a>&quot;</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span> </div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacemlx_1_1core.html">mlx::core</a> {</div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> </div>
<div class="foldopen" id="foldopen00010" data-start="{" data-end="}">
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a7a4193f37b1de9c33c31d1da09c77edb"> 10</a></span>BNNSDataType <a class="code hl_function" href="namespacemlx_1_1core.html#a7a4193f37b1de9c33c31d1da09c77edb">to_bnns_dtype</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> mlx_dtype) {</div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> uint32_t size_bits = <a class="code hl_function" href="namespacemlx_1_1core.html#add4794cc0ffe5d717fc146084a235d95">size_of</a>(mlx_dtype) * 8;</div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> <span class="keywordflow">switch</span> (<a class="code hl_function" href="namespacemlx_1_1core.html#ad527b86818823db040195785efd7d724">kindof</a>(mlx_dtype)) {</div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a92eb5ffee6ae2fec3ad71c777531578f">Dtype::Kind::b</a>:</div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> <span class="keywordflow">return</span> BNNSDataTypeBoolean;</div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a7b774effe4a349c6dd82ad4f4f21d34c">Dtype::Kind::u</a>:</div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> <span class="keywordflow">return</span> BNNSDataType(BNNSDataTypeUIntBit | size_bits);</div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a865c0c0b4ab0e063e5caa3387c1a8741">Dtype::Kind::i</a>:</div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> <span class="keywordflow">return</span> BNNSDataType(BNNSDataTypeIntBit | size_bits);</div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a8fa14cdd754f91cc6554c9e71929cce7">Dtype::Kind::f</a>:</div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> <span class="keywordflow">return</span> BNNSDataType(BNNSDataTypeFloatBit | size_bits);</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a5206560a306a2e085a437fd258eb57ce">Dtype::Kind::V</a>:</div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <span class="keywordflow">return</span> BNNSDataTypeBFloat16;</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a4a8a08f09d37b73795649038408b5f33">Dtype::Kind::c</a>:</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <span class="keywordflow">throw</span> std::invalid_argument(<span class="stringliteral">&quot;BNNS does not support complex types&quot;</span>);</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> }</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span>}</div>
</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> </div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span>} <span class="comment">// namespace mlx::core</span></div>
<div class="ttc" id="adtype_8h_html"><div class="ttname"><a href="dtype_8h.html">dtype.h</a></div></div>
<div class="ttc" id="anamespacemlx_1_1core_html"><div class="ttname"><a href="namespacemlx_1_1core.html">mlx::core</a></div><div class="ttdef"><b>Definition</b> allocator.h:7</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a7a4193f37b1de9c33c31d1da09c77edb"><div class="ttname"><a href="namespacemlx_1_1core.html#a7a4193f37b1de9c33c31d1da09c77edb">mlx::core::to_bnns_dtype</a></div><div class="ttdeci">BNNSDataType to_bnns_dtype(Dtype mlx_dtype)</div><div class="ttdef"><b>Definition</b> utils.h:10</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_ad527b86818823db040195785efd7d724"><div class="ttname"><a href="namespacemlx_1_1core.html#ad527b86818823db040195785efd7d724">mlx::core::kindof</a></div><div class="ttdeci">Dtype::Kind kindof(const Dtype &amp;t)</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_add4794cc0ffe5d717fc146084a235d95"><div class="ttname"><a href="namespacemlx_1_1core.html#add4794cc0ffe5d717fc146084a235d95">mlx::core::size_of</a></div><div class="ttdeci">uint8_t size_of(const Dtype &amp;t)</div><div class="ttdef"><b>Definition</b> dtype.h:102</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html">mlx::core::Dtype</a></div><div class="ttdef"><b>Definition</b> dtype.h:13</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_adb1ea8b45a0c53e04a0e73b168702715a4a8a08f09d37b73795649038408b5f33"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a4a8a08f09d37b73795649038408b5f33">mlx::core::Dtype::Kind::c</a></div><div class="ttdeci">@ c</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_adb1ea8b45a0c53e04a0e73b168702715a5206560a306a2e085a437fd258eb57ce"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a5206560a306a2e085a437fd258eb57ce">mlx::core::Dtype::Kind::V</a></div><div class="ttdeci">@ V</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_adb1ea8b45a0c53e04a0e73b168702715a7b774effe4a349c6dd82ad4f4f21d34c"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a7b774effe4a349c6dd82ad4f4f21d34c">mlx::core::Dtype::Kind::u</a></div><div class="ttdeci">@ u</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_adb1ea8b45a0c53e04a0e73b168702715a865c0c0b4ab0e063e5caa3387c1a8741"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a865c0c0b4ab0e063e5caa3387c1a8741">mlx::core::Dtype::Kind::i</a></div><div class="ttdeci">@ i</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_adb1ea8b45a0c53e04a0e73b168702715a8fa14cdd754f91cc6554c9e71929cce7"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a8fa14cdd754f91cc6554c9e71929cce7">mlx::core::Dtype::Kind::f</a></div><div class="ttdeci">@ f</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_adb1ea8b45a0c53e04a0e73b168702715a92eb5ffee6ae2fec3ad71c777531578f"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a92eb5ffee6ae2fec3ad71c777531578f">mlx::core::Dtype::Kind::b</a></div><div class="ttdeci">@ b</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

View File

@ -0,0 +1,121 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.12.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/common/load.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">MLX
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.12.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_f149b24a1b5be11cd70151abe517e3f8.html">common</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle"><div class="title">load.h File Reference</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="array_8h_source.html">mlx/array.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="io_2load_8h_source.html">mlx/io/load.h</a>&quot;</code><br />
</div>
<p><a href="backend_2common_2load_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx.html">mlx</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html">mlx::core</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a954de19249da7c1fa39b89bdc47368aa" id="r_a954de19249da7c1fa39b89bdc47368aa"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a954de19249da7c1fa39b89bdc47368aa">mlx::core::load</a> (<a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;out, size_t offset, const std::shared_ptr&lt; <a class="el" href="classmlx_1_1core_1_1io_1_1_reader.html">io::Reader</a> &gt; &amp;reader, bool swap_endianess)</td></tr>
<tr class="separator:a954de19249da7c1fa39b89bdc47368aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

View File

@ -0,0 +1,120 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.12.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/common/load.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">MLX
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.12.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_f149b24a1b5be11cd70151abe517e3f8.html">common</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<div class="header">
<div class="headertitle"><div class="title">load.h</div></div>
</div><!--header-->
<div class="contents">
<a href="backend_2common_2load_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">// Copyright © 2024 Apple Inc.</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span> </div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="preprocessor">#include &quot;<a class="code" href="array_8h.html">mlx/array.h</a>&quot;</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="preprocessor">#include &quot;<a class="code" href="io_2load_8h.html">mlx/io/load.h</a>&quot;</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span> </div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacemlx_1_1core.html">mlx::core</a> {</div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span> </div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a954de19249da7c1fa39b89bdc47368aa"> 8</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a954de19249da7c1fa39b89bdc47368aa">load</a>(</div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&amp; out,</div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> <span class="keywordtype">size_t</span> offset,</div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> <span class="keyword">const</span> std::shared_ptr&lt;io::Reader&gt;&amp; reader,</div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> <span class="keywordtype">bool</span> swap_endianess);</div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span>} <span class="comment">// namespace mlx::core</span></div>
<div class="ttc" id="aarray_8h_html"><div class="ttname"><a href="array_8h.html">array.h</a></div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html"><div class="ttname"><a href="classmlx_1_1core_1_1array.html">mlx::core::array</a></div><div class="ttdef"><b>Definition</b> array.h:20</div></div>
<div class="ttc" id="aio_2load_8h_html"><div class="ttname"><a href="io_2load_8h.html">load.h</a></div></div>
<div class="ttc" id="anamespacemlx_1_1core_html"><div class="ttname"><a href="namespacemlx_1_1core.html">mlx::core</a></div><div class="ttdef"><b>Definition</b> allocator.h:7</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a954de19249da7c1fa39b89bdc47368aa"><div class="ttname"><a href="namespacemlx_1_1core.html#a954de19249da7c1fa39b89bdc47368aa">mlx::core::load</a></div><div class="ttdeci">void load(array &amp;out, size_t offset, const std::shared_ptr&lt; io::Reader &gt; &amp;reader, bool swap_endianess)</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

View File

@ -0,0 +1,248 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.12.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/common/ops.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">MLX
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.12.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_f149b24a1b5be11cd70151abe517e3f8.html">common</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle"><div class="title">ops.h File Reference</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;stdint.h&gt;</code><br />
<code>#include &lt;cmath&gt;</code><br />
<code>#include &lt;complex&gt;</code><br />
</div>
<p><a href="backend_2common_2ops_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">union &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unionmlx_1_1core_1_1detail_1_1_int_or_float.html">mlx::core::detail::IntOrFloat</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_abs.html">mlx::core::detail::Abs</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_arc_cos.html">mlx::core::detail::ArcCos</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_arc_cosh.html">mlx::core::detail::ArcCosh</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_arc_sin.html">mlx::core::detail::ArcSin</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_arc_sinh.html">mlx::core::detail::ArcSinh</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_arc_tan.html">mlx::core::detail::ArcTan</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_arc_tan2.html">mlx::core::detail::ArcTan2</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_arc_tanh.html">mlx::core::detail::ArcTanh</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_ceil.html">mlx::core::detail::Ceil</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_conjugate.html">mlx::core::detail::Conjugate</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_cos.html">mlx::core::detail::Cos</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_cosh.html">mlx::core::detail::Cosh</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_erf.html">mlx::core::detail::Erf</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_erf_inv.html">mlx::core::detail::ErfInv</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_exp.html">mlx::core::detail::Exp</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_expm1.html">mlx::core::detail::Expm1</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_floor.html">mlx::core::detail::Floor</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_log.html">mlx::core::detail::Log</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_log2.html">mlx::core::detail::Log2</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_log10.html">mlx::core::detail::Log10</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_log1p.html">mlx::core::detail::Log1p</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_logical_not.html">mlx::core::detail::LogicalNot</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_negative.html">mlx::core::detail::Negative</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_round.html">mlx::core::detail::Round</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_sigmoid.html">mlx::core::detail::Sigmoid</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_sign.html">mlx::core::detail::Sign</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_sin.html">mlx::core::detail::Sin</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_sinh.html">mlx::core::detail::Sinh</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_square.html">mlx::core::detail::Square</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_sqrt.html">mlx::core::detail::Sqrt</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_rsqrt.html">mlx::core::detail::Rsqrt</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_tan.html">mlx::core::detail::Tan</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_tanh.html">mlx::core::detail::Tanh</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_add.html">mlx::core::detail::Add</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_divide.html">mlx::core::detail::Divide</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_remainder.html">mlx::core::detail::Remainder</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_equal.html">mlx::core::detail::Equal</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_na_n_equal.html">mlx::core::detail::NaNEqual</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_greater.html">mlx::core::detail::Greater</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_greater_equal.html">mlx::core::detail::GreaterEqual</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_less.html">mlx::core::detail::Less</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_less_equal.html">mlx::core::detail::LessEqual</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_maximum.html">mlx::core::detail::Maximum</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_minimum.html">mlx::core::detail::Minimum</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_log_add_exp.html">mlx::core::detail::LogAddExp</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_multiply.html">mlx::core::detail::Multiply</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_not_equal.html">mlx::core::detail::NotEqual</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_power.html">mlx::core::detail::Power</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_subtract.html">mlx::core::detail::Subtract</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_logical_and.html">mlx::core::detail::LogicalAnd</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_logical_or.html">mlx::core::detail::LogicalOr</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_select.html">mlx::core::detail::Select</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_bitwise_and.html">mlx::core::detail::BitwiseAnd</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_bitwise_or.html">mlx::core::detail::BitwiseOr</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_bitwise_xor.html">mlx::core::detail::BitwiseXor</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_left_shift.html">mlx::core::detail::LeftShift</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_right_shift.html">mlx::core::detail::RightShift</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx.html">mlx</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html">mlx::core</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1detail.html">mlx::core::detail</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a2726436fc72d4a3f0030c89579b4d374" id="r_a2726436fc72d4a3f0030c89579b4d374"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1detail.html#a2726436fc72d4a3f0030c89579b4d374">mlx::core::detail::fast_exp</a> (float x)</td></tr>
<tr class="separator:a2726436fc72d4a3f0030c89579b4d374"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90c9f6149af5adf4e2a95608d5f7b790" id="r_a90c9f6149af5adf4e2a95608d5f7b790"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1detail.html#a90c9f6149af5adf4e2a95608d5f7b790">mlx::core::detail::fast_erf</a> (float a)</td></tr>
<tr class="separator:a90c9f6149af5adf4e2a95608d5f7b790"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad0ff3975e4c96317df1a2de0f7a30c1d" id="r_ad0ff3975e4c96317df1a2de0f7a30c1d"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1detail.html#ad0ff3975e4c96317df1a2de0f7a30c1d">mlx::core::detail::fast_erfinv</a> (float a)</td></tr>
<tr class="separator:ad0ff3975e4c96317df1a2de0f7a30c1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More