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 # 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. # 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 tags: 645f666f9bcd5a90fca523b33c5a78b7

View File

@ -4,7 +4,7 @@
* *
* Sphinx stylesheet -- basic theme. * 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. * :license: BSD, see LICENSE for details.
* *
*/ */

View File

@ -4,7 +4,7 @@
* *
* Base JavaScript utilities for all Sphinx HTML documentation. * 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. * :license: BSD, see LICENSE for details.
* *
*/ */

View File

@ -5,7 +5,7 @@
* This script contains the language-specific data used by searchtools.js, * This script contains the language-specific data used by searchtools.js,
* namely the list of stopwords, stemmer, scorer and splitter. * 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. * :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"]; 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 * Porter Stemmer

View File

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

View File

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

View File

@ -8,56 +8,56 @@ msgstr ""
"Language: bn\n" "Language: bn\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "পিডিএফ প্রিন্ট করুন"
msgid "Theme by the" msgid "Theme by the"
msgstr "থিম দ্বারা" msgstr "থিম দ্বারা"
msgid "Open an issue" msgid "Download source file"
msgstr "একটি সমস্যা খুলুন" 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 "open issue" msgid "open issue"
msgstr "খোলা সমস্যা" msgstr "খোলা সমস্যা"
msgid "Launch" msgid "previous page"
msgstr "শুরু করা" msgstr "আগের পৃষ্ঠা"
msgid "Print to PDF" msgid "Download notebook file"
msgstr "পিডিএফ প্রিন্ট করুন" msgstr "নোটবুক ফাইল ডাউনলোড করুন"
msgid "By the" msgid "Copyright"
msgstr "কপিরাইট"
msgid "Download this page"
msgstr "এই পৃষ্ঠাটি ডাউনলোড করুন"
msgid "Source repository"
msgstr "উত্স সংগ্রহস্থল"
msgid "By"
msgstr "দ্বারা" msgstr "দ্বারা"
msgid "Last updated on" msgid "Last updated on"
msgstr "সর্বশেষ আপডেট" msgstr "সর্বশেষ আপডেট"
msgid "Download source file" msgid "Toggle navigation"
msgstr "উত্স ফাইল ডাউনলোড করুন" msgstr "নেভিগেশন টগল করুন"
msgid "Download this page" msgid "Sphinx Book Theme"
msgstr "এই পৃষ্ঠাটি ডাউনলোড করুন" 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" "Language: ca\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\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" msgid "Print to PDF"
msgstr "Imprimeix a PDF" msgstr "Imprimeix a PDF"
msgid "By the" msgid "Theme by the"
msgstr "Per la" msgstr "Tema del"
msgid "Last updated on"
msgstr "Darrera actualització el"
msgid "Download source file" msgid "Download source file"
msgstr "Baixeu el fitxer font" 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" msgid "Download this page"
msgstr "Descarregueu aquesta pàgina" 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" "Language: cs\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "Tisk do PDF"
msgid "Theme by the" msgid "Theme by the"
msgstr "Téma od" msgstr "Téma od"
msgid "Open an issue" msgid "Download source file"
msgstr "Otevřete problém" msgstr "Stáhněte si zdrojový soubor"
msgid "open issue"
msgstr "otevřené číslo"
msgid "Contents" msgid "Contents"
msgstr "Obsah" msgstr "Obsah"
msgid "previous page"
msgstr "předchozí stránka"
msgid "Download notebook file" msgid "Download notebook file"
msgstr "Stáhnout soubor poznámkového bloku" 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" msgid "Sphinx Book Theme"
msgstr "Téma knihy Sfinga" 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" msgid "Fullscreen mode"
msgstr "Režim celé obrazovky" msgstr "Režim celé obrazovky"
msgid "Edit this page" msgid "Edit this page"
msgstr "Upravit tuto stránku" 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" msgid "By the"
msgstr "Podle" msgstr "Podle"
msgid "Last updated on" msgid "next page"
msgstr "Naposledy aktualizováno" msgstr "další strana"
msgid "Download source file"
msgstr "Stáhněte si zdrojový soubor"
msgid "Download this page"
msgstr "Stáhněte si tuto stránku"

View File

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

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: de\n" "Language: de\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "In PDF drucken"
msgid "Theme by the" msgid "Theme by the"
msgstr "Thema von der" msgstr "Thema von der"
msgid "Open an issue" msgid "Download source file"
msgstr "Öffnen Sie ein Problem" msgstr "Quelldatei herunterladen"
msgid "open issue"
msgstr "offenes Thema"
msgid "Contents" msgid "Contents"
msgstr "Inhalt" msgstr "Inhalt"
msgid "previous page"
msgstr "vorherige Seite"
msgid "Download notebook file" msgid "Download notebook file"
msgstr "Notebook-Datei herunterladen" 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" msgid "Sphinx Book Theme"
msgstr "Sphinx-Buch-Thema" 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" msgid "Fullscreen mode"
msgstr "Vollbildmodus" msgstr "Vollbildmodus"
msgid "Edit this page" msgid "Edit this page"
msgstr "Bearbeite diese Seite" 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" msgid "By the"
msgstr "Bis zum" msgstr "Bis zum"
msgid "Last updated on" msgid "next page"
msgstr "Zuletzt aktualisiert am" msgstr "Nächste Seite"
msgid "Download source file"
msgstr "Quelldatei herunterladen"
msgid "Download this page"
msgstr "Laden Sie diese Seite herunter"

View File

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

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: eo\n" "Language: eo\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "Presi al PDF"
msgid "Theme by the" msgid "Theme by the"
msgstr "Temo de la" msgstr "Temo de la"
msgid "Open an issue" msgid "Download source file"
msgstr "Malfermu numeron" msgstr "Elŝutu fontodosieron"
msgid "open issue"
msgstr "malferma numero"
msgid "Contents" msgid "Contents"
msgstr "Enhavo" msgstr "Enhavo"
msgid "previous page"
msgstr "antaŭa paĝo"
msgid "Download notebook file" msgid "Download notebook file"
msgstr "Elŝutu kajeran dosieron" 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" msgid "Sphinx Book Theme"
msgstr "Sfinksa Libro-Temo" 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" msgid "Fullscreen mode"
msgstr "Plenekrana reĝimo" msgstr "Plenekrana reĝimo"
msgid "Edit this page" msgid "Edit this page"
msgstr "Redaktu ĉi tiun paĝon" 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" msgid "By the"
msgstr "Per la" msgstr "Per la"
msgid "Last updated on" msgid "next page"
msgstr "Laste ĝisdatigita la" msgstr "sekva paĝo"
msgid "Download source file"
msgstr "Elŝutu fontodosieron"
msgid "Download this page"
msgstr "Elŝutu ĉi tiun paĝon"

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: es\n" "Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "Imprimir en PDF"
msgid "Theme by the" msgid "Theme by the"
msgstr "Tema por el" msgstr "Tema por el"
msgid "Open an issue" msgid "Download source file"
msgstr "Abrir un problema" msgstr "Descargar archivo fuente"
msgid "open issue"
msgstr "Tema abierto"
msgid "Contents" msgid "Contents"
msgstr "Contenido" msgstr "Contenido"
msgid "previous page"
msgstr "pagina anterior"
msgid "Download notebook file" msgid "Download notebook file"
msgstr "Descargar archivo de cuaderno" 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" msgid "Sphinx Book Theme"
msgstr "Tema del libro de la esfinge" 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" msgid "Fullscreen mode"
msgstr "Modo de pantalla completa" msgstr "Modo de pantalla completa"
msgid "Edit this page" msgid "Edit this page"
msgstr "Edita esta página" 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" msgid "By the"
msgstr "Por el" msgstr "Por el"
msgid "Last updated on" msgid "next page"
msgstr "Ultima actualización en" msgstr "siguiente página"
msgid "Download source file"
msgstr "Descargar archivo fuente"
msgid "Download this page"
msgstr "Descarga esta pagina"

View File

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

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: fi\n" "Language: fi\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "Tulosta PDF-tiedostoon"
msgid "Theme by the" msgid "Theme by the"
msgstr "Teeman tekijä" msgstr "Teeman tekijä"
msgid "Open an issue" msgid "Download source file"
msgstr "Avaa ongelma" msgstr "Lataa lähdetiedosto"
msgid "open issue"
msgstr "avoin ongelma"
msgid "Contents" msgid "Contents"
msgstr "Sisällys" msgstr "Sisällys"
msgid "previous page"
msgstr "Edellinen sivu"
msgid "Download notebook file" msgid "Download notebook file"
msgstr "Lataa muistikirjatiedosto" 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" msgid "Sphinx Book Theme"
msgstr "Sphinx-kirjan teema" 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" msgid "Fullscreen mode"
msgstr "Koko näytön tila" msgstr "Koko näytön tila"
msgid "Edit this page" msgid "Edit this page"
msgstr "Muokkaa tätä sivua" 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" msgid "By the"
msgstr "Mukaan" msgstr "Mukaan"
msgid "Last updated on" msgid "next page"
msgstr "Viimeksi päivitetty" msgstr "seuraava sivu"
msgid "Download source file"
msgstr "Lataa lähdetiedosto"
msgid "Download this page"
msgstr "Lataa tämä sivu"

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: fr\n" "Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "Imprimer au format PDF"
msgid "Theme by the" msgid "Theme by the"
msgstr "Thème par le" msgstr "Thème par le"
msgid "Open an issue" msgid "Download source file"
msgstr "Ouvrez un problème" msgstr "Télécharger le fichier source"
msgid "open issue"
msgstr "signaler un problème"
msgid "Contents" msgid "Contents"
msgstr "Contenu" msgstr "Contenu"
msgid "previous page"
msgstr "page précédente"
msgid "Download notebook file" msgid "Download notebook file"
msgstr "Télécharger le fichier notebook" 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" msgid "Sphinx Book Theme"
msgstr "Thème du livre Sphinx" 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" msgid "Fullscreen mode"
msgstr "Mode plein écran" msgstr "Mode plein écran"
msgid "Edit this page" msgid "Edit this page"
msgstr "Modifier cette 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" msgid "By the"
msgstr "Par le" msgstr "Par le"
msgid "Last updated on" msgid "next page"
msgstr "Dernière mise à jour le" msgstr "page suivante"
msgid "Download source file"
msgstr "Télécharger le fichier source"
msgid "Download this page"
msgstr "Téléchargez cette page"

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: hr\n" "Language: hr\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "Ispis u PDF"
msgid "Theme by the" msgid "Theme by the"
msgstr "Tema autora" msgstr "Tema autora"
msgid "Open an issue" msgid "Download source file"
msgstr "Otvorite izdanje" msgstr "Preuzmi izvornu datoteku"
msgid "open issue"
msgstr "otvoreno izdanje"
msgid "Contents" msgid "Contents"
msgstr "Sadržaj" msgstr "Sadržaj"
msgid "previous page"
msgstr "Prethodna stranica"
msgid "Download notebook file" msgid "Download notebook file"
msgstr "Preuzmi datoteku bilježnice" 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" msgid "Sphinx Book Theme"
msgstr "Tema knjige Sphinx" 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" msgid "Fullscreen mode"
msgstr "Način preko cijelog zaslona" msgstr "Način preko cijelog zaslona"
msgid "Edit this page" msgid "Edit this page"
msgstr "Uredite ovu stranicu" 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" msgid "By the"
msgstr "Od strane" msgstr "Od strane"
msgid "Last updated on" msgid "next page"
msgstr "Posljednje ažuriranje:" msgstr "sljedeća stranica"
msgid "Download source file"
msgstr "Preuzmi izvornu datoteku"
msgid "Download this page"
msgstr "Preuzmite ovu stranicu"

View File

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

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: it\n" "Language: it\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "Stampa in PDF"
msgid "Theme by the" msgid "Theme by the"
msgstr "Tema di" msgstr "Tema di"
msgid "Open an issue" msgid "Download source file"
msgstr "Apri un problema" msgstr "Scarica il file sorgente"
msgid "open issue"
msgstr "questione aperta"
msgid "Contents" msgid "Contents"
msgstr "Contenuti" msgstr "Contenuti"
msgid "previous page"
msgstr "pagina precedente"
msgid "Download notebook file" msgid "Download notebook file"
msgstr "Scarica il file del taccuino" 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" msgid "Sphinx Book Theme"
msgstr "Tema del libro della Sfinge" 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" msgid "Fullscreen mode"
msgstr "Modalità schermo intero" msgstr "Modalità schermo intero"
msgid "Edit this page" msgid "Edit this page"
msgstr "Modifica questa pagina" 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" msgid "By the"
msgstr "Dal" msgstr "Dal"
msgid "Last updated on" msgid "next page"
msgstr "Ultimo aggiornamento il" msgstr "pagina successiva"
msgid "Download source file"
msgstr "Scarica il file sorgente"
msgid "Download this page"
msgstr "Scarica questa pagina"

View File

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

View File

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

View File

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

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: lt\n" "Language: lt\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "Spausdinti į PDF"
msgid "Theme by the" msgid "Theme by the"
msgstr "Tema" msgstr "Tema"
msgid "Open an issue" msgid "Download source file"
msgstr "Atidarykite problemą" msgstr "Atsisiųsti šaltinio failą"
msgid "open issue"
msgstr "atviras klausimas"
msgid "Contents" msgid "Contents"
msgstr "Turinys" msgstr "Turinys"
msgid "previous page"
msgstr "Ankstesnis puslapis"
msgid "Download notebook file" msgid "Download notebook file"
msgstr "Atsisiųsti nešiojamojo kompiuterio failą" 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" msgid "Sphinx Book Theme"
msgstr "Sfinkso knygos tema" 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" msgid "Fullscreen mode"
msgstr "Pilno ekrano režimas" msgstr "Pilno ekrano režimas"
msgid "Edit this page" msgid "Edit this page"
msgstr "Redaguoti šį puslapį" 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" msgid "By the"
msgstr "Prie" msgstr "Prie"
msgid "Last updated on" msgid "next page"
msgstr "Paskutinį kartą atnaujinta" msgstr "Kitas puslapis"
msgid "Download source file"
msgstr "Atsisiųsti šaltinio failą"
msgid "Download this page"
msgstr "Atsisiųskite šį puslapį"

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: lv\n" "Language: lv\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "Drukāt PDF formātā"
msgid "Theme by the" msgid "Theme by the"
msgstr "Autora tēma" msgstr "Autora tēma"
msgid "Open an issue" msgid "Download source file"
msgstr "Atveriet problēmu" msgstr "Lejupielādēt avota failu"
msgid "open issue"
msgstr "atklāts jautājums"
msgid "Contents" msgid "Contents"
msgstr "Saturs" msgstr "Saturs"
msgid "previous page"
msgstr "iepriekšējā lapa"
msgid "Download notebook file" msgid "Download notebook file"
msgstr "Lejupielādēt piezīmju grāmatiņu" 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" msgid "Sphinx Book Theme"
msgstr "Sfinksa grāmatas tēma" 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" msgid "Fullscreen mode"
msgstr "Pilnekrāna režīms" msgstr "Pilnekrāna režīms"
msgid "Edit this page" msgid "Edit this page"
msgstr "Rediģēt šo lapu" 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" msgid "By the"
msgstr "Ar" msgstr "Ar"
msgid "Last updated on" msgid "next page"
msgstr "Pēdējoreiz atjaunināts" msgstr "nākamā lapaspuse"
msgid "Download source file"
msgstr "Lejupielādēt avota failu"
msgid "Download this page"
msgstr "Lejupielādējiet šo lapu"

View File

@ -8,59 +8,59 @@ msgstr ""
"Language: ml\n" "Language: ml\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "PDF- ലേക്ക് പ്രിന്റുചെയ്യുക"
msgid "Theme by the" msgid "Theme by the"
msgstr "പ്രമേയം" msgstr "പ്രമേയം"
msgid "Open an issue" msgid "Download source file"
msgstr "ഒരു പ്രശ്നം തുറക്കുക" 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" msgid "open issue"
msgstr "തുറന്ന പ്രശ്നം" msgstr "തുറന്ന പ്രശ്നം"
msgid "Launch" msgid "previous page"
msgstr "സമാരംഭിക്കുക" msgstr "മുൻപത്തെ താൾ"
msgid "Print to PDF" msgid "Download notebook file"
msgstr "PDF- ലേക്ക് പ്രിന്റുചെയ്യുക" msgstr "നോട്ട്ബുക്ക് ഫയൽ ഡൺലോഡ് ചെയ്യുക"
msgid "By the" msgid "Copyright"
msgstr "പകർപ്പവകാശം"
msgid "Download this page"
msgstr "ഈ പേജ് ഡൗൺലോഡുചെയ്യുക"
msgid "Source repository"
msgstr "ഉറവിട ശേഖരം"
msgid "By"
msgstr "എഴുതിയത്" msgstr "എഴുതിയത്"
msgid "Last updated on" msgid "Last updated on"
msgstr "അവസാനം അപ്‌ഡേറ്റുചെയ്‌തത്" msgstr "അവസാനം അപ്‌ഡേറ്റുചെയ്‌തത്"
msgid "Download source file" msgid "Toggle navigation"
msgstr "ഉറവിട ഫയൽ ഡൗൺലോഡുചെയ്യുക" msgstr "നാവിഗേഷൻ ടോഗിൾ ചെയ്യുക"
msgid "Download this page" msgid "Sphinx Book Theme"
msgstr "ഈ പേജ് ഡൗൺലോഡുചെയ്യുക" 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" "Language: mr\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "पीडीएफवर मुद्रित करा"
msgid "Theme by the" msgid "Theme by the"
msgstr "द्वारा थीम" msgstr "द्वारा थीम"
msgid "Open an issue" msgid "Download source file"
msgstr "एक मुद्दा उघडा" 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" msgid "open issue"
msgstr "खुला मुद्दा" msgstr "खुला मुद्दा"
msgid "Launch" msgid "previous page"
msgstr "लाँच करा" msgstr "मागील पान"
msgid "Print to PDF" msgid "Download notebook file"
msgstr "पीडीएफवर मुद्रित करा" msgstr "नोटबुक फाईल डाउनलोड करा"
msgid "By the" msgid "Copyright"
msgstr "कॉपीराइट"
msgid "Download this page"
msgstr "हे पृष्ठ डाउनलोड करा"
msgid "Source repository"
msgstr "स्त्रोत भांडार"
msgid "By"
msgstr "द्वारा" msgstr "द्वारा"
msgid "Last updated on" msgid "Last updated on"
msgstr "अखेरचे अद्यतनित" msgstr "अखेरचे अद्यतनित"
msgid "Download source file" msgid "Toggle navigation"
msgstr "स्त्रोत फाइल डाउनलोड करा" msgstr "नेव्हिगेशन टॉगल करा"
msgid "Download this page" msgid "Sphinx Book Theme"
msgstr "हे पृष्ठ डाउनलोड करा" 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" "Language: ms\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "Cetak ke PDF"
msgid "Theme by the" msgid "Theme by the"
msgstr "Tema oleh" msgstr "Tema oleh"
msgid "Open an issue" msgid "Download source file"
msgstr "Buka masalah" msgstr "Muat turun fail sumber"
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 "open issue" msgid "open issue"
msgstr "isu terbuka" msgstr "isu terbuka"
msgid "Launch" msgid "previous page"
msgstr "Lancarkan" msgstr "halaman sebelumnya"
msgid "Print to PDF" msgid "Download notebook file"
msgstr "Cetak ke PDF" 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" msgstr "Oleh"
msgid "Last updated on" msgid "Last updated on"
msgstr "Terakhir dikemas kini pada" msgstr "Terakhir dikemas kini pada"
msgid "Download source file" msgid "Toggle navigation"
msgstr "Muat turun fail sumber" msgstr "Togol navigasi"
msgid "Download this page" msgid "Sphinx Book Theme"
msgstr "Muat turun halaman ini" 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" "Language: nl\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "Afdrukken naar pdf"
msgid "Theme by the" msgid "Theme by the"
msgstr "Thema door de" msgstr "Thema door de"
msgid "Open an issue" msgid "Download source file"
msgstr "Open een probleem" msgstr "Download het bronbestand"
msgid "open issue"
msgstr "open probleem"
msgid "Contents" msgid "Contents"
msgstr "Inhoud" msgstr "Inhoud"
msgid "previous page"
msgstr "vorige pagina"
msgid "Download notebook file" msgid "Download notebook file"
msgstr "Download notebookbestand" 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" msgid "Sphinx Book Theme"
msgstr "Sphinx-boekthema" msgstr "Sphinx-boekthema"
msgid "suggest edit"
msgstr "suggereren bewerken"
msgid "Open an issue"
msgstr "Open een probleem"
msgid "Launch"
msgstr "Lancering"
msgid "Fullscreen mode" msgid "Fullscreen mode"
msgstr "Volledig scherm" msgstr "Volledig scherm"
msgid "Edit this page" msgid "Edit this page"
msgstr "bewerk deze pagina" 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" msgid "By the"
msgstr "Door de" msgstr "Door de"
msgid "Last updated on" msgid "next page"
msgstr "Laatst geupdate op" msgstr "volgende bladzijde"
msgid "Download source file"
msgstr "Download het bronbestand"
msgid "Download this page"
msgstr "Download deze pagina"

View File

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

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: pl\n" "Language: pl\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "Drukuj do PDF"
msgid "Theme by the" msgid "Theme by the"
msgstr "Motyw autorstwa" msgstr "Motyw autorstwa"
msgid "Open an issue" msgid "Download source file"
msgstr "Otwórz problem" msgstr "Pobierz plik źródłowy"
msgid "open issue"
msgstr "otwarty problem"
msgid "Contents" msgid "Contents"
msgstr "Zawartość" msgstr "Zawartość"
msgid "previous page"
msgstr "Poprzednia strona"
msgid "Download notebook file" msgid "Download notebook file"
msgstr "Pobierz plik notatnika" 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" msgid "Sphinx Book Theme"
msgstr "Motyw książki Sphinx" 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" msgid "Fullscreen mode"
msgstr "Pełny ekran" msgstr "Pełny ekran"
msgid "Edit this page" msgid "Edit this page"
msgstr "Edytuj tę strone" 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" msgid "By the"
msgstr "Przez" msgstr "Przez"
msgid "Last updated on" msgid "next page"
msgstr "Ostatnia aktualizacja" msgstr "Następna strona"
msgid "Download source file"
msgstr "Pobierz plik źródłowy"
msgid "Download this page"
msgstr "Pobierz tę stronę"

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: pt\n" "Language: pt\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "Imprimir em PDF"
msgid "Theme by the" msgid "Theme by the"
msgstr "Tema por" msgstr "Tema por"
msgid "Open an issue" msgid "Download source file"
msgstr "Abra um problema" msgstr "Baixar arquivo fonte"
msgid "open issue"
msgstr "questão aberta"
msgid "Contents" msgid "Contents"
msgstr "Conteúdo" msgstr "Conteúdo"
msgid "previous page"
msgstr "página anterior"
msgid "Download notebook file" msgid "Download notebook file"
msgstr "Baixar arquivo de notebook" 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" msgid "Sphinx Book Theme"
msgstr "Tema do livro Sphinx" 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" msgid "Fullscreen mode"
msgstr "Modo tela cheia" msgstr "Modo tela cheia"
msgid "Edit this page" msgid "Edit this page"
msgstr "Edite essa página" 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" msgid "By the"
msgstr "Pelo" msgstr "Pelo"
msgid "Last updated on" msgid "next page"
msgstr "Última atualização em" msgstr "próxima página"
msgid "Download source file"
msgstr "Baixar arquivo fonte"
msgid "Download this page"
msgstr "Baixe esta página"

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: ro\n" "Language: ro\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "Imprimați în PDF"
msgid "Theme by the" msgid "Theme by the"
msgstr "Tema de" msgstr "Tema de"
msgid "Open an issue" msgid "Download source file"
msgstr "Deschideți o problemă" msgstr "Descărcați fișierul sursă"
msgid "open issue"
msgstr "problema deschisă"
msgid "Contents" msgid "Contents"
msgstr "Cuprins" msgstr "Cuprins"
msgid "previous page"
msgstr "pagina anterioară"
msgid "Download notebook file" msgid "Download notebook file"
msgstr "Descărcați fișierul notebook" 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" msgid "Sphinx Book Theme"
msgstr "Tema Sphinx Book" 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" msgid "Fullscreen mode"
msgstr "Modul ecran întreg" msgstr "Modul ecran întreg"
msgid "Edit this page" msgid "Edit this page"
msgstr "Editați această pagină" 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" msgid "By the"
msgstr "Langa" msgstr "Langa"
msgid "Last updated on" msgid "next page"
msgstr "Ultima actualizare la" msgstr "pagina următoare"
msgid "Download source file"
msgstr "Descărcați fișierul sursă"
msgid "Download this page"
msgstr "Descarcă această pagină"

View File

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

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: sk\n" "Language: sk\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "Tlač do PDF"
msgid "Theme by the" msgid "Theme by the"
msgstr "Téma od" msgstr "Téma od"
msgid "Open an issue" msgid "Download source file"
msgstr "Otvorte problém" msgstr "Stiahnite si zdrojový súbor"
msgid "open issue"
msgstr "otvorené vydanie"
msgid "Contents" msgid "Contents"
msgstr "Obsah" msgstr "Obsah"
msgid "previous page"
msgstr "predchádzajúca strana"
msgid "Download notebook file" msgid "Download notebook file"
msgstr "Stiahnite si zošit" 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" msgid "Sphinx Book Theme"
msgstr "Téma knihy Sfinga" 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" msgid "Fullscreen mode"
msgstr "Režim celej obrazovky" msgstr "Režim celej obrazovky"
msgid "Edit this page" msgid "Edit this page"
msgstr "Upraviť túto stránku" 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" msgid "By the"
msgstr "Podľa" msgstr "Podľa"
msgid "Last updated on" msgid "next page"
msgstr "Posledná aktualizácia dňa" msgstr "ďalšia strana"
msgid "Download source file"
msgstr "Stiahnite si zdrojový súbor"
msgid "Download this page"
msgstr "Stiahnite si túto stránku"

View File

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

View File

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

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: sv\n" "Language: sv\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "Skriv ut till PDF"
msgid "Theme by the" msgid "Theme by the"
msgstr "Tema av" msgstr "Tema av"
msgid "Open an issue" msgid "Download source file"
msgstr "Öppna en problemrapport" msgstr "Ladda ner källfil"
msgid "open issue"
msgstr "öppna problemrapport"
msgid "Contents" msgid "Contents"
msgstr "Innehåll" msgstr "Innehåll"
msgid "previous page"
msgstr "föregående sida"
msgid "Download notebook file" msgid "Download notebook file"
msgstr "Ladda ner notebook-fil" 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" msgid "Sphinx Book Theme"
msgstr "Sphinx Boktema" 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" msgid "Fullscreen mode"
msgstr "Fullskärmsläge" msgstr "Fullskärmsläge"
msgid "Edit this page" msgid "Edit this page"
msgstr "Redigera den här sidan" 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" msgid "By the"
msgstr "Av den" msgstr "Av den"
msgid "Last updated on" msgid "next page"
msgstr "Senast uppdaterad den" msgstr "nästa sida"
msgid "Download source file"
msgstr "Ladda ner källfil"
msgid "Download this page"
msgstr "Ladda ner den här sidan"

View File

@ -8,59 +8,59 @@ msgstr ""
"Language: ta\n" "Language: ta\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\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" msgid "Print to PDF"
msgstr "PDF இல் அச்சிடுக" msgstr "PDF இல் அச்சிடுக"
msgid "By the" msgid "Theme by the"
msgstr "மூலம்" msgstr "வழங்கிய தீம்"
msgid "Last updated on"
msgstr "கடைசியாக புதுப்பிக்கப்பட்டது"
msgid "Download source file" msgid "Download source file"
msgstr "மூல கோப்பைப் பதிவிறக்குக" msgstr "மூல கோப்பைப் பதிவிறக்குக"
msgid "open issue"
msgstr "திறந்த பிரச்சினை"
msgid "previous page"
msgstr "முந்தைய பக்கம்"
msgid "Download notebook file"
msgstr "நோட்புக் கோப்பைப் பதிவிறக்கவும்"
msgid "Copyright"
msgstr "பதிப்புரிமை"
msgid "Download this page" msgid "Download this page"
msgstr "இந்தப் பக்கத்தைப் பதிவிறக்கவும்" 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" "Language: te\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "PDF కి ముద్రించండి"
msgid "Theme by the" msgid "Theme by the"
msgstr "ద్వారా థీమ్" msgstr "ద్వారా థీమ్"
msgid "Open an issue" msgid "Download source file"
msgstr "సమస్యను తెరవండి" 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" msgid "open issue"
msgstr "ఓపెన్ ఇష్యూ" msgstr "ఓపెన్ ఇష్యూ"
msgid "Launch" msgid "previous page"
msgstr "ప్రారంభించండి" msgstr "ముందు పేజి"
msgid "Print to PDF" msgid "Download notebook file"
msgstr "PDF కి ముద్రించండి" msgstr "నోట్బుక్ ఫైల్ను డౌన్లోడ్ చేయండి"
msgid "By the" msgid "Copyright"
msgstr "కాపీరైట్"
msgid "Download this page"
msgstr "ఈ పేజీని డౌన్‌లోడ్ చేయండి"
msgid "Source repository"
msgstr "మూల రిపోజిటరీ"
msgid "By"
msgstr "ద్వారా" msgstr "ద్వారా"
msgid "Last updated on" msgid "Last updated on"
msgstr "చివరిగా నవీకరించబడింది" msgstr "చివరిగా నవీకరించబడింది"
msgid "Download source file" msgid "Toggle navigation"
msgstr "మూల ఫైల్‌ను డౌన్‌లోడ్ చేయండి" msgstr "నావిగేషన్‌ను టోగుల్ చేయండి"
msgid "Download this page" msgid "Sphinx Book Theme"
msgstr "ఈ పేజీని డౌన్‌లోడ్ చేయండి" 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" "Language: tg\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "Чоп ба PDF"
msgid "Theme by the" msgid "Theme by the"
msgstr "Мавзӯъи аз" msgstr "Мавзӯъи аз"
msgid "Open an issue" msgid "Download source file"
msgstr "Масъаларо кушоед" msgstr "Файли манбаъро зеркашӣ кунед"
msgid "open issue"
msgstr "барориши кушод"
msgid "Contents" msgid "Contents"
msgstr "Мундариҷа" msgstr "Мундариҷа"
msgid "previous page"
msgstr "саҳифаи қаблӣ"
msgid "Download notebook file" msgid "Download notebook file"
msgstr "Файли дафтарро зеркашӣ кунед" 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" msgid "Sphinx Book Theme"
msgstr "Сфинкс Мавзӯи китоб" msgstr "Сфинкс Мавзӯи китоб"
msgid "suggest edit"
msgstr "пешниҳод вироиш"
msgid "Open an issue"
msgstr "Масъаларо кушоед"
msgid "Launch"
msgstr "Оғоз"
msgid "Fullscreen mode" msgid "Fullscreen mode"
msgstr "Ҳолати экрани пурра" msgstr "Ҳолати экрани пурра"
msgid "Edit this page" msgid "Edit this page"
msgstr "Ин саҳифаро таҳрир кунед" 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" msgid "By the"
msgstr "Бо" msgstr "Бо"
msgid "Last updated on" msgid "next page"
msgstr "Last навсозӣ дар" msgstr "саҳифаи оянда"
msgid "Download source file"
msgstr "Файли манбаъро зеркашӣ кунед"
msgid "Download this page"
msgstr "Ин саҳифаро зеркашӣ кунед"

View File

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

View File

@ -8,59 +8,59 @@ msgstr ""
"Language: tl\n" "Language: tl\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\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" msgid "Print to PDF"
msgstr "I-print sa PDF" msgstr "I-print sa PDF"
msgid "By the" msgid "Theme by the"
msgstr "Sa pamamagitan ng" msgstr "Tema ng"
msgid "Last updated on"
msgstr "Huling na-update noong"
msgid "Download source file" msgid "Download source file"
msgstr "Mag-download ng file ng pinagmulan" 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" msgid "Download this page"
msgstr "I-download ang pahinang ito" 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" "Language: tr\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "PDF olarak yazdır"
msgid "Theme by the" msgid "Theme by the"
msgstr "Tarafından tema" msgstr "Tarafından tema"
msgid "Open an issue" msgid "Download source file"
msgstr "Bir sorunu açın" msgstr "Kaynak dosyayı indirin"
msgid "open issue"
msgstr "Açık konu"
msgid "Contents" msgid "Contents"
msgstr "İçindekiler" msgstr "İçindekiler"
msgid "previous page"
msgstr "önceki sayfa"
msgid "Download notebook file" msgid "Download notebook file"
msgstr "Defter dosyasını indirin" 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" msgid "Sphinx Book Theme"
msgstr "Sfenks Kitap Teması" 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" msgid "Fullscreen mode"
msgstr "Tam ekran modu" msgstr "Tam ekran modu"
msgid "Edit this page" msgid "Edit this page"
msgstr "Bu sayfayı düzenle" 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" msgid "By the"
msgstr "Tarafından" msgstr "Tarafından"
msgid "Last updated on" msgid "next page"
msgstr "Son güncelleme tarihi" msgstr "sonraki Sayfa"
msgid "Download source file"
msgstr "Kaynak dosyayı indirin"
msgid "Download this page"
msgstr "Bu sayfayı indirin"

View File

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

View File

@ -8,59 +8,59 @@ msgstr ""
"Language: ur\n" "Language: ur\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\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" msgid "Print to PDF"
msgstr "پی ڈی ایف پرنٹ کریں" msgstr "پی ڈی ایف پرنٹ کریں"
msgid "By the" msgid "Theme by the"
msgstr "کی طرف" msgstr "کے ذریعہ تھیم"
msgid "Last updated on"
msgstr "آخری بار تازہ کاری ہوئی"
msgid "Download source file" msgid "Download source file"
msgstr "سورس فائل ڈاؤن لوڈ کریں" msgstr "سورس فائل ڈاؤن لوڈ کریں"
msgid "open issue"
msgstr "کھلا مسئلہ"
msgid "previous page"
msgstr "سابقہ ​​صفحہ"
msgid "Download notebook file"
msgstr "نوٹ بک فائل ڈاؤن لوڈ کریں"
msgid "Copyright"
msgstr "کاپی رائٹ"
msgid "Download this page" msgid "Download this page"
msgstr "اس صفحے کو ڈاؤن لوڈ کریں" 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" "Language: vi\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "In sang PDF"
msgid "Theme by the" msgid "Theme by the"
msgstr "Chủ đề của" msgstr "Chủ đề của"
msgid "Open an issue" msgid "Download source file"
msgstr "Mở một vấn đề" msgstr "Tải xuống tệp nguồn"
msgid "open issue"
msgstr "vấn đề mở"
msgid "Contents" msgid "Contents"
msgstr "Nội dung" msgstr "Nội dung"
msgid "previous page"
msgstr "trang trước"
msgid "Download notebook file" msgid "Download notebook file"
msgstr "Tải xuống tệp sổ tay" 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" msgid "Sphinx Book Theme"
msgstr "Chủ đề sách nhân sư" 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" msgid "Fullscreen mode"
msgstr "Chế độ toàn màn hình" msgstr "Chế độ toàn màn hình"
msgid "Edit this page" msgid "Edit this page"
msgstr "chỉnh sửa trang này" 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" msgid "By the"
msgstr "Bằng" msgstr "Bằng"
msgid "Last updated on" msgid "next page"
msgstr "Cập nhật lần cuối vào" msgstr "Trang tiếp theo"
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"

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: zh_CN\n" "Language: zh_CN\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "列印成 PDF"
msgid "Theme by the" msgid "Theme by the"
msgstr "主题作者:" msgstr "主题作者:"
msgid "Open an issue" msgid "Download source file"
msgstr "下载源文件"
msgid "open issue"
msgstr "创建议题" msgstr "创建议题"
msgid "Contents" msgid "Contents"
msgstr "目录" msgstr "目录"
msgid "previous page"
msgstr "上一页"
msgid "Download notebook file" msgid "Download notebook file"
msgstr "下载笔记本文件" 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" msgid "Sphinx Book Theme"
msgstr "Sphinx Book 主题" msgstr "Sphinx Book 主题"
msgid "suggest edit"
msgstr "提出修改建议"
msgid "Open an issue"
msgstr "创建议题"
msgid "Launch"
msgstr "启动"
msgid "Fullscreen mode" msgid "Fullscreen mode"
msgstr "全屏模式" msgstr "全屏模式"
msgid "Edit this page" msgid "Edit this page"
msgstr "编辑此页面" 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" msgid "By the"
msgstr "作者:" msgstr "作者:"
msgid "Last updated on" msgid "next page"
msgstr "上次更新时间:" msgstr "下一页"
msgid "Download source file"
msgstr "下载源文件"
msgid "Download this page"
msgstr "下载此页面"

View File

@ -8,68 +8,68 @@ msgstr ""
"Language: zh_TW\n" "Language: zh_TW\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Print to PDF"
msgstr "列印成 PDF"
msgid "Theme by the" msgid "Theme by the"
msgstr "佈景主題作者:" msgstr "佈景主題作者:"
msgid "Open an issue" msgid "Download source file"
msgstr "開啟議題" msgstr "下載原始檔"
msgid "open issue"
msgstr "公開的問題"
msgid "Contents" msgid "Contents"
msgstr "目錄" msgstr "目錄"
msgid "previous page"
msgstr "上一頁"
msgid "Download notebook file" msgid "Download notebook file"
msgstr "下載 Notebook 檔案" 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" msgid "Sphinx Book Theme"
msgstr "Sphinx Book 佈景主題" msgstr "Sphinx Book 佈景主題"
msgid "suggest edit"
msgstr "提出修改建議"
msgid "Open an issue"
msgstr "開啟議題"
msgid "Launch"
msgstr "啟動"
msgid "Fullscreen mode" msgid "Fullscreen mode"
msgstr "全螢幕模式" msgstr "全螢幕模式"
msgid "Edit this page" msgid "Edit this page"
msgstr "編輯此頁面" 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" msgid "By the"
msgstr "作者:" msgstr "作者:"
msgid "Last updated on" msgid "next page"
msgstr "最後更新時間:" msgstr "下一頁"
msgid "Download source file"
msgstr "下載原始檔"
msgid "Download this 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 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 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 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 .hll { background-color: #fae4c2 }
html[data-theme="light"] .highlight { background: #fefefe; color: #545454 } html[data-theme="light"] .highlight { background: #fefefe; color: #080808 }
html[data-theme="light"] .highlight .c { color: #797129 } /* Comment */ html[data-theme="light"] .highlight .c { color: #515151 } /* Comment */
html[data-theme="light"] .highlight .err { color: #d91e18 } /* Error */ html[data-theme="light"] .highlight .err { color: #a12236 } /* Error */
html[data-theme="light"] .highlight .k { color: #7928a1 } /* Keyword */ html[data-theme="light"] .highlight .k { color: #6730c5 } /* Keyword */
html[data-theme="light"] .highlight .l { color: #797129 } /* Literal */ html[data-theme="light"] .highlight .l { color: #7f4707 } /* Literal */
html[data-theme="light"] .highlight .n { color: #545454 } /* Name */ html[data-theme="light"] .highlight .n { color: #080808 } /* Name */
html[data-theme="light"] .highlight .o { color: #008000 } /* Operator */ html[data-theme="light"] .highlight .o { color: #00622f } /* Operator */
html[data-theme="light"] .highlight .p { color: #545454 } /* Punctuation */ html[data-theme="light"] .highlight .p { color: #080808 } /* Punctuation */
html[data-theme="light"] .highlight .ch { color: #797129 } /* Comment.Hashbang */ html[data-theme="light"] .highlight .ch { color: #515151 } /* Comment.Hashbang */
html[data-theme="light"] .highlight .cm { color: #797129 } /* Comment.Multiline */ html[data-theme="light"] .highlight .cm { color: #515151 } /* Comment.Multiline */
html[data-theme="light"] .highlight .cp { color: #797129 } /* Comment.Preproc */ html[data-theme="light"] .highlight .cp { color: #515151 } /* Comment.Preproc */
html[data-theme="light"] .highlight .cpf { color: #797129 } /* Comment.PreprocFile */ html[data-theme="light"] .highlight .cpf { color: #515151 } /* Comment.PreprocFile */
html[data-theme="light"] .highlight .c1 { color: #797129 } /* Comment.Single */ html[data-theme="light"] .highlight .c1 { color: #515151 } /* Comment.Single */
html[data-theme="light"] .highlight .cs { color: #797129 } /* Comment.Special */ html[data-theme="light"] .highlight .cs { color: #515151 } /* Comment.Special */
html[data-theme="light"] .highlight .gd { color: #007faa } /* Generic.Deleted */ 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 .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 .gs { font-weight: bold } /* Generic.Strong */
html[data-theme="light"] .highlight .gu { color: #007faa } /* Generic.Subheading */ html[data-theme="light"] .highlight .gu { color: #005b82 } /* Generic.Subheading */
html[data-theme="light"] .highlight .kc { color: #7928a1 } /* Keyword.Constant */ html[data-theme="light"] .highlight .kc { color: #6730c5 } /* Keyword.Constant */
html[data-theme="light"] .highlight .kd { color: #7928a1 } /* Keyword.Declaration */ html[data-theme="light"] .highlight .kd { color: #6730c5 } /* Keyword.Declaration */
html[data-theme="light"] .highlight .kn { color: #7928a1 } /* Keyword.Namespace */ html[data-theme="light"] .highlight .kn { color: #6730c5 } /* Keyword.Namespace */
html[data-theme="light"] .highlight .kp { color: #7928a1 } /* Keyword.Pseudo */ html[data-theme="light"] .highlight .kp { color: #6730c5 } /* Keyword.Pseudo */
html[data-theme="light"] .highlight .kr { color: #7928a1 } /* Keyword.Reserved */ html[data-theme="light"] .highlight .kr { color: #6730c5 } /* Keyword.Reserved */
html[data-theme="light"] .highlight .kt { color: #797129 } /* Keyword.Type */ html[data-theme="light"] .highlight .kt { color: #7f4707 } /* Keyword.Type */
html[data-theme="light"] .highlight .ld { color: #797129 } /* Literal.Date */ html[data-theme="light"] .highlight .ld { color: #7f4707 } /* Literal.Date */
html[data-theme="light"] .highlight .m { color: #797129 } /* Literal.Number */ html[data-theme="light"] .highlight .m { color: #7f4707 } /* Literal.Number */
html[data-theme="light"] .highlight .s { color: #008000 } /* Literal.String */ html[data-theme="light"] .highlight .s { color: #00622f } /* Literal.String */
html[data-theme="light"] .highlight .na { color: #797129 } /* Name.Attribute */ html[data-theme="light"] .highlight .na { color: #912583 } /* Name.Attribute */
html[data-theme="light"] .highlight .nb { color: #797129 } /* Name.Builtin */ html[data-theme="light"] .highlight .nb { color: #7f4707 } /* Name.Builtin */
html[data-theme="light"] .highlight .nc { color: #007faa } /* Name.Class */ html[data-theme="light"] .highlight .nc { color: #005b82 } /* Name.Class */
html[data-theme="light"] .highlight .no { color: #007faa } /* Name.Constant */ html[data-theme="light"] .highlight .no { color: #005b82 } /* Name.Constant */
html[data-theme="light"] .highlight .nd { color: #797129 } /* Name.Decorator */ html[data-theme="light"] .highlight .nd { color: #7f4707 } /* Name.Decorator */
html[data-theme="light"] .highlight .ni { color: #008000 } /* Name.Entity */ html[data-theme="light"] .highlight .ni { color: #00622f } /* Name.Entity */
html[data-theme="light"] .highlight .ne { color: #7928a1 } /* Name.Exception */ html[data-theme="light"] .highlight .ne { color: #6730c5 } /* Name.Exception */
html[data-theme="light"] .highlight .nf { color: #007faa } /* Name.Function */ html[data-theme="light"] .highlight .nf { color: #005b82 } /* Name.Function */
html[data-theme="light"] .highlight .nl { color: #797129 } /* Name.Label */ html[data-theme="light"] .highlight .nl { color: #7f4707 } /* Name.Label */
html[data-theme="light"] .highlight .nn { color: #545454 } /* Name.Namespace */ html[data-theme="light"] .highlight .nn { color: #080808 } /* Name.Namespace */
html[data-theme="light"] .highlight .nx { color: #545454 } /* Name.Other */ html[data-theme="light"] .highlight .nx { color: #080808 } /* Name.Other */
html[data-theme="light"] .highlight .py { color: #007faa } /* Name.Property */ html[data-theme="light"] .highlight .py { color: #005b82 } /* Name.Property */
html[data-theme="light"] .highlight .nt { color: #007faa } /* Name.Tag */ html[data-theme="light"] .highlight .nt { color: #005b82 } /* Name.Tag */
html[data-theme="light"] .highlight .nv { color: #d91e18 } /* Name.Variable */ html[data-theme="light"] .highlight .nv { color: #a12236 } /* Name.Variable */
html[data-theme="light"] .highlight .ow { color: #7928a1 } /* Operator.Word */ html[data-theme="light"] .highlight .ow { color: #6730c5 } /* Operator.Word */
html[data-theme="light"] .highlight .pm { color: #545454 } /* Punctuation.Marker */ html[data-theme="light"] .highlight .pm { color: #080808 } /* Punctuation.Marker */
html[data-theme="light"] .highlight .w { color: #545454 } /* Text.Whitespace */ html[data-theme="light"] .highlight .w { color: #080808 } /* Text.Whitespace */
html[data-theme="light"] .highlight .mb { color: #797129 } /* Literal.Number.Bin */ html[data-theme="light"] .highlight .mb { color: #7f4707 } /* Literal.Number.Bin */
html[data-theme="light"] .highlight .mf { color: #797129 } /* Literal.Number.Float */ html[data-theme="light"] .highlight .mf { color: #7f4707 } /* Literal.Number.Float */
html[data-theme="light"] .highlight .mh { color: #797129 } /* Literal.Number.Hex */ html[data-theme="light"] .highlight .mh { color: #7f4707 } /* Literal.Number.Hex */
html[data-theme="light"] .highlight .mi { color: #797129 } /* Literal.Number.Integer */ html[data-theme="light"] .highlight .mi { color: #7f4707 } /* Literal.Number.Integer */
html[data-theme="light"] .highlight .mo { color: #797129 } /* Literal.Number.Oct */ html[data-theme="light"] .highlight .mo { color: #7f4707 } /* Literal.Number.Oct */
html[data-theme="light"] .highlight .sa { color: #008000 } /* Literal.String.Affix */ html[data-theme="light"] .highlight .sa { color: #00622f } /* Literal.String.Affix */
html[data-theme="light"] .highlight .sb { color: #008000 } /* Literal.String.Backtick */ html[data-theme="light"] .highlight .sb { color: #00622f } /* Literal.String.Backtick */
html[data-theme="light"] .highlight .sc { color: #008000 } /* Literal.String.Char */ html[data-theme="light"] .highlight .sc { color: #00622f } /* Literal.String.Char */
html[data-theme="light"] .highlight .dl { color: #008000 } /* Literal.String.Delimiter */ html[data-theme="light"] .highlight .dl { color: #00622f } /* Literal.String.Delimiter */
html[data-theme="light"] .highlight .sd { color: #008000 } /* Literal.String.Doc */ html[data-theme="light"] .highlight .sd { color: #00622f } /* Literal.String.Doc */
html[data-theme="light"] .highlight .s2 { color: #008000 } /* Literal.String.Double */ html[data-theme="light"] .highlight .s2 { color: #00622f } /* Literal.String.Double */
html[data-theme="light"] .highlight .se { color: #008000 } /* Literal.String.Escape */ html[data-theme="light"] .highlight .se { color: #00622f } /* Literal.String.Escape */
html[data-theme="light"] .highlight .sh { color: #008000 } /* Literal.String.Heredoc */ html[data-theme="light"] .highlight .sh { color: #00622f } /* Literal.String.Heredoc */
html[data-theme="light"] .highlight .si { color: #008000 } /* Literal.String.Interpol */ html[data-theme="light"] .highlight .si { color: #00622f } /* Literal.String.Interpol */
html[data-theme="light"] .highlight .sx { color: #008000 } /* Literal.String.Other */ html[data-theme="light"] .highlight .sx { color: #00622f } /* Literal.String.Other */
html[data-theme="light"] .highlight .sr { color: #d91e18 } /* Literal.String.Regex */ html[data-theme="light"] .highlight .sr { color: #a12236 } /* Literal.String.Regex */
html[data-theme="light"] .highlight .s1 { color: #008000 } /* Literal.String.Single */ html[data-theme="light"] .highlight .s1 { color: #00622f } /* Literal.String.Single */
html[data-theme="light"] .highlight .ss { color: #007faa } /* Literal.String.Symbol */ html[data-theme="light"] .highlight .ss { color: #005b82 } /* Literal.String.Symbol */
html[data-theme="light"] .highlight .bp { color: #797129 } /* Name.Builtin.Pseudo */ html[data-theme="light"] .highlight .bp { color: #7f4707 } /* Name.Builtin.Pseudo */
html[data-theme="light"] .highlight .fm { color: #007faa } /* Name.Function.Magic */ html[data-theme="light"] .highlight .fm { color: #005b82 } /* Name.Function.Magic */
html[data-theme="light"] .highlight .vc { color: #d91e18 } /* Name.Variable.Class */ html[data-theme="light"] .highlight .vc { color: #a12236 } /* Name.Variable.Class */
html[data-theme="light"] .highlight .vg { color: #d91e18 } /* Name.Variable.Global */ html[data-theme="light"] .highlight .vg { color: #a12236 } /* Name.Variable.Global */
html[data-theme="light"] .highlight .vi { color: #d91e18 } /* Name.Variable.Instance */ html[data-theme="light"] .highlight .vi { color: #a12236 } /* Name.Variable.Instance */
html[data-theme="light"] .highlight .vm { color: #797129 } /* Name.Variable.Magic */ html[data-theme="light"] .highlight .vm { color: #7f4707 } /* Name.Variable.Magic */
html[data-theme="light"] .highlight .il { color: #797129 } /* Literal.Number.Integer.Long */ 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 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 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; } 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/) * Bootstrap v5.3.3 (https://getbootstrap.com/)
* Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * 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 //# 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. * 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. * :license: BSD, see LICENSE for details.
* *
*/ */
@ -99,7 +99,7 @@ const _displayItem = (item, searchTerms, highlightTerms) => {
.then((data) => { .then((data) => {
if (data) if (data)
listItem.appendChild( listItem.appendChild(
Search.makeSearchSummary(data, searchTerms) Search.makeSearchSummary(data, searchTerms, anchor)
); );
// highlight search terms in the summary // highlight search terms in the summary
if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js
@ -116,8 +116,8 @@ const _finishSearch = (resultCount) => {
); );
else else
Search.status.innerText = _( 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 = ( const _displayNextItem = (
results, results,
@ -137,6 +137,22 @@ const _displayNextItem = (
// search finished, update title and status message // search finished, update title and status message
else _finishSearch(resultCount); 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 * Default splitQuery function. Can be overridden in ``sphinx.search`` with a
@ -160,13 +176,26 @@ const Search = {
_queued_query: null, _queued_query: null,
_pulse_status: -1, _pulse_status: -1,
htmlToText: (htmlString) => { htmlToText: (htmlString, anchor) => {
const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); 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"]'); const docContent = htmlElement.querySelector('[role="main"]');
if (docContent !== undefined) return docContent.textContent; if (docContent) return docContent.textContent;
console.warn( 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 ""; return "";
}, },
@ -239,16 +268,7 @@ const Search = {
else Search.deferQuery(query); else Search.deferQuery(query);
}, },
/** _parseQuery: (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;
// stem the search terms and add them to the correct list // stem the search terms and add them to the correct list
const stemmer = new Stemmer(); const stemmer = new Stemmer();
const searchTerms = new Set(); const searchTerms = new Set();
@ -284,21 +304,38 @@ const Search = {
// console.info("required: ", [...searchTerms]); // console.info("required: ", [...searchTerms]);
// console.info("excluded: ", [...excludedTerms]); // console.info("excluded: ", [...excludedTerms]);
// array of [docname, title, anchor, descr, score, filename] return [query, searchTerms, excludedTerms, highlightTerms, objectTerms];
let results = []; },
/**
* 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")); _removeChildren(document.getElementById("search-progress"));
const queryLower = query.toLowerCase(); const queryLower = query.toLowerCase().trim();
for (const [title, foundTitles] of Object.entries(allTitles)) { 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) { for (const [file, id] of foundTitles) {
let score = Math.round(100 * queryLower.length / title.length) const score = Math.round(Scorer.title * queryLower.length / title.length);
results.push([ const boost = titles[file] === title ? 1 : 0; // add a boost for document titles
normalResults.push([
docNames[file], docNames[file],
titles[file] !== title ? `${titles[file]} > ${title}` : title, titles[file] !== title ? `${titles[file]} > ${title}` : title,
id !== null ? "#" + id : "", id !== null ? "#" + id : "",
null, null,
score, score + boost,
filenames[file], filenames[file],
]); ]);
} }
@ -308,46 +345,47 @@ const Search = {
// search for explicit entries in index directives // search for explicit entries in index directives
for (const [entry, foundEntries] of Object.entries(indexEntries)) { for (const [entry, foundEntries] of Object.entries(indexEntries)) {
if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) {
for (const [file, id] of foundEntries) { for (const [file, id, isMain] of foundEntries) {
let score = Math.round(100 * queryLower.length / entry.length) const score = Math.round(100 * queryLower.length / entry.length);
results.push([ const result = [
docNames[file], docNames[file],
titles[file], titles[file],
id ? "#" + id : "", id ? "#" + id : "",
null, null,
score, score,
filenames[file], filenames[file],
]); ];
if (isMain) {
normalResults.push(result);
} else {
nonMainIndexResults.push(result);
}
} }
} }
} }
// lookup as object // lookup as object
objectTerms.forEach((term) => objectTerms.forEach((term) =>
results.push(...Search.performObjectSearch(term, objectTerms)) normalResults.push(...Search.performObjectSearch(term, objectTerms))
); );
// lookup as search terms in fulltext // 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 // 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 // Sort each group of results by score and then alphabetically by name.
// display function below uses pop() to retrieve items) and then normalResults.sort(_orderResultsByScoreThenName);
// alphabetically nonMainIndexResults.sort(_orderResultsByScoreThenName);
results.sort((a, b) => {
const leftScore = a[4]; // Combine the result groups in (reverse) order.
const rightScore = b[4]; // Non-main index entries are typically arbitrary cross-references,
if (leftScore === rightScore) { // so display them after other results.
// same score: sort alphabetically let results = [...nonMainIndexResults, ...normalResults];
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;
});
// remove duplicate search results // remove duplicate search results
// note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept // 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; 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 // for debugging
//Search.lastresults = results.slice(); // a copy //Search.lastresults = results.slice(); // a copy
@ -466,14 +509,18 @@ const Search = {
// add support for partial matches // add support for partial matches
if (word.length > 2) { if (word.length > 2) {
const escapedWord = _escapeRegExp(word); const escapedWord = _escapeRegExp(word);
Object.keys(terms).forEach((term) => { if (!terms.hasOwnProperty(word)) {
if (term.match(escapedWord) && !terms[word]) Object.keys(terms).forEach((term) => {
arr.push({ files: terms[term], score: Scorer.partialTerm }); if (term.match(escapedWord))
}); 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 (!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 // no match but word was a required one
@ -496,9 +543,8 @@ const Search = {
// create the mapping // create the mapping
files.forEach((file) => { files.forEach((file) => {
if (fileMap.has(file) && fileMap.get(file).indexOf(word) === -1) if (!fileMap.has(file)) fileMap.set(file, [word]);
fileMap.get(file).push(word); else if (fileMap.get(file).indexOf(word) === -1) fileMap.get(file).push(word);
else fileMap.set(file, [word]);
}); });
}); });
@ -549,8 +595,8 @@ const Search = {
* search summary for a given text. keywords is a list * search summary for a given text. keywords is a list
* of stemmed words. * of stemmed words.
*/ */
makeSearchSummary: (htmlText, keywords) => { makeSearchSummary: (htmlText, keywords, anchor) => {
const text = Search.htmlToText(htmlText); const text = Search.htmlToText(htmlText, anchor);
if (text === "") return null; if (text === "") return null;
const textLower = text.toLowerCase(); 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 In the Font Awesome Free download, the SIL OFL license applies to all icons
packaged as web and desktop font files. 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". with Reserved Font Name: "Font Awesome".
This Font Software is licensed under the SIL Open Font License, Version 1.1. 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 In the Font Awesome Free download, the MIT license applies to all non-font and
non-icon files. 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 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 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) * 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 #} {# Load FontAwesome icons #}
{% macro head_pre_icons() %} {% macro head_pre_icons() %}
<link href="{{ pathto('_static/vendor/fontawesome/6.1.2/css/all.min.css', 1) }}?digest=5b4479735964841361fd" rel="stylesheet" /> <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.1.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-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.5.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 rel="preload" as="font" type="font/woff2" crossorigin href="{{ pathto('_static/vendor/fontawesome/6.5.2/webfonts/fa-regular-400.woff2', 1) }}" />
{% endmacro %} {% endmacro %}
{% macro head_pre_assets() %} {% macro head_pre_assets() %}
<!-- Loaded before other Sphinx assets --> <!-- Loaded before other Sphinx assets -->
<link href="{{ pathto('_static/styles/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=5b4479735964841361fd" 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=5b4479735964841361fd" rel="stylesheet" /> <link href="{{ pathto('_static/styles/pydata-sphinx-theme.css', 1) }}?digest=dfe6caa3a7d634c4db9b" rel="stylesheet" />
{% endmacro %} {% endmacro %}
{% macro head_js_preload() %} {% macro head_js_preload() %}
<!-- Pre-loaded scripts that we'll load fully later --> <!-- 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/bootstrap.js', 1) }}?digest=dfe6caa3a7d634c4db9b" />
<link rel="preload" as="script" href="{{ pathto('_static/scripts/pydata-sphinx-theme.js', 1) }}?digest=5b4479735964841361fd" /> <link rel="preload" as="script" href="{{ pathto('_static/scripts/pydata-sphinx-theme.js', 1) }}?digest=dfe6caa3a7d634c4db9b" />
<script src="{{ pathto('_static/vendor/fontawesome/6.1.2/js/all.min.js', 1) }}?digest=5b4479735964841361fd"></script> <script src="{{ pathto('_static/vendor/fontawesome/6.5.2/js/all.min.js', 1) }}?digest=dfe6caa3a7d634c4db9b"></script>
{% endmacro %} {% endmacro %}
{% macro body_post() %} {% macro body_post() %}
<!-- Scripts loaded after <body> so the DOM is not blocked --> <!-- 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/bootstrap.js', 1) }}?digest=dfe6caa3a7d634c4db9b"></script>
<script src="{{ pathto('_static/scripts/pydata-sphinx-theme.js', 1) }}?digest=5b4479735964841361fd"></script> <script src="{{ pathto('_static/scripts/pydata-sphinx-theme.js', 1) }}?digest=dfe6caa3a7d634c4db9b"></script>
{% endmacro %} {% 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