Скачать файл с кодом и данные можно в оригинале поста в моем блоге
Картинка к вебинару и посту взята не просто так: в определенном смысле символьное ядро Wolfram Language можно сравнить с Таносом — если бы его мощь была бы направлена в правильное русло, он мог бы стать самым мощным и полезным «добряком». Так же и с символьным ядром Wolfram — его чудовищную мощь нужно правильно использовать, а если это делать не так, оно может стать настоящим «злом», замедляющим все очень сильно. Начинающие разработчики не знают многих важнейших парадигм, идей и принципов языка Wolfram Language, пишут код, который на самом деле дико неэффективен и после этого разочаровываются, хотя тут нет вины Wolfram Language. Эту ситуацию призвана исправить эта статья.
Мне довелось работать с Wolfram Language начиная с (уже довольно далекого) 2005 года (тогда еще была версия Mathematica 5.2, сейчас уже 12-я). За эти почти 15 лет произошло очень много: добавились тысячи новых встроенных функций и областей, в которых они работают (машинное обучение, точная геометрия, работа с аудио, работа в вебе, облачные возможности, глубокая поддержка единиц измерения, интеграция с базами данных Wolfram|Alpha, географические вычисления, поддержка работы с CUDA, Python, распараллеливание операций и многое многое другое), появились новые сервисы — облако Wolfram Cloud, широко известная система вычислительных значeний Wolfram|Alpha, репозиторий функций, репозиторий нейросетей и пр.
За эти годы я применял Wolfram Language очень много (да, ранее, по сути, он назывался Mathematica, до того, как Стивен Вольфрам не решил выделить язык и сделать его общим для целой плеяды своих продуктов) и в разных областях: довелось делать модель продаж для фармацевтической компании; создавать парсеры и автоматические генераторы альбомов о фильмах для индустрии проката кино (когда они еще только зарождались); применять активно в науке (работы по химии и физике твердого тела и теории разрушения); разрабатывать прототипы обучающих систем для платформ отечественного школьного и вузовского образования и ведущих компаний и издательств на этом рынке в России.
Это, а вместе с тем то, что я уже несколько лет руковожу своей студией разработки, в которой мы применяем помимо Wolfram Language много чего: JavaScript, Python, Java, PHP и др. — дало мне возможность оценить язык Wolfram глубоко и понять области, в которых ему, пожалуй, особенно нет равных.
В этой статье, которая является компиляцией моего личного опыта и опыта потрясающего разработчика, который сделал очень много для ядра Wolfram Language — Леонида Шифрина (см., скажем, ответ к вопросу "Performance tuning in Mathematica?" — часть этой статьи является её адаптированным и расширенным переводом) — мне хотелось бы развеять мифы относительно скорости языка Wolfram Language — ведь часто разработчики просто, прошу прощения за прямоту, не умеют (не знают) как эффективно использовать его возможности.
Разработчики часто применяют неэффективные конструкции, не используют потрясающие возможности, вроде: распараллеливания, компиляции кода в C или байт-код Wolfram Language, интеграции с CUDA, другими языками вроде Java и C (да, можно подгружать код на этих языках прямо в Wolfram-код).
Это в целом неудивительно, ведь Wolfram Language дает уникальную свободу разработки. Вот, скажем, набор примеров, показывающий 15 способов задать факториал (обратите внимание, как сильно отличается время вычисления функций — показано в какое количество раз оно больше, чем у встроенной функции Factorial
):
Module[{st, stInput, data, systemFunction},
st=Style[#, FontFamily->"Arial", Gray, FontSize->14]&;
SetAttributes[stInput, HoldAll];
stInput[code_]:=(Clear[f];
code;
{Style[HoldForm@code, "Input", FontSize->14, Background->None], code;
RepeatedTiming[f[9];
, 2][[1]]});
data=Flatten/@{
{st@"Ядро Wolfram", stInput[f=Factorial]},
{"", stInput[f[n_]:=n!]},
{st["Правила замены"], stInput[f[n_]:=n f[n-1];
f[1]=1]},
{st["Процедурный"], stInput[f[n_]:=Module[{t=1}, Do[t=t*i, {i, n}];
t]]},
{"", stInput[f[n_]:=Module[{t=1, i}, For[i=1, i<=n, i++, t*=i];
t]]},
{st["На списках (массивах)"], stInput[f[n_]:=Apply[Times, Range[n]]]},
{"", stInput[f[n_]:=Fold[Times, 1, Range[n]]]},
{st["Рекурсивный"], stInput[f[n_]:=If[n==1, 1, n*f[n-1]]]},
{st["Функциональный"], stInput[f=If[#1==1, 1, #1*#0[#1-1]]&]},
{"", stInput[f[n_]:=Fold[#2[#1]&, 1, Array[Function[t, #t]&, n]]]},
{st["Конструктивный"], stInput[f[n_]:=Length[Permutations[Range[n]]]]},
{st["Правила замены (шаблоны)"], stInput[f[n_]:=First[{1, n}//.{a_, b_/;
b>0}:>{b*a, b-1}]]},
{st["На строках"], stInput[f[n_]:=StringLength[Fold[StringJoin[Table[#1, {#2}]]&, "A", Range[n]]]]},
{st["Математический"], stInput[f[n_]:=Gamma[n+1]]},
{"", stInput[f[n_]:=Product[i, {i, n}]]}
};
systemFunction=data[[1, 3]];
Framed[#, Background->White, FrameMargins->5, FrameStyle->None]&@Grid[{Style[st[#], Bold]&/@{"Парадигма", "Код", "Медленнее встроеннойnфункции, раз"}}~Join~({#[[1]], #[[2]], st[Round[#[[3]]/systemFunction, 1/10]//N]}&/@data),
Alignment->{{Center, Left, Left}, Center},
Dividers->{None, {None, {LightGray}, None}}, Background->{None, {LightOrange, None}}
]]
Эта статья призвана помочь вам писать красивый и эффективный код, который будет работать ни чуть не медленнее, чем, скажем, в популярном Python. Знания этих принципов и приемов позмоляет писать код на Wolfram Language, который будет не особо медленнее кода на C, но за счет широты языка разработку вести в нем намного быстрее и проще.
В конце статьи вы найдете ссылки на полезные ресурсы для изучения языка Wolfram Language.
Поскольку Wolfram Language (Mathematica и другие системы, основанные на нем) — символьный язык программирования, который имеет символьный вычислительный движок, гораздо более общий, чем, скажем, в том же Matlab (Sympy, Maxima, Maple и пр.), неудивительно, что настройка производительных вычислений в нем иногда бывает более сложной. Существует, однако, множество техник, но все они сводятся, в основном, к главному принципу, который звучит так:
Избегайте полного цикла символьных вычислений в Wolfram Language, насколько это возможно.
1. Базовые принципы
1.1. Применяйте везде, где это возможно, встроенные функции
Так как они реализованы непосредственно в ядре Wolfram на низкоуровневых языках (С и Java), они обычно (но не всегда!) намного быстрее, чем созданные вами функции для решения той же задачи. Чем более специализированную функцию для конкретной задачи вы применяете, тем выше шансы, что вы ускорите код.
ClearAll[data];
data=RandomReal[1, {10^6, 2, 2}];
compareTiming[{Map[Flatten, data], Flatten[data, {{1}, {2, 3}}]}]
1.2. Используйте функциональное программирование (Map
/@, Apply
@@ и им подобные)
Также используйте чистые функции (лямбда-исчисление) на основе нотации #-&, когда это возможно — они, как правило, быстрее, чем функции функции с именованными аргументами (на основе Function
) или функции, основанные на правилах замены (особенно для функций, не требующих интенсивных вычислений, которые применяются к большим спискам).
ClearAll[data];
data=Range[1, 10^6];
compareTiming[{f[x_]:=x^2;
Table[f[i], {i, data}], Map[#^2&, data]}]
1.3. Используйте структурные и векторизованные операции
Применяйте Transpose
, Flatten
, Partition
, Part
и т. п. — они быстрее, чем функциональные.
ClearAll[data];
data=RandomReal[1, {10^5, 2}];
compareTiming[{{#[[1]], #[[2]]^2}&/@data, Transpose[{#1, #2^2}&@@Transpose[data]]}]
1.4. Избегайте использования процедурного стиля программирования
Не применяйте циклы и т. п, так как этот стиль программирования имеет тенденцию разбивать большие структуры на части (индексирование массива и т. п.). Это «выталкивает» значительную часть вычислений из ядра и поэтому сильно замедляет их.
ClearAll[fibonacci, f];
compareTiming[{fibonacci={1, 1};
n=3;
While[n<=20000, AppendTo[fibonacci, fibonacci[[n-1]]+fibonacci[[n-2]]];
n++];
fibonacci, f[1]=1;
f[2]=1;
f[n_]:=f[n]=f[n-1]+f[n-2];
f/@Range[20000]}]
2. Используйте машинную точность, всегда, когда это возможно
В большинстве языков программирования просто нет таких понятий, как точные константы, вроде 6/47 или каких бы то ни было символьных выражений. Поэтому применяя их нужно быть аккуратным и понимать, как работает процесс вычислений, чтобы не использовать абсолютную точность, когда это не нужно.
2.1. Не применяйте абсолютную точность там, где это не нужно
Скажем, если вы строите график, вам нет необходимости применять точную арифметику.
compareTiming[{data=Table[{x, Sin[x]/Gamma[x]}, {x, 0, 10, 1/100}];
ListPlot[data], data=Table[{x, Sin[x]/Gamma[x]}, {x, 0, 10, 1/100.}];
ListPlot[data]}]
В примере выше изменено только одно место — 100 заменено на 100. — первое число имеет абсолютную точность, а второе — машинную. Но от этого вычисления ускорились в 4 раза! Вот, собственно, как выглядят данные.
Table[{x, Sin[x]/Gamma[x]}, {x, 0, 10, 1/2}]
Table[{x, Sin[x]/Gamma[x]}, {x, 0, 10, 1/2.}]
Важно учитывать, что Wolfram Language работает с минимальной введенной точностью: это означает, что ваше точное вычисление нарушит любое число с машинной точностью (если не сделана защита от такого), и если вы используете не машинную точность, а, скажем, 100 знаков (в Wolfram Language можно работать с любой точностью), и внутри встретится число с точностью меньше, результат будет получен с этой минимальной точностью. Это все логично и целиком следует из теории численных методов и работы с погрешностью, но это обязательно нужно знать и помнить.
2.2. Применяйте машинную точность до символьных преобразований
Также нужно помнить, что по умолчанию система делает все символьно и это может занять много времени. Скажем, вы хотите решить уравнение при заданном наборе значений a, b, c. Вы можете сделать вот так:
Solve[a x^3+b x+c==0, x]/.{a->1.23, b->3.45, c->2.6}
И вы удивитесь, почему чуть иначе написанный код будет быстрее в 15 раз:
compareTiming[{Solve[a x^3+b x+c==0, x]/.{a->1.23, b->3.45, c->2.6}, Solve[a x^3+b x+c==0/.{a->1.23, b->3.45, c->2.6}, x]}]
Все дело как раз в том, что в первом примере Wolfram Language сначала ищет точное решение и затем подставляет в него численные значения коэффициентов:
Solve[a x^3+b x+c==0, x]
Solve[a x^3+b x+c==0, x]/.{a->1.23, b->3.45, c->2.6}
Во втором случае ищется решение сразу численными методами:
a x^3+b x+c==0/.{a->1.23, b->3.45, c->2.6}
Solve[a x^3+b x+c==0/.{a->1.23, b->3.45, c->2.6}, x]
2.3. Не мешайте числа с разной точностью
Если в вашем списке есть числа с разной точностью — он автоматически будет распакован и будет работать в сотни раз медленнее (см. ниже про упакованные массивы). Приводите числа к одинаковой точности с помощью таких функций как N
, Rationalize
, Round
, Floor
, Ceiling
, SetPrecision
, SetAccuracy
.
3. Компиляция, листабилити, распараллеливание и CUDA
3.1. Помните про листабилити
Листабилити (Listability) — это применение функции к массиву, каждому её элементу автоматически. Так как в Wolfram Language массивы называются List
— отсюда название. В принципе, можно назвать также это векторизацией.
Помните, что многие встроенные функции листабильны, а значит применение их к большим спискам предпочтительнее применения конструкций вроде Map
или циклов.
ClearAll[data];
data=RandomReal[{-Pi, Pi}, 10^7];
compareTiming[{Sin/@data, Sin[data]}]
3.2. Используйте компиляцию на основе Compile
Используйте компиляцию всегда, когда это возможно. Применяйте компиляцию в C-код (для этого потребуется доустановить компилятор, можно установить Visual C++ Build Tools 2017 — подробнее о том, как это сделать, см. здесь). Делайте ваши компилированные функции листабельными (RuntimeAttributes) и распараллеленными (Parallelization).
ClearAll[data];
data=Range[-50, 50, 0.001];
Оригинальная функция:
fNotCompiled=Function[{x}, Block[{sum=1.0, inc=1.0}, Do[inc=inc*x/i;
sum=sum+inc, {i, 100}];
sum]];
Фунция, скомпилированная в байт-код Wolfram Language (JIT-компиляция) (далее будем ее называть JIT-функция)
fJITCompiled=Compile[{{x}}, Block[{sum=1.0, inc=1.0}, Do[inc=inc*x/i;
sum=sum+inc, {i, 100}];
sum]];
JIT-функция с возможностью распараллеливания:
fJITCompiledParallelized=Compile[{{x}}, Block[{sum=1.0, inc=1.0}, Do[inc=inc*x/i;
sum=sum+inc, {i, 100}];
sum], Parallelization->True];
JIT-функция с листабилити:
fJITCompiledListable=Compile[{{x}}, Block[{sum=1.0, inc=1.0}, Do[inc=inc*x/i;
sum=sum+inc, {i, 100}];
sum], RuntimeAttributes->{Listable}];
JIT-функция с листабилити и распараллеливанием:
fJITCompiledListableParallelized=Compile[{{x}}, Block[{sum=1.0, inc=1.0}, Do[inc=inc*x/i;
sum=sum+inc, {i, 100}];
sum], Parallelization->True, RuntimeAttributes->{Listable}];
Фунция, скомпилированная в код C (остальные аналогично):
fСCompiled=Compile[{{x}}, Block[{sum=1.0, inc=1.0}, Do[inc=inc*x/i;
sum=sum+inc, {i, 100}];
sum], CompilationTarget->"C"];
fСCompiledParallelized=Compile[{{x}}, Block[{sum=1.0, inc=1.0}, Do[inc=inc*x/i;
sum=sum+inc, {i, 100}];
sum], CompilationTarget->"C", Parallelization->True];
fСCompiledListable=Compile[{{x}}, Block[{sum=1.0, inc=1.0}, Do[inc=inc*x/i;
sum=sum+inc, {i, 100}];
sum], CompilationTarget->"C", RuntimeAttributes->{Listable}];
fСCompiledListableParallelized=Compile[{{x}}, Block[{sum=1.0, inc=1.0}, Do[inc=inc*x/i;
sum=sum+inc, {i, 100}];
sum], CompilationTarget->"C", Parallelization->True, RuntimeAttributes->{Listable}];
Теперь посмотрим на все варианты (по сути одной и той же функции!) работы функции и её разных компилированных версий. Как видно, ускорение просто от оборачивания функции и использования компиляции в C ускоряет её более чем в 50 раз!
compareTiming[
{fNotCompiled/@data,
fJITCompiled/@data,
fJITCompiledListable@data,
fJITCompiledParallelized/@data,
fJITCompiledListableParallelized@data,
fСCompiled/@data,
fСCompiledListable@data,
fСCompiledParallelized/@data,
fСCompiledListableParallelized@data}]
Когда вы применяете Compile может случиться так, что компилированная функция имеет «утечки», когда часть вычислений перестает быть компилированной. Примеры борьбы с этим явлением вы можете найти в MathGroup.
3.3. Применяйте векторизированные операции внутри Compile
Когда это возможно, используйте векторизованные операции (UnitStep
, Clip
, Sign
, Abs
и т. д.) внутри компилированной функции, создаваемой с помощью Compile
, чтобы реализовать конструкции «векторизованного порядка выполнения (блок-схемы)», такие как If
, чтобы избежать явных циклов (по крайней мере, в самых глубоковложенных циклах) внутри Compile. Это может дать вам скорость уже не байт-кода Wolfram Language, а почти родную скорость C во многих случаях.
f1Compiled=Compile[{{x, _Real}}, SeedRandom[1];
Block[{data}, data=RandomReal[{-x, x}, 10^5];
Table[If[data[[i]]>0, 1, 0], {i, 1, Length[data]}]], CompilationTarget->"C", Parallelization->True];
f2Compiled=Compile[{{x, _Real}}, SeedRandom[1];
Block[{data}, data=RandomReal[{-x, x}, 10^5];
UnitStep@data], CompilationTarget->"C", Parallelization->True];
compareTiming[{f1Compiled@10, f2Compiled@10}]
3.4. Распараллеливание
Применяйте распараллеливание — для базовых нужд оно крайне просто реализовано, хотя есть множество настроек. Для начала просто запомните, главные функции: Parallelize, ParallelMap, ParallelTable.
compareTiming[{Table[Solve[Sin[n x+n^2]==0, x], {n, 1, 100}], ParallelTable[Solve[Sin[n x+n^2]==0, x], {n, 1, 100}]}]
3.5. CUDA, OpenCL — вычисления с помощью графических процессоров (видеокарт)
Вы можете писать программы, основанные на технологиях CUDA и OpenCL. Производительность этих программ, естественно, будет соответствующей. Также можно использовать готовые программы на этих языках.
4. Имейте ввиду, что списки ({...} или List) реализованы в Wolfram Language, как массивы
4.1. Выделяйте большие списки, чтобы обрабатывать их «целиком», как описано выше.
Если у вас есть необходимость обрабатывать списки разного размера и содержимого, то особенно аккуратно нужно относиться к большим спискам. Иногда, список из 100-1000 элементов тоже может быть большим, например, если его элементами являются объекты XMLObject
, получающиеся от импорта веб-страниц, каждый из которых весит килобайты, сотни килобайт или даже мегабайты.
4.2. Избегайте применять Append, Prepend, AppendTo и PrependTo в циклах
Не стоит применять функции Append
, Prepend
, AppendTo
and PrependTo
в циклах, для создания списков и т. п. — так как они создают копию всего списка, чтобы добавить единственный элемент, что приводить к квадратичной, а не линейной сложности конструирования списков.
compareTiming[{list={};
n=1;
While[n<=10000, list=Append[list, n++]];
list, Range[1, 10000]}]
4.3. Используйте связанные списки
Применяйте «связанные списки» (конструкции, типа {1,{2,{3,{}}}}) вместо «плоских» списков (типа {1,2,3,4}) для накопления элементов списка в программах.
Простая конструкция для накопления элементов выглядит так: A = {new element, A}.
Так как A — это ссылка, отдельное присваивание осуществляется за одинаковое время.
compareTiming[{list1={};
Table[If[PrimeQ[i], list1=list1~Join~{i}], {i, 1, 100000}];
list1, list2={};
Table[If[PrimeQ[i], list2={list2, i}], {i, 1, 100000}];
Flatten@list2}]
4.4. Сопоставление по шаблону в последовательности шаблонов
Не забывайте о том, что сопоставление по шаблону (Pattern matching) для шаблонов, задающих последовательность выражений (__ BlankSequence
и ___ BlankNullSequence
) также основывается на том, что последовательности (Sequence
) являются массивами. Таким образом, скажем, правило {fst_,rest___}:>{f[fst],g[rest]} скопирует весь список и только потом будет применяться. В частности, не используйте рекурсию таким образом, который может выглядеть естественным в других языках. Если вы хотите использовать рекурсию в списках, сначала преобразуйте свои списки в связанные списки (см. выше).
5. Избегайте неэффективные шаблоны. Создавайте их правильно.
Для того, чтобы лучше понимать, что такое шаблоны (Patterns) в Wolfram Language рекомендую посмотреть мой урок:
5.1. Используйте аккуратно правила замены
Программирование на основе правил замены может быть как очень быстрым, так и очень медленным, в зависимости от того, как вы строите свои вычисления и правила замены, но на практике легче нечаянно замедлить его.
Особенно медленными будут правила замены, которые заставляют внутренний механизм сопоставления с шаблоном делать много априори обреченных на неудачу попыток сопоставления, например, недоиспользуя каждый прогон сопоставителя шаблонов через длинный список (или выражение).
Хорошим примером является сортировка элементов:
list //. {left___, x_, middle__, y_, right__} /; x > y :> {left, y, middle, x, right};
Не забывайте о SequenceCases
, SequencePosition
, SequenceCount
, SequenceReplace
, специально оптимизированных для работы с массивами, которые появились в версии 10.1 языка Wolfram.
5.2. Структуры данных и сопоставитель шаблонов
Старайтесь создавать эффективные шаблоны и соответствующие им структуры для хранения ваших данных, что позволит механизму сопоставления с шаблоном тратить как можно меньше времени на ложные попытки сопоставления.
ClearAll[data];
data=RandomInteger[{0, 100}, {10^6, 2}];
compareTiming[{data/.{p:({x_/;
x>90&&PrimeQ[x], y_/;
y>34})/;
x^2+y^2>1000:>p, t:{_, _}:>Nothing}, ((data/.{_, y_/;
y<=34}:>Nothing)/.{x_/;
(x<=90||Not[PrimeQ[x]]), _}:>Nothing)/.({x_, y_}/;
x^2+y^2<=1000)->Nothing,
Cases[Cases[Cases[data, {x_/;
x>90&&PrimeQ[x], _}], {_, y_/;
y>34}], {x_, y_}/;
x^2+y^2>1000]}]
5.3. Используйте аккуратно правила замены
Избегайте использования шаблонов с вычислительно интенсивными условиями или тестами. Сопоставитель шаблонов даст вам максимальную скорость, если шаблоны в основном синтаксические по своей природе (структура теста, головной части выражения и т.д.). Каждый раз, когда применяется условие ( / ;) или тест шаблона (?), для каждого потенциального соответствия шаблону, вычислительное ядро вызывается сопоставителем шаблонов, и это замедляет его.
ClearAll[data];
data=RandomSample[{##}]&@@@Transpose[{RandomInteger[{0, 100}, 10^5], RandomReal[{0, 100}, 10^5]}];
compareTiming[{Cases[data, {_Integer, x_/;
Sin[x]<FractionalPart[x]}], Module[{preData, seconds}, preData=Cases[data, {_Integer, _}];
seconds=Developer`ToPackedArray[preData[[;;, 2]]];
Pick[preData, UnitStep[FractionalPart[seconds]-Sin[seconds]], 1]]}]
6. Работа со списками
Большинство встроенных функций Wolfram Language, которые обрабатывают списки, создают при этом копию исходного списка и работают с этой копией. Поэтому они часто имеют линейную сложность по времени, зависящую от размера исходного списка, даже если они изменяют список только в нескольких местах.
Одна универсальная встроенная функция, которая не создает копии списка (или выражения), а изменяет исходное выражение и не имеет этой проблемы — это [[...]] (Part
).
6.1. Аккуратно применяйте функции, модифицирующие списки
Избегайте использования большинства встроенных функций, которые меняют списки для большого количества небольших независимых модификаций списка.
compareTiming[{NestWhile[Drop[#, 1]&, Range[1000], (Length[#]>10)&], Drop[Range[1000], 990]}]
6.2. Расширенный функционал Part
Используйте расширенные функциональные возможности Part для одновременного извлечения и изменения большого количества элементов списка (или более общего выражения). Это очень быстро, и не только для упакованных числовых массивов (Part изменяет исходный список).
Простейший пример выглядит так:
list={1, 2, 3, 4, 5};
list[[{1, 3}]]=list[[{4, 1}]];
list
Вот простой пример — изменить элементы списка в соответствии с заданным порядком:
ClearAll[list1, list2];
list1=Range[1000000];
list2=list1;
newArrangement=RandomSample[list1];
compareTiming[{list1=Table[list1[[i]], {i, newArrangement}];
list1,
list2=list2[[newArrangement]];
list2}]
6.3. Используйте Extract
Используйте Extract
для извлечения сразу нескольких элементов на разных уровнях, причем список позиций может быть очень большим.
ClearAll[list1, list2];
list=Range[10000000];
elems=RandomInteger[{1, 10000000}, 10000];
compareTiming[{Table[list[[elems[[i]]]], {i, 1, Length@elems}],
Extract[list, List/@elems]}]
7. Используйте эффективные встроенные форматы данных
7.1. Упакованные массивы
Для того, чтобы упаковать массив его достаточно обернуть в Developer`ToPackedArray. Чтобы проверить упакованность массива служит функция Developer`PackedArrayQ.
ClearAll[data];
data=RandomInteger[{0, 1}, 10^6];
dataUnPacked=data~Join~{1.};
dataPacked=Developer`ToPackedArray[N[data]~Join~{1.}];
compareTiming[{Total[dataUnPacked], Total[dataPacked]}]
7.2. Разреженные массивы
Безусловно, если ваша матрица разреженная, то, безусловно, держать её в памяти и обращаться к ней становится неэффективным. Для работы с такими объектами существует функция SparseArray
.
sparseArray=SparseArray[RandomInteger[{1, 100}, {100, 2}]->RandomReal[{0, 10}, 100], {100, 100}];
notSparseArray=Normal@sparseArray;
compareTiming[{Det@notSparseArray, Det@sparseArray}]
7.3. Хеш-таблицы
Начиная с версии 10 в Wolfram Language появились неизменяемые ассоциативные массивы, которые называются ассоциациями <|...|> (Association
).
Тот факт, что они неизменяемы, не мешает им эффективно вставлять и удалять пары ключ-значение («дешевые копии», отличающиеся от исходной ассоциации наличием или отсутствием данной пары ключ-значение). Они представляют собой идиоматические ассоциативные массивы в Wolfram Language и имеют очень хорошие характеристики производительности.
assoc=<|a->1, b->2, c->3, d->4, e->5|>;
assoc[d]+assoc[a]
Также не забывайте про Dataset — это объект, который можно назвать внутренним форматом базы данных языка Wolfram Language.
Помимо этого также важно помнить про функцию Dispatch
, которая создает оптимизированную хэш-таблицу правил замены.
8. Применяйте кэширование, ленивые вычисления и динамическое программирование
8.1. Кеширование значений функций (мемоизация) и выгрузка определений функций на жесткий диск
Оно крайне просто реализовано в Wolfram Language и может сохранить вам просто астрономическое количество времени.
Простейший принцип работы выглядит так: вместо конструкции f[x_]:=functionBody используется f[x_]:=f[x]=functionBody — при этом функция не просто вычисляет значение при заданном значении аргумента, но и запоминает его. Поэтому вычисления требуются 1 раз, после этого их можно использовать и, если нужно, выгрузить на жесткий диск с помощью Save
или DumpSave
.
ClearAll[f1, f2];
f1[x_]:=(Pause[0.1];
x^2);
f2[x_]:=f2[x]=(Pause[0.1];
x^2);
compareTiming[{f1/@{1, 1, 1, 1, 1}, f2/@{1, 1, 1, 1, 1}}]
8.2. Замыкания (closures)
Wolfram Language позволяет реализовать более сложные версии мемоизации, где вы можете определить функции (замыкания) непосредственно во время их выполнения, которые будут использовать некоторые предварительно вычисленные части в своих определениях и, следовательно, будут быстрее.
ClearAll[f1, f2]
f1[x_]:=(y/.Solve[y^2+x y+x==0, y]);
Module[{solution=FullSimplify@Solve[y^2+x y+x==0, y]},
f2[xValue_]:=(y/.solution)/.x->xValue];
compareTiming[{Table[f1[x], {x, 0, 100}], Table[f2[x], {x, 0, 100}]}]
8.3. Ленивые вычисления
Ленивые или отсроченные вычисления реализуются в Wolfram Language через конструкции := (SetDelayed
), а для правил замены через :> (RuleDelayed
). Они являются «естественными» для языка и позволяют вызывать функции, только когда они нужны и не вычислять их заранее, в отличие от заданий с помощью = (Set
) и -> (Rule
). Однако, важно понимать разницу и применять каждый тип верно.
ClearAll[f1, f2]
f1[x_]:=(y/.FullSimplify[Solve[y^2+x y+x==0, y]]);
f2[x_]=(y/.FullSimplify[Solve[y^2+x y+x==0, y]]);
compareTiming[{Table[f1[x], {x, 0, 100}], Table[f2[x], {x, 0, 100}]}]
9. Прочие замечания
9.1. Используйте сцепку функций Reap + Sow для сбора данных в процессе вычислений
Reap и Sow обеспечивают эффективный способ сбора промежуточных результатов, причем их можно «помечать» тэгами, для сбора необходимых результатов. Эти команды также хорошо сочетаются с функциональным программированием.
9.2. Все есть символьная констукция
В Wolfram Language все имеет символьное представление, даже картинки, код и документы Mathematica. Это дает потрясающие возможности для метапрограммирования и автоматизации самых разных задач. Но об этом всегда важно помнить. Полную форму выражения можно посмотреть с помощью конструкции FullForm
.
FullForm[{{1, 2}, {3, {4}}, {{5}}}]
FullForm[Hold[x5+y2+1/z+4/2]]
9.3. Дуализм позиции и элемента
Часто вы можете написать более быстрые функции для работы с позициями элементов, а не с самими элементами, поскольку позиции являются целыми числами (для плоских списков). Это может дать вам ускорение на порядок даже по сравнению со встроенными функциями.
9.4. Отключите $HistoryLength
По умолчанию Wolfram Language помнит все вычисления, сделанные в текущей сессии. Это может сильно мешать работы и контролируется параметром $HistoryLength
.
Преимущества языка Wolfram Language в скорости разработки
Мы подробно обсудили технические детали — как применяя те или иные приёмы ускорить код, или сразу писать его эффективным. Однако, есть одна важная сторона разработки на Wolfram Language, которая остается обычно незамеченной: высокая скорость разработки и прототипирования.
Дело в том, что внутри систем, таких как Wolfram Mathematica, Wolfram Cloud, Wolfram One и пр. реализована интерактивная среда разработки, которую вы можете кастомизировать под себя и делать то, что можно назвать «интерактивной книгой». Скажем эта статья изначально написана на Wolfram Language в Wolfram Mathematica, после не особенно сложный обработчик конвертирует документ, который готов полностью для публикации в моем блоге и здесь, на Хабре. Он делает все: готовит и выгружает иллюстрации на сервер, сохраняет документ в некскольких форматах, с учетом разницы платформ и пр.
Такого рода примеров можно привести очень много и все они сводятся до простой мысли: если у вас очень много разнородных задач, требующих работы в самых разных областях или вы хотите расширить свои горизонты и возможности разработки — Wolfram Language отлично подойдет для этого. Равно как он подойдет компаниям, которым необходимо быстро и качественно имплементировать у себя сложный, нагруженный специфическими вычислениями движок.
Если коротко, то можно отметить следующие ключевые возможности, благодаря которым разработка на Wolfram Language экономит массу времени на разработке:
- Гигантское количество встроенных функций, покрывающих очень много областей (от символьной математики (интегралов, рядов, доказательства теорем и геометрии) до географических вычислений или создания облачных сервисов). Для того, чтобы оценить этот функционал — просто откройте документацию и поизучайте её хотя бы минут 15, вы убедитесь в этом сами.
На картинке ниже показаны области, в которых работает Wolfram Language вместе с количеством функций, которые относятся к этой области. Всего на данный момент (в версии 12.0) доступно 5436 функций из 188 областей. Под картинкой в спойлере вы можете посмотреть их перечисление по областям.
data=SortBy[#,-Length[#]&]&@GroupBy[Flatten[Thread/@EntityValue[WolframLanguageData[],{name,functionality areas}],1],Last,Sort[#[[;;,1]]]&];
Framed[Labeled[Style["Области применения Wolfram Language и количество функций, относящихся к нимn",30,FontFamily->"Intro Regular"],#],Background->GrayLevel[0.95],FrameMargins->5,FrameStyle->None]&@WordCloud[KeyValueMap[{StringRiffle[StringCases[#1,RegularExpression["[A-Z][a-z]+"]]/."Symbols"->""," "]<>" ("<>ToString[Length@#2]<>")",N@Length@#2}&,data],ImageSize->{1200,800},Background->GrayLevel[0.95],WordOrientation->{{-Pi/4,0,Pi/4}},MaxItems->All,WordSpacings->3,FontFamily->"Intro Regular"]
Export[FileNameJoin[{NotebookDirectory[], "fileNames.nb"}], Notebook@Flatten@KeyValueMap[{Cell[#1<>" ("<>ToString[Length[#2]]<>")", "Title"], Cell[BoxData@ToBoxes@Row[Map[Hyperlink[#, "http://reference.wolfram.com/language/ref/"<>#<>".html"]&, #2], ", "], "Text"]}&, data]];
Math Functions (279)
AiryAi, AiryAiPrime, AiryAiZero, AiryBi, AiryBiPrime, AiryBiZero, AlternatingFactorial, AngerJ, AppellF1, ArithmeticGeometricMean, BarnesG, BellB, BellY, BernoulliB, BernsteinBasis, BesselI, BesselJ, BesselJZero, BesselK, BesselY, BesselYZero, Beta, BetaRegularized, BlomqvistBeta, BSplineBasis, CarmichaelLambda, CatalanNumber, ChampernowneNumber, ChebyshevT, ChebyshevU, ClebschGordan, Clip, CoshIntegral, CosIntegral, CubeRoot, Cyclotomic, DawsonF, DedekindEta, DiracComb, DirichletBeta, DirichletCharacter, DirichletEta, DirichletL, DirichletLambda, DiscreteDelta, DivisorSigma, EllipticE, EllipticExp, EllipticExpPrime, EllipticF, EllipticK, EllipticLog, EllipticNomeQ, EllipticPi, EllipticTheta, EllipticThetaPrime, Erf, Erfc, Erfi, EulerE, EulerPhi, ExpIntegralE, ExpIntegralEi, Factorial, Factorial2, FactorialPower, Fibonacci, Fibonorial, FractionalPart, FresnelC, FresnelF, FresnelG, FresnelS, Gamma, GammaRegularized, GegenbauerC, GoodmanKruskalGamma, Gudermannian, HankelH1, HankelH2, HarmonicNumber, Haversine, HeavisideLambda, HeavisidePi, HeavisideTheta, HermiteH, HurwitzLerchPhi, HurwitzZeta, Hyperfactorial, Hypergeometric0F1, Hypergeometric0F1Regularized, Hypergeometric1F1, Hypergeometric1F1Regularized, Hypergeometric2F1, Hypergeometric2F1Regularized, HypergeometricPFQ, HypergeometricPFQRegularized, HypergeometricU, InverseBetaRegularized, InverseEllipticNomeQ, InverseErf, InverseErfc, InverseGammaRegularized, InverseGudermannian, InverseHaversine, InverseJacobiCD, InverseJacobiCN, InverseJacobiCS, InverseJacobiDC, InverseJacobiDN, InverseJacobiDS, InverseJacobiNC, InverseJacobiND, InverseJacobiNS, InverseJacobiSC, InverseJacobiSD, InverseJacobiSN, InverseWeierstrassP, JacobiAmplitude, JacobiCD, JacobiCN, JacobiCS, JacobiDC, JacobiDN, JacobiDS, JacobiNC, JacobiND, JacobiNS, JacobiP, JacobiSC, JacobiSD, JacobiSN, JacobiSymbol, JacobiZeta, KelvinBei, KelvinBer, KelvinKei, KelvinKer, KendallTau, KleinInvariantJ, KroneckerDelta, KroneckerSymbol, LaguerreL, LegendreP, LegendreQ, LerchPhi, LiouvilleLambda, Log10, Log2, LogBarnesG, LogGamma, LogIntegral, LogisticSigmoid, LucasL, MangoldtLambda, MarcumQ, MathieuC, MathieuCharacteristicA, MathieuCharacteristicB, MathieuCharacteristicExponent, MathieuCPrime, MathieuS, MathieuSPrime, MeijerG, MinkowskiQuestionMark, Minus, MittagLefflerE, ModularLambda, MoebiusMu, Multinomial, MultiplicativeOrder, NevilleThetaC, NevilleThetaD, NevilleThetaN, NevilleThetaS, NextPrime, NorlundB, OwenT, ParabolicCylinderD, PartitionsP, PartitionsQ, Pochhammer, PolyGamma, PolygonalNumber, PolyLog, PrimeNu, PrimeOmega, PrimePi, PrimeZetaP, PrimitiveRoot, ProductLog, QBinomial, QFactorial, QGamma, QHypergeometricPFQ, QPochhammer, QPolyGamma, Quotient, RamanujanTau, RamanujanTauL, RamanujanTauTheta, RamanujanTauZ, Ramp, RealAbs, RealSign, RecurrenceTable, Rescale, RiemannR, RiemannSiegelTheta, RiemannSiegelZ, RiemannXi, SawtoothWave, ScorerGi, ScorerGiPrime, ScorerHi, ScorerHiPrime, SiegelTheta, Sinc, SinhIntegral, SinIntegral, SixJSymbol, SpearmanRho, SphericalBesselJ, SphericalBesselY, SphericalHankelH1, SphericalHankelH2, SphericalHarmonicY, SpheroidalEigenvalue, SpheroidalJoiningFactor, SpheroidalPS, SpheroidalPSPrime, SpheroidalQS, SpheroidalQSPrime, SpheroidalRadialFactor, SpheroidalS1, SpheroidalS1Prime, SpheroidalS2, SpheroidalS2Prime, Sqrt, SquareWave, StieltjesGamma, StirlingS1, StirlingS2, StruveH, StruveL, Subfactorial, Subtract, Surd, ThreeJSymbol, TriangleWave, UnitBox, UnitStep, UnitTriangle, WeberE, WeierstrassE1, WeierstrassE2, WeierstrassE3, WeierstrassEta1, WeierstrassEta2, WeierstrassEta3, WeierstrassHalfPeriods, WeierstrassHalfPeriodW1, WeierstrassHalfPeriodW2, WeierstrassHalfPeriodW3, WeierstrassInvariantG2, WeierstrassInvariantG3, WeierstrassInvariants, WeierstrassP, WeierstrassPPrime, WeierstrassSigma, WeierstrassZeta, WhittakerM, WhittakerW, WignerD, WilksW, ZernikeR, Zeta, ZetaZero, $MaxPiecewiseCases
Basic (243)
Abs, All, AllowedDimensions, And, Append, Apply, ArcCos, ArcCosh, ArcCot, ArcCoth, ArcCsc, ArcCsch, ArcSec, ArcSech, ArcSin, ArcSinh, ArcTan, ArcTanh, Arg, Array, ArrayDepth, ArrayQ, AtomQ, Attributes, Automatic, Binomial, Blank, BlankNullSequence, BlankSequence, Block, Cancel, Cases, Ceiling, CharacterRange, Characters, Check, Clear, ClearAll, ClearAttributes, Coefficient, Collect, Column, Complement, Complex, Composition, CompoundExpression, Condition, Conjugate, Contexts, Cos, Cosh, Cot, Coth, Cross, Csc, Csch, DateList, Default, Definition, Degree, DeleteCases, Denominator, Depth, Det, Dimensions, DiracDelta, Disk, Divide, Divisors, Do, Dot, E, Equal, Evaluate, EvenQ, Exp, Expand, Extract, Factor, False, FindFit, First, FirstCase, FirstPosition, Fit, Flatten, Floor, Fold, FoldList, For, Format, Fourier, FreeQ, Function, Gather, GatherBy, GCD, General, Graphics, Greater, GreaterEqual, Grid, Head, Hold, HoldAll, HoldFirst, HoldPattern, HoldRest, I, Identity, IdentityMatrix, If, Im, Infinity, Inner, InputForm, Integer, IntegerQ, Intersection, Interval, Inverse, Join, Last, LCM, Length, Less, LessEqual, Level, Line, List, Listable, ListQ, Log, Map, MapAt, MapThread, MatchQ, MatrixQ, Max, Mean, Median, MemberQ, Message, Min, Mod, Module, Most, N, Nest, None, Nor, Norm, Normal, Not, Null, NumberQ, Numerator, NumericQ, OddQ, Options, Or, OrderedQ, Out, Outer, Part, Partition, Pattern, Permutations, Pi, Piecewise, Plot, Plus, Point, Polygon, Power, PowerRange, Prepend, Prime, PrimeQ, Print, RandomInteger, RandomReal, Range, Rational, Re, Real, Replace, ReplaceAll, ReplacePart, Rest, Return, Reverse, RightComposition, Round, Rule, RuleDelayed, SameQ, Sec, Sech, Select, Sequence, Set, SetAttributes, SetDelayed, SetOptions, Sign, Sin, Sinh, Slot, SlotSequence, Sort, SortBy, Span, SparseArray, Subsets, Switch, Table, TagSet, TagSetDelayed, TagUnset, Take, Tally, Tan, Tanh, Thread, Times, Timing, Together, Tr, True, Tuples, Union, UnsameQ, Unset, UpSet, UpSetDelayed, VectorQ, Verbatim, Which, While, With, $ModuleNumber, $NewSymbol
Image (183)
AlphaChannel, BarcodeImage, BarcodeRecognize, Binarize, BinaryImageQ, Blur, BorderDimensions, BottomHatTransform, BrightnessEqualize, CaptureRunning, ChanVeseBinarize, Closing, ComponentMeasurements, ConformImages, ConstantImage, ContourDetect, CornerNeighbors, CrossingDetect, CurrentImage, CurrentNotebookImage, CurrentScreenImage, DeleteBorderComponents, DeleteSmallComponents, Dilation, DistanceTransform, DominantColors, DynamicImage, EdgeDetect, Erosion, EstimatedBackground, FillingTransform, FilterRules, FindFaces, FindThreshold, FrameRate, GeodesicClosing, GeodesicDilation, GeodesicErosion, GeodesicOpening, GrowCutComponents, GuidedFilter, HighlightImage, HitMissTransform, Image, Image3D, Image3DProjection, Image3DSlices, ImageAccumulate, ImageAdd, ImageAdjust, ImageAlign, ImageApply, ImageApplyIndexed, ImageAspectRatio, ImageAssemble, ImageCapture, ImageCaptureFunction, ImageChannels, ImageClip, ImageCollage, ImageCompose, ImageConvolve, ImageCooccurrence, ImageCorners, ImageCorrelate, ImageCorrespondingPoints, ImageCrop, ImageData, ImageDeconvolve, ImageDemosaic, ImageDifference, ImageDimensions, ImageDisplacements, ImageDistance, ImageEffect, ImageExposureCombine, ImageFeatureTrack, ImageFileApply, ImageFileFilter, ImageFileScan, ImageFocusCombine, ImageForestingComponents, ImageFormattingWidth, ImageForwardTransformation, ImageGraphics, ImageKeypoints, ImageLevels, ImageLines, ImageMargins, ImageMarker, ImageMeasurements, ImageMultiply, ImagePad, ImagePadding, ImagePartition, ImagePeriodogram, ImagePerspectiveTransformation, ImagePosition, ImagePreviewFunction, ImagePyramid, ImagePyramidApply, ImageQ, ImageRecolor, ImageReflect, ImageResize, ImageResolution, ImageRestyle, ImageRotate, ImageScaled, ImageScan, ImageSize, ImageSizeAction, ImageSizeMultipliers, ImageSubtract, ImageTake, ImageTransformation, ImageTrim, ImageType, ImageValue, ImageValuePositions, IncludeMetaInformation, Inpaint, Interleaving, InverseDistanceTransform, InverseImagePyramid, InverseRadon, KeypointStrength, LiftingFilterData, LinearGradientImage, LocalAdaptiveBinarize, Masking, MaxDetect, MaxFeatureDisplacement, MaxFeatures, MaxItems, MetaInformation, MinDetect, MorphologicalBinarize, MorphologicalBranchPoints, MorphologicalComponents, MorphologicalEulerNumber, MorphologicalGraph, MorphologicalPerimeter, MorphologicalTransform, Opening, Padding, PixelValue, PixelValuePositions, PreprocessingRules, PreserveColor, PreserveImageOptions, Pruning, RadialGradientImage, Radon, RandomImage, RegionBinarize, RegionImage, ReliefImage, RemoveAlphaChannel, RemoveBackground, ReplaceImageValue, ReplacePixelValue, Resampling, SelectComponents, SetAlphaChannel, Sharpen, SkeletonTransform, TextRecognize, Thinning, Threshold, Thumbnail, TopHatTransform, TransformationClass, WatershedComponents, WaveletFilterCoefficients, WaveletImagePlot, WordCloud, WordOrientation, WordSelectionFunction, WordSpacings, ZoomCenter, ZoomFactor, $ImageFormattingWidth
Graph Theory (179)
AdjacencyGraph, AdjacencyList, AdjacencyMatrix, BetweennessCentrality, BreadthFirstScan, CanonicalGraph, ChromaticPolynomial, ClosenessCentrality, CommunityGraphPlot, CommunityLabels, CommunityRegionStyle, ConnectedComponents, ConnectedGraphComponents, DegreeCentrality, DepthFirstScan, DirectedEdge, DirectedEdges, DirectedGraph, EccentricityCentrality, EdgeAdd, EdgeBetweennessCentrality, EdgeCapacity, EdgeConnectivity, EdgeContract, EdgeCost, EdgeCount, EdgeCycleMatrix, EdgeDelete, EdgeIndex, EdgeLabels, EdgeLabelStyle, EdgeList, EdgeRules, EdgeShapeFunction, EdgeStyle, EdgeWeight, EdgeWeightedGraphQ, EigenvectorCentrality, FindClique, FindCycle, FindEdgeCover, FindEdgeCut, FindEdgeIndependentPaths, FindEulerianCycle, FindFundamentalCycles, FindGraphCommunities, FindGraphIsomorphism, FindGraphPartition, FindHamiltonianCycle, FindHamiltonianPath, FindIndependentEdgeSet, FindIndependentVertexSet, FindKClan, FindKClique, FindKClub, FindKPlex, FindMaximumFlow, FindMinimumCostFlow, FindMinimumCut, FindPath, FindPostmanTour, FindShortestPath, FindSpanningTree, FindVertexCover, FindVertexCut, FindVertexIndependentPaths, FlowPolynomial, GlobalClusteringCoefficient, Graph, Graph3D, GraphAssortativity, GraphAutomorphismGroup, GraphCenter, GraphComplement, GraphData, GraphDensity, GraphDiameter, GraphDifference, GraphDisjointUnion, GraphDistance, GraphDistanceMatrix, GraphEmbedding, GraphHighlight, GraphHighlightStyle, GraphHub, GraphIntersection, GraphLayout, GraphLinkEfficiency, GraphPeriphery, GraphPlot, GraphPlot3D, GraphPower, GraphRadius, GraphReciprocity, GraphStyle, GraphUnion, HighlightGraph, HITSCentrality, IncidenceGraph, IncidenceList, IncidenceMatrix, IndexGraph, KatzCentrality, KCoreComponents, KEdgeConnectedComponents, KirchhoffMatrix, KVertexConnectedComponents, LambdaComponents, LayeredGraphPlot, LayerSizeFunction, LinkRankCentrality, LocalClusteringCoefficient, LuccioSamiComponents, MeanClusteringCoefficient, MeanDegreeConnectivity, MeanGraphDistance, MeanNeighborDegree, MultiedgeStyle, NeighborhoodGraph, NestGraph, OptimumFlowData, PageRankCentrality, PlanarGraph, Properties, Property, PropertyList, PropertyValue, RadialityCentrality, RandomGraph, RelationGraph, RemoveProperty, ReverseGraph, SelfLoopStyle, SetProperty, ShortestPathFunction, SimpleGraph, SocialMediaData, StatusCentrality, Subgraph, TopologicalSort, TransitiveClosureGraph, TransitiveReductionGraph, TreePlot, TuttePolynomial, UndirectedEdge, UndirectedGraph, VertexAdd, VertexCapacity, VertexComponent, VertexConnectivity, VertexContract, VertexCoordinates, VertexCorrelationSimilarity, VertexCosineSimilarity, VertexCount, VertexDegree, VertexDelete, VertexDiceSimilarity, VertexEccentricity, VertexInComponent, VertexInDegree, VertexIndex, VertexJaccardSimilarity, VertexLabels, VertexLabelStyle, VertexList, VertexOutComponent, VertexOutDegree, VertexReplace, VertexShape, VertexShapeFunction, VertexSize, VertexStyle, VertexWeight, VertexWeightedGraphQ, WeaklyConnectedComponents, WeaklyConnectedGraphComponents, WeightedAdjacencyGraph, WeightedAdjacencyMatrix
Statistical Distribution (152)
ArcSinDistribution, BatesDistribution, BeckmannDistribution, BenfordDistribution, BeniniDistribution, BenktanderGibratDistribution, BenktanderWeibullDistribution, BernoulliDistribution, BetaBinomialDistribution, BetaDistribution, BetaNegativeBinomialDistribution, BetaPrimeDistribution, BinomialDistribution, BinormalDistribution, BirnbaumSaundersDistribution, BorelTannerDistribution, CauchyDistribution, CensoredDistribution, ChiDistribution, ChiSquareDistribution, CircularOrthogonalMatrixDistribution, CircularQuaternionMatrixDistribution, CircularRealMatrixDistribution, CircularSymplecticMatrixDistribution, CircularUnitaryMatrixDistribution, CompoundPoissonDistribution, CopulaDistribution, CoxianDistribution, DagumDistribution, DataDistribution, DavisDistribution, DirichletDistribution, DiscreteUniformDistribution, EmpiricalDistribution, ErlangDistribution, EstimatedDistribution, ExpGammaDistribution, ExponentialDistribution, ExponentialPowerDistribution, ExtremeValueDistribution, FailureDistribution, FirstPassageTimeDistribution, FisherHypergeometricDistribution, FisherZDistribution, FRatioDistribution, FrechetDistribution, GammaDistribution, GaussianOrthogonalMatrixDistribution, GaussianSymplecticMatrixDistribution, GaussianUnitaryMatrixDistribution, GeometricDistribution, GompertzMakehamDistribution, GumbelDistribution, HalfNormalDistribution, HjorthDistribution, HotellingTSquareDistribution, HoytDistribution, HyperbolicDistribution, HyperexponentialDistribution, HypergeometricDistribution, HypoexponentialDistribution, InverseChiSquareDistribution, InverseGammaDistribution, InverseGaussianDistribution, InverseWishartMatrixDistribution, JohnsonDistribution, KDistribution, KernelMixtureDistribution, KumaraswamyDistribution, LandauDistribution, LaplaceDistribution, LevyDistribution, LindleyDistribution, LogGammaDistribution, LogisticDistribution, LogLogisticDistribution, LogMultinormalDistribution, LogNormalDistribution, LogSeriesDistribution, MarchenkoPasturDistribution, MarginalDistribution, MatrixNormalDistribution, MatrixPropertyDistribution, MatrixTDistribution, MaxStableDistribution, MaxwellDistribution, MeixnerDistribution, MinStableDistribution, MixtureDistribution, MoyalDistribution, MultinomialDistribution, MultinormalDistribution, MultivariateHypergeometricDistribution, MultivariatePoissonDistribution, MultivariateTDistribution, NakagamiDistribution, NegativeBinomialDistribution, NegativeMultinomialDistribution, NoncentralBetaDistribution, NoncentralChiSquareDistribution, NoncentralFRatioDistribution, NoncentralStudentTDistribution, NormalDistribution, OrderDistribution, ParameterMixtureDistribution, ParetoDistribution, ParetoPickandsDistribution, PascalDistribution, PearsonDistribution, PERTDistribution, PoissonConsulDistribution, PoissonDistribution, PolyaAeppliDistribution, PowerDistribution, ProbabilityDistribution, ProductDistribution, RayleighDistribution, ReliabilityDistribution, RiceDistribution, SechDistribution, ShiftedGompertzDistribution, SinghMaddalaDistribution, SkellamDistribution, SkewNormalDistribution, SliceDistribution, SmoothKernelDistribution, SplicedDistribution, StableDistribution, StandbyDistribution, StationaryDistribution, StudentTDistribution, SurvivalDistribution, SuzukiDistribution, TracyWidomDistribution, TransformedDistribution, TriangularDistribution, TruncatedDistribution, TsallisQExponentialDistribution, TsallisQGaussianDistribution, TukeyLambdaDistribution, UniformDistribution, UniformSumDistribution, VarianceGammaDistribution, VoigtDistribution, VonMisesDistribution, WakebyDistribution, WalleniusHypergeometricDistribution, WaringYuleDistribution, WeibullDistribution, WignerSemicircleDistribution, WishartMatrixDistribution, ZipfDistribution
Graphics (126)
AbsoluteDashing, AbsolutePointSize, AbsoluteThickness, Antialiasing, Arrowheads, AspectRatio, Axes, AxesEdge, AxesLabel, AxesOrigin, AxesStyle, Axis, Back, Background, BezierFunction, Boxed, BoxRatios, BoxStyle, BSplineFunction, BSplineSurface, ClippingStyle, ClipPlanes, ClipPlanesStyle, ClipRange, ContentSelectable, ContourLabels, Contours, ContourShading, CoordinatesToolOptions, CurveClosed, Dashed, Dashing, DataRange, DataReversed, DateTicksFormat, DefaultAxesStyle, DefaultBaseStyle, DefaultBoxStyle, DefaultFaceGridsStyle, DefaultFrameStyle, DefaultFrameTicksStyle, Directive, DisplayFunction, DotDashed, Dotted, Epilog, Exclusions, ExtentElementFunction, ExtentMarkers, ExtentSize, FaceGrids, Filling, FillingStyle, Frame, FrameLabel, FrameMargins, FrameTicks, Front, FullGraphics, Graphics3D, GraphicsColumn, GraphicsGrid, GraphicsGroup, GraphicsRow, GridLines, Highlighted, Inset, ItemAspectRatio, Joined, Lighting, LightingAngle, Mesh, MeshFunctions, MeshShading, NCache, NormalsFunction, Offset, Opacity, OpacityFunction, OpacityFunctionScaling, PixelConstrained, PointSize, PolarAxes, PolarAxesOrigin, PolarGridLines, PolarTicks, Prolog, Raster, Raster3D, Rasterize, RasterSize, RegionFunction, RevolutionAxis, Rotate, RotateLabel, RotationAction, RoundingRadius, Scale, Scaled, Show, Specularity, SphericalRegion, SplineClosed, SplineDegree, SplineKnots, SplineWeights, StreamScale, Texture, Thick, Thickness, Thin, Ticks, Translate, Transparent, VertexColors, VertexDataCoordinates, VertexNormals, VertexTextureCoordinates, ViewAngle, ViewCenter, ViewMatrix, ViewPoint, ViewProjection, ViewRange, ViewVector, ViewVertical
Region (125)
Area, ArrayMesh, AugmentedPolyhedron, BeveledPolyhedron, BooleanRegion, BoundaryDiscretizeGraphics, BoundaryDiscretizeRegion, BoundaryMesh, BoundaryMeshRegion, BoundaryMeshRegionQ, BoundedRegionQ, BoundingRegion, CanonicalizePolygon, CanonicalizePolyhedron, CantorMesh, ConnectedMeshComponents, ConstantRegionQ, ConvexHullMesh, ConvexPolygonQ, ConvexPolyhedronQ, CrossingCount, CrossingPolygon, DelaunayMesh, DihedralAngle, DimensionalMeshComponents, DirichletCondition, DiscretizeGraphics, DiscretizeRegion, DualPolyhedron, EulerCharacteristic, FindMeshDefects, GeometricScene, HighlightMesh, HilbertCurve, ImageMesh, ImplicitRegion, InnerPolygon, InnerPolyhedron, InverseTransformedRegion, KochCurve, MaxCellMeasure, MengerMesh, MeshCellCentroid, MeshCellCount, MeshCellHighlight, MeshCellIndex, MeshCellLabel, MeshCellMarker, MeshCellMeasure, MeshCellQuality, MeshCells, MeshCellShapeFunction, MeshCellStyle, MeshCoordinates, MeshPrimitives, MeshQualityGoal, MeshRefinementFunction, MeshRegion, MeshRegionQ, MomentOfInertia, NeumannValue, OuterPolygon, OuterPolyhedron, ParametricRegion, PeanoCurve, Perimeter, PeriodicBoundaryCondition, PlanarAngle, PolygonAngle, PolygonCoordinates, PolygonDecomposition, PolyhedronAngle, PolyhedronCoordinates, PolyhedronDecomposition, PolyhedronGenus, Printout3D, Printout3DPreviewer, Pyramid, RandomPoint, RandomPolygon, RandomPolyhedron, Region, RegionBoundary, RegionBounds, RegionCentroid, RegionDifference, RegionDimension, RegionDisjoint, RegionDistance, RegionDistanceFunction, RegionEmbeddingDimension, RegionEqual, RegionIntersection, RegionMeasure, RegionMember, RegionMemberFunction, RegionMoment, RegionNearest, RegionNearestFunction, RegionProduct, RegionQ, RegionResize, RegionSize, RegionSymmetricDifference, RegionUnion, RegionWithin, RepairMesh, SierpinskiCurve, SierpinskiMesh, SignedRegionDistance, SimplePolygonQ, SimplePolyhedronQ, SnubPolyhedron, SolidAngle, SolidRegionQ, SurfaceArea, TransformedRegion, TriangulateMesh, TruncatedPolyhedron, UniformPolyhedron, Volume, VoronoiMesh, WindingCount, WindingPolygon, $Printout3DPreviewer
String (115)
Alphabet, AlphabeticOrder, AlphabeticSort, Antonyms, Capitalize, CaseOrdering, CaseSensitive, CharacterCounts, CharacterEncoding, CharacterName, Containing, Decapitalize, DeleteStopwords, DictionaryWordQ, DigitCharacter, DigitQ, EndOfLine, EndOfString, ExportString, FromLetterNumber, HexadecimalCharacter, IgnoreCase, IgnorePunctuation, ImportString, IncludeInflections, InputString, InsertLinebreaks, LanguageIdentify, LetterCharacter, LetterCounts, LetterNumber, LetterQ, LowerCaseQ, NameQ, Names, NumberString, Overlaps, PalindromeQ, PartOfSpeech, Pluralize, PrintableASCIIQ, PunctuationCharacter, RandomWord, RegularExpression, RemoveDiacritics, Snippet, SpellingCorrection, SpellingCorrectionList, SpokenString, StartOfLine, StartOfString, String, StringCases, StringContainsQ, StringCount, StringDelete, StringDrop, StringEndsQ, StringExpression, StringExtract, StringFormat, StringFreeQ, StringInsert, StringJoin, StringLength, StringMatchQ, StringPadLeft, StringPadRight, StringPart, StringPartition, StringPosition, StringQ, StringRepeat, StringReplace, StringReplaceList, StringReplacePart, StringReverse, StringRiffle, StringRotateLeft, StringRotateRight, StringSkeleton, StringSplit, StringStartsQ, StringTake, StringTrim, Symbol, Synonyms, SyntaxLength, SyntaxQ, TextCases, TextContents, TextElement, TextPosition, TextSentences, TextStructure, TextTranslation, TextWords, ToCharacterCode, ToLowerCase, ToString, ToUpperCase, Transliterate, UpperCaseQ, VerifyInterpretation, Whitespace, WhitespaceCharacter, WordBoundary, WordCharacter, WordCount, WordCounts, WordDefinition, WordList, WordStem, WordTranslation, WriteString
Plotting (110)
AbsArgPlot, AnatomyPlot3D, AnatomySkinStyle, AnatomyStyling, BoundaryStyle, Callout, CalloutMarker, CalloutStyle, ComplexListPlot, ComplexPlot, ComplexPlot3D, ContourPlot, ContourPlot3D, DateListLogPlot, DateListPlot, DateListStepPlot, DensityPlot, DensityPlot3D, DiscretePlot, DiscretePlot3D, IntervalMarkers, IntervalMarkersStyle, JuliaSetPlot, LabelingSize, LabelVisibility, LeaderSize, LineIntegralConvolutionPlot, LineIntegralConvolutionScale, ListContourPlot, ListContourPlot3D, ListCurvePathPlot, ListDensityPlot, ListDensityPlot3D, ListLineIntegralConvolutionPlot, ListLinePlot, ListLogLinearPlot, ListLogLogPlot, ListLogPlot, ListPlot, ListPlot3D, ListPointPlot3D, ListPolarPlot, ListSliceContourPlot3D, ListSliceDensityPlot3D, ListSliceVectorPlot3D, ListStepPlot, ListStreamDensityPlot, ListStreamPlot, ListSurfacePlot3D, ListVectorDensityPlot, ListVectorPlot, ListVectorPlot3D, LogLinearPlot, LogLogPlot, LogPlot, MandelbrotSetPlot, MaxPlotPoints, NumberLinePlot, ParametricPlot, ParametricPlot3D, Plot3D, PlotLabel, PlotLabels, PlotLayout, PlotLegends, PlotMarkers, PlotPoints, PlotRange, PlotRangeClipping, PlotRangePadding, PlotRegion, PlotStyle, PlotTheme, PolarPlot, ProbabilityPlot, ProbabilityScalePlot, QuantilePlot, ReferenceLineStyle, RegionPlot, RegionPlot3D, ReImLabels, ReImPlot, ReImStyle, ReliefPlot, RevolutionPlot3D, RulePlot, SingularValuePlot, SliceContourPlot3D, SliceDensityPlot3D, SliceVectorPlot3D, SphericalPlot3D, StackedDateListPlot, StackedListPlot, StreamDensityPlot, StreamMarkers, StreamPlot, StreamPoints, StreamPosition, TextureCoordinateFunction, TextureCoordinateScaling, TimelinePlot, VectorDensityPlot, VectorMarkers, VectorPlot, VectorPlot3D, VectorPoints, VectorScale, WaveletListPlot, WaveletMatrixPlot, $PlotTheme
Statistics (110)
AbsoluteCorrelation, AbsoluteCorrelationFunction, AlternativeHypothesis, BarlowProschanImportance, BirnbaumImportance, BiweightLocation, BiweightMidvariance, CDF, Censoring, CentralFeature, CentralMoment, CentralMomentGeneratingFunction, CharacteristicFunction, Conditioned, ConfidenceRange, ConfidenceTransform, ContraharmonicMean, Correlation, CorrelationFunction, Covariance, CovarianceFunction, CoxModel, CoxModelFit, CriticalityFailureImportance, CriticalitySuccessImportance, Cumulant, CumulantGeneratingFunction, Distributed, DistributionParameterAssumptions, DistributionParameterQ, ErlangB, ErlangC, EventData, Expectation, ExponentialMovingAverage, FactorialMoment, FactorialMomentGeneratingFunction, FindDistribution, FindDistributionParameters, FussellVeselyImportance, GeometricMean, HarmonicMean, HazardFunction, HoeffdingD, HypothesisTestData, ImprovementImportance, InitialSeeding, InterquartileRange, InverseCDF, InverseSurvivalFunction, Kurtosis, Likelihood, LogLikelihood, MaxExtraBandwidths, MaxMixtureKernels, MeanDeviation, MedianDeviation, MissingDataMethod, Moment, MomentConvert, MomentEvaluate, MomentGeneratingFunction, MovingAverage, MovingMedian, NExpectation, NProbability, ParameterEstimator, PartialCorrelationFunction, PDF, PillaiTrace, PowerSpectralDensity, Probability, QnDispersion, Quantile, QuartileDeviation, Quartiles, QuartileSkewness, QueueProperties, RandomChoice, RandomComplex, RandomFunction, RandomSample, RandomSeeding, RandomVariate, RarerProbability, RiskAchievementImportance, RiskReductionImportance, RootMeanSquare, SeedRandom, SignificanceLevel, Skewness, SnDispersion, SpatialMedian, StandardDeviation, Standardize, Standardized, StrataVariables, StructuralImportance, SurvivalFunction, SurvivalModel, SurvivalModelFit, TemporalData, TrimmedMean, TrimmedVariance, Variance, VerifyTestAssumptions, WeakStationarity, WeightedData, WinsorizedMean, WinsorizedVariance
Paclet (103)
AdministrativeDivisionData, AircraftData, AirportData, AirPressureData, AirTemperatureData, AnatomyData, BridgeData, BroadcastStationData, BuildingData, ChemicalData, CityData, CometData, CompanyData, ConstellationData, CountryData, DamData, DeepSpaceProbeData, DictionaryLookup, EarthImpactData, EarthquakeData, ElementData, ExampleData, ExoplanetData, FetalGrowthData, FinancialData, FormulaData, FormulaLookup, GalaxyData, GenomeData, GenomeLookup, GeoElevationData, GeogravityModelData, GeologicalPeriodData, GeomagneticModelData, HistoricalPeriodData, HumanGrowthData, IconData, IslandData, IsotopeData, KnotData, LakeData, LaminaData, LanguageData, LatticeData, MannedSpaceMissionData, MathematicalFunctionData, MedicalTestData, MeteorShowerData, MineralData, MinorPlanetData, MortalityData, MountainData, MovieData, NebulaData, NeighborhoodData, NuclearExplosionData, NuclearReactorData, OceanData, ParkData, ParticleAcceleratorData, ParticleData, PersonData, PhysicalSystemData, PlaneCurveData, PlanetaryMoonData, PlanetData, PlantData, PolyhedronData, ProteinData, PsychrometricPropertyData, PulsarData, SatelliteData, SolarSystemFeatureData, SolidData, SpaceCurveData, SpeciesData, SpectralLineData, StandardAtmosphereData, StandardOceanData, StarClusterData, StarData, StoppingPowerData, SupernovaData, SurfaceData, ThermodynamicData, TideData, TropicalStormData, TunnelData, UnderseaFeatureData, UniverseModelData, UniversityData, VolcanoData, WeatherData, WeatherForecastData, WikipediaData, WindDirectionData, WindSpeedData, WindVectorData, WolframLanguageData, WordData, WordFrequency, WordFrequencyData, ZIPCodeData
Cloud (97)
AddUsers, AllowedCloudExtraParameters, AllowedCloudParameterExtensions, APIFunction, Authentication, AutoRefreshed, AutoSubmitting, CachePersistence, ClearPermissions, CloudAccountData, CloudBase, CloudConnect, CloudDeploy, CloudDirectory, CloudDisconnect, CloudEvaluate, CloudExport, CloudExpression, CloudExpressions, CloudFunction, CloudGet, CloudImport, CloudLoggingData, CloudObject, CloudObjectNameFormat, CloudObjects, CloudObjectURLType, CloudPublish, CloudPut, CloudSave, CloudShare, CloudSubmit, CloudSymbol, CloudUnshare, CompoundElement, CreateCloudExpression, CreatePermissionsGroup, CreateUUID, Delayed, DeleteCloudExpression, DeleteObject, DeletePermissionsKey, EmbeddedHTML, ExportForm, ExternalBundle, ExternalTypeSignature, FormControl, FormFunction, FormLayoutFunction, FormObject, FormPage, GenerateHTTPResponse, GenerateSecuredAuthenticationKey, HTTPErrorResponse, HTTPResponse, IconRules, IncludeDefinitions, LocalCache, PageTheme, PartProtection, Permissions, PermissionsGroup, PermissionsGroups, PermissionsKey, PermissionsKeys, RemoveUsers, ResponseForm, SecuredAuthenticationKey, SecuredAuthenticationKeys, SetCloudDirectory, SetPermissions, SetUsers, SharingList, $CacheBaseDirectory, $CloudBase, $CloudConnected, $CloudCreditsAvailable, $CloudEvaluation, $CloudExpressionBase, $CloudObjectNameFormat, $CloudObjectURLType, $CloudRootDirectory, $CloudSymbolBase, $CloudUserID, $CloudUserUUID, $CloudVersion, $EvaluationCloudBase, $EvaluationCloudObject, $Permissions, $RequesterAddress, $RequesterWolframID, $RequesterWolframUUID, $SSHAuthentication, $UserAgentString, $UserURLBase, $WolframID, $WolframUUID
Net (90)
AggregationLayer, AppendLayer, AttentionLayer, BasicRecurrentLayer, BatchNormalizationLayer, BatchSize, CatenateLayer, ConstantArrayLayer, ConstantPlusLayer, ConstantTimesLayer, ContrastiveLossLayer, ConvolutionLayer, CrossEntropyLossLayer, CTCLossLayer, DeconvolutionLayer, DotLayer, DropoutLayer, ElementwiseLayer, EmbeddingLayer, ExtractLayer, FlattenLayer, GatedRecurrentLayer, LearningRate, LearningRateMultipliers, LinearLayer, LocalResponseNormalizationLayer, LongShortTermMemoryLayer, LossFunction, MaxTrainingRounds, MeanAbsoluteLossLayer, MeanSquaredLossLayer, NetAppend, NetBidirectionalOperator, NetChain, NetDecoder, NetDelete, NetDrop, NetEncoder, NetEvaluationMode, NetExtract, NetFlatten, NetFoldOperator, NetGraph, NetInformation, NetInitialize, NetInsert, NetInsertSharedArrays, NetJoin, NetMapOperator, NetMapThreadOperator, NetMeasurements, NetModel, NetNestOperator, NetPairEmbeddingOperator, NetPort, NetPortGradient, NetPrepend, NetRename, NetReplace, NetReplacePart, NetSharedArray, NetStateObject, NetTake, NetTrain, NetTrainResultsObject, NormalizationLayer, OrderingLayer, PaddingLayer, PartLayer, PoolingLayer, PrependLayer, ReplicateLayer, ReshapeLayer, ResizeLayer, SequenceLastLayer, SequenceMostLayer, SequenceRestLayer, SequenceReverseLayer, SoftmaxLayer, SpatialTransformationLayer, SummationLayer, ThreadingLayer, TotalLayer, TrainingProgressCheckpointing, TrainingProgressFunction, TrainingProgressMeasurements, TrainingProgressReporting, TrainingStoppingCriterion, TransposeLayer, UnitVectorLayer
Control System (88)
AffineStateSpaceModel, AsymptoticOutputTracker, BodePlot, CarlemanLinearize, ContinuousTimeModelQ, ControllabilityGramian, ControllabilityMatrix, ControllableDecomposition, ControllableModelQ, DescriptorStateSpace, DiscreteLQEstimatorGains, DiscreteLQRegulatorGains, DiscreteTimeModelQ, DualSystemsModel, EstimatorGains, EstimatorRegulator, FeedbackLinearize, FeedbackSector, FeedbackSectorStyle, FeedbackType, FullInformationOutputRegulator, GainMargins, GainPhaseMargins, InternallyBalancedDecomposition, JordanModelDecomposition, KalmanEstimator, KroneckerModelDecomposition, LinearizingTransformationData, LQEstimatorGains, LQGRegulator, LQOutputRegulatorGains, LQRegulatorGains, MinimalStateSpaceModel, NicholsGridLines, NicholsPlot, NonlinearStateSpaceModel, NyquistGridLines, NyquistPlot, ObservabilityGramian, ObservabilityMatrix, ObservableDecomposition, ObservableModelQ, OutputControllabilityMatrix, OutputControllableModelQ, OutputResponse, PhaseMargins, PhaseRange, PIDData, PIDDerivativeFilter, PIDFeedforward, PIDTune, PoleZeroMarkers, RootLocusPlot, SamplingPeriod, SmithDelayCompensator, StabilityMargins, StabilityMarginsStyle, StateFeedbackGains, StateOutputEstimator, StateResponse, StateSpaceModel, StateSpaceRealization, StateSpaceTransform, StateTransformationLinearize, SystemsConnectionsModel, SystemsModelDelay, SystemsModelDelayApproximate, SystemsModelDelete, SystemsModelDimensions, SystemsModelExtract, SystemsModelFeedbackConnect, SystemsModelLabels, SystemsModelLinearity, SystemsModelMerge, SystemsModelOrder, SystemsModelParallelConnect, SystemsModelSeriesConnect, SystemsModelStateFeedbackConnect, SystemsModelVectorRelativeOrders, ToContinuousTimeModel, ToDiscreteTimeModel, TransferFunctionCancel, TransferFunctionExpand, TransferFunctionFactor, TransferFunctionModel, TransferFunctionPoles, TransferFunctionTransform, TransferFunctionZeros
Operator (86)
AngleBracket, Backslash, Because, BracketingBar, Cap, CapitalDifferentialD, CenterDot, CircleDot, CircleMinus, CirclePlus, CircleTimes, Colon, Congruent, Coproduct, Cup, CupCap, Del, Diamond, DifferentialD, DoubleBracketingBar, DoubleVerticalBar, Equilibrium, MinusPlus, NonCommutativeMultiply, NotCongruent, NotCupCap, NotDoubleVerticalBar, NotExists, NotReverseElement, NotSquareSubset, NotSquareSubsetEqual, NotSquareSuperset, NotSquareSupersetEqual, NotSubset, NotSubsetEqual, NotSuperset, NotSupersetEqual, NotVerticalBar, OverBar, OverDot, OverHat, Overscript, OverTilde, OverVector, PlusMinus, Proportion, Proportional, ReverseElement, ReverseEquilibrium, ReverseUpEquilibrium, SmallCircle, SpanFromLeft, Square, SquareIntersection, SquareSubset, SquareSubsetEqual, SquareSuperset, SquareSupersetEqual, SquareUnion, Star, SubMinus, SubPlus, Subscript, Subset, SubsetEqual, SubStar, Subsuperscript, SuchThat, SuperDagger, SuperMinus, SuperPlus, Superscript, Superset, SupersetEqual, SuperStar, Therefore, UnderBar, Underoverscript, Underscript, UnionPlus, UpEquilibrium, Vee, VerticalBar, VerticalSeparator, VerticalTilde, Wedge
Front End (85)
Iconize, Infix, Inherited, InheritScope, Initialization, Input, InputAutoReplacements, Interpretation, Invisible, Item, ItemSize, LimitsPositioning, LineIndent, LineIndentMaxFraction, LineSpacing, ListAnimate, LocalizeVariables, LocatorAutoCreate, LocatorRegion, Magnify, MakeExpression, Manual, Overlay, Paneled, PaneSelector, PassEventsDown, PassEventsUp, Placeholder, PopupWindow, Postfix, PreemptProtect, Prefix, Refresh, RefreshRate, Row, SaveDefinitions, Scrollbars, ScrollPosition, ShrinkingDelay, Spacer, Spacings, SpanFromAbove, SpanFromBoth, SynchronousInitialization, SynchronousUpdating, Text, TextAlignment, TextClipboardType, TextData, TextJustification, ToExpression, TouchPosition, TouchscreenAutoZoom, TouchscreenControlPlacement, TrackedSymbols, TransitionDirection, TransitionDuration, TransitionEffect, UndoOptions, UndoTrackedVariables, UnsavedVariables, UpdateInterval, UsingFrontEnd, $CharacterEncoding, $CharacterEncodings, $ControlActiveSetting, $DefaultImagingDevice, $Display, $DisplayFunction, $Epilog, $FrontEnd, $FrontEndSession, $IgnoreEOF, $ImagingDevices, $ImportFormats, $Inspector, $Line, $NumberMarks, $OutputSizeLimit, $ScriptCommandLine, $ScriptInputString, $SummaryBoxDataSizeLimit, $SynchronousEvaluation, $SyntaxHandler, $Urgent
Cell (78)
AllowGroupClose, AllowInlineCells, AllowReverseGroupClose, Cell, CellAutoOverwrite, CellBaseline, CellBracketOptions, CellChangeTimes, CellContext, CellDingbat, CellDynamicExpression, CellEditDuplicate, CellEpilog, CellEvaluationDuplicate, CellEvaluationFunction, CellEventActions, CellFrame, CellFrameColor, CellFrameLabelMargins, CellFrameLabels, CellFrameMargins, CellGroup, CellGroupData, CellGrouping, CellID, CellLabel, CellLabelAutoDelete, CellLabelStyle, CellMargins, CellObject, CellOpen, CellPrint, CellProlog, Cells, CellStyle, CellTags, CloudRenderingMethod, ConversionRules, Copyable, DefaultDuplicateCellStyle, DefaultNaturalLanguage, DefaultNewCellStyle, Deletable, DockedCells, Editable, Evaluatable, EvaluationCell, ExpressionCell, GeneratedCell, Hyphenation, InitializationCell, LanguageCategory, Multiselection, NextCell, ParagraphIndent, ParagraphSpacing, ParentCell, PreviousCell, PrivateCellOptions, PrivateFontOptions, Selectable, SelectedCells, SelectionCreateCell, SelectionEvaluateCreateCell, ShowAutoSpellCheck, ShowAutoStyles, ShowCellBracket, ShowCellLabel, ShowCellTags, ShowCursorTracker, ShowGroupOpener, ShowSpecialCharacters, ShowStringCharacters, SingleLetterItalics, StripOnInput, StructuredSelection, TaggingRules, TextCell
File System (78)
AbsoluteFileName, Compress, ContextToFileName, CopyFile, CopyToClipboard, CreateArchive, CreateFile, DeleteContents, DeleteFile, DumpSave, Encode, ExpandFileName, Export, ExtractArchive, File, FileBaseName, FileByteCount, FileConvert, FileDate, FileExistsQ, FileExtension, FileFormat, FileHash, FileNameDepth, FileNameDrop, FileNameForms, FileNameJoin, FileNames, FileNameSetter, FileNameSplit, FileNameTake, FilePrint, FileSize, FileSystemMap, FileSystemScan, FileType, FindFile, Get, Import, IncludeDirectories, MailAddressValidation, MailExecute, MailFolder, MailItem, MailReceiverFunction, MailResponseFunction, MailSearch, MailServerConnect, MailServerConnection, MailSettings, NotebookDirectory, NotebookFileName, OpenAppend, OpenRead, OpenWrite, OverwriteTarget, Path, PingTime, Put, PutAppend, RemoteFile, RenameFile, ReturnReceiptFunction, Run, RunThrough, Save, SendMail, SendMessage, SetFileDate, SystemOpen, Uncompress, XMLElement, XMLObject, $ExportFormats, $IncomingMailSettings, $InputFileName, $MobilePhone, $Path
Comparison Operator (73)
DotEqual, EqualTilde, GreaterEqualLess, GreaterFullEqual, GreaterGreater, GreaterLess, GreaterSlantEqual, GreaterTilde, HumpDownHump, HumpEqual, LeftTriangle, LeftTriangleBar, LeftTriangleEqual, LessEqualGreater, LessFullEqual, LessGreater, LessLess, LessSlantEqual, LessTilde, NestedGreaterGreater, NestedLessLess, NotEqualTilde, NotGreater, NotGreaterEqual, NotGreaterFullEqual, NotGreaterGreater, NotGreaterLess, NotGreaterSlantEqual, NotGreaterTilde, NotHumpDownHump, NotHumpEqual, NotLeftTriangle, NotLeftTriangleBar, NotLeftTriangleEqual, NotLess, NotLessEqual, NotLessFullEqual, NotLessGreater, NotLessLess, NotLessSlantEqual, NotLessTilde, NotNestedGreaterGreater, NotNestedLessLess, NotPrecedes, NotPrecedesEqual, NotPrecedesSlantEqual, NotPrecedesTilde, NotRightTriangle, NotRightTriangleBar, NotRightTriangleEqual, NotSucceeds, NotSucceedsEqual, NotSucceedsSlantEqual, NotSucceedsTilde, NotTilde, NotTildeEqual, NotTildeFullEqual, NotTildeTilde, Precedes, PrecedesEqual, PrecedesSlantEqual, PrecedesTilde, RightTriangle, RightTriangleBar, RightTriangleEqual, Succeeds, SucceedsEqual, SucceedsSlantEqual, SucceedsTilde, Tilde, TildeEqual, TildeFullEqual, TildeTilde
Color (71)
Black, Blend, Blue, Brown, ChromaticityPlot, ChromaticityPlot3D, CMYKColor, ColorBalance, ColorCombine, ColorConvert, ColorCoverage, ColorData, ColorDataFunction, ColorDetect, ColorDistance, ColorFunction, ColorFunctionScaling, Colorize, ColorNegate, ColorProfileData, ColorQ, ColorQuantize, ColorReplace, ColorRules, ColorSeparate, ColorSetter, ColorsNear, ColorSpace, ColorToneMapping, Cyan, Darker, Dithering, FindMatchingColor, Glow, Gray, GrayLevel, Green, Hue, ImageColorSpace, LABColor, LCHColor, LightBlue, LightBrown, LightCyan, Lighter, LightGray, LightGreen, LightMagenta, LightOrange, LightPink, LightPurple, LightRed, LightYellow, LUVColor, Magenta, MaxColorDistance, MinColorDistance, Orange, Pink, Purple, RandomColor, Red, RGBColor, StreamColorFunction, StreamColorFunctionScaling, VectorColorFunction, VectorColorFunctionScaling, White, WhitePoint, XYZColor, Yellow
Audio (69)
AllowedFrequencyRange, Audio, AudioAmplify, AudioAnnotate, AudioAnnotationLookup, AudioBlockMap, AudioCapture, AudioChannelAssignment, AudioChannelCombine, AudioChannelMix, AudioChannels, AudioChannelSeparate, AudioData, AudioDelay, AudioDelete, AudioDistance, AudioFade, AudioFrequencyShift, AudioGenerator, AudioInputDevice, AudioInsert, AudioIntervals, AudioJoin, AudioLabel, AudioLength, AudioLocalMeasurements, AudioLooping, AudioLoudness, AudioMeasurements, AudioNormalize, AudioOutputDevice, AudioOverlay, AudioPad, AudioPan, AudioPartition, AudioPause, AudioPitchShift, AudioPlay, AudioPlot, AudioQ, AudioRecord, AudioReplace, AudioResample, AudioReverb, AudioSampleRate, AudioSpectralMap, AudioSpectralTransformation, AudioSplit, AudioStop, AudioStream, AudioStreams, AudioTimeStretch, AudioTrim, AudioType, ConformAudio, Duration, MaxDuration, PaddingSize, PartitionGranularity, PitchRecognize, RemoveAudioStream, SpeechRecognize, SpeechSynthesize, VoiceStyleData, $AudioInputDevices, $AudioOutputDevices, $DefaultAudioInputDevice, $DefaultAudioOutputDevice, $VoiceStyles
Linear Algebra (62)
AllowedHeads, AntihermitianMatrixQ, AntisymmetricMatrixQ, CharacteristicPolynomial, CholeskyDecomposition, ConjugateTranspose, Diagonal, DiagonalizableMatrixQ, DiagonalMatrixQ, DiscreteLyapunovSolve, DiscreteRiccatiSolve, Distribute, Eigensystem, Eigenvalues, Eigenvectors, HermiteDecomposition, HermitianMatrixQ, HessenbergDecomposition, IndefiniteMatrixQ, JordanDecomposition, LinearSolve, LinearSolveFunction, LowerTriangularize, LowerTriangularMatrixQ, LUDecomposition, LyapunovSolve, MatrixExp, MatrixFunction, MatrixLog, MatrixPower, MatrixRank, Minors, NegativeDefiniteMatrixQ, NegativeSemidefiniteMatrixQ, Normalize, Normalized, NormalMatrixQ, NullSpace, Orthogonalize, OrthogonalMatrixQ, Permanent, PositiveDefiniteMatrixQ, PositiveSemidefiniteMatrixQ, PrincipalComponents, Projection, PseudoInverse, QRDecomposition, RealBlockDiagonalForm, RiccatiSolve, RowReduce, SchurDecomposition, SingularValueDecomposition, SingularValueList, SmithDecomposition, SquareMatrixQ, SymmetricMatrixQ, Transpose, UnitaryMatrixQ, UpperTriangularize, UpperTriangularMatrixQ, VectorAngle, ZeroTest
Machine Learning (60)
AcceptanceThreshold, ActiveClassification, ActiveClassificationObject, ActivePrediction, ActivePredictionObject, AmbiguityFunction, AmbiguityList, AnomalyDetection, AnomalyDetectorFunction, AssumeDeterministic, AudioIdentify, BayesianMaximization, BayesianMaximizationObject, BayesianMinimization, BayesianMinimizationObject, ClassifierFunction, ClassifierMeasurements, ClassifierMeasurementsObject, Classify, ClassPriors, DeleteAnomalies, DimensionReduce, DimensionReducerFunction, DimensionReduction, FacialFeatures, FeatureDistance, FeatureExtract, FeatureExtraction, FeatureExtractor, FeatureExtractorFunction, FeatureNames, FeatureNearest, FeatureSpacePlot, FeatureSpacePlot3D, FeatureTypes, FindAnomalies, ImageAugmentationLayer, ImageBoundingBoxes, ImageCases, ImageContainsQ, ImageContents, ImageIdentify, ImageInstanceQ, IndeterminateThreshold, InitialEvaluationHistory, LearnDistribution, LearnedDistribution, MaxOverlapFraction, MissingValuePattern, Predict, PredictorFunction, PredictorMeasurements, PredictorMeasurementsObject, RecognitionPrior, SequencePredict, SequencePredictorFunction, SpecificityGoal, SynthesizeMissingValues, UtilityFunction, ValidationSet
Notebook (60)
AutoCopy, CreateCellID, CreateDocument, CreateNotebook, CreateWindow, DocumentNotebook, EvaluationElements, EvaluationNotebook, InputNotebook, InsertResults, Interactive, Notebook, NotebookApply, NotebookAutoSave, NotebookClose, NotebookDelete, NotebookEvaluate, NotebookEventActions, NotebookFind, NotebookGet, NotebookImport, NotebookInformation, NotebookLocate, NotebookObject, NotebookOpen, NotebookPrint, NotebookPut, NotebookRead, Notebooks, NotebookSave, NotebookSelection, NotebookWrite, ParentNotebook, Paste, PlaceholderReplace, PrintingStyleEnvironment, PrivateNotebookOptions, ScreenStyleEnvironment, ScrollingOptions, SelectedNotebook, SelectionEvaluate, SelectionMove, SetSelectedNotebook, ShowSelection, SpellingOptions, Visible, WindowClickSelect, WindowElements, WindowFloating, WindowFrame, WindowFrameElements, WindowMargins, WindowOpacity, WindowSize, WindowStatusArea, WindowTitle, WindowToolbars, WrapAround, $Canceled, $Notebooks
Date (59)
AbsoluteTime, BusinessDayQ, CalendarConvert, CalendarData, CalendarType, CurrentDate, DateBounds, Dated, DateDifference, DateFormat, DateFunction, DateObject, DateObjectQ, DateOverlapsQ, DatePattern, DatePlus, DateRange, DateString, DateValue, DateWithinQ, DayCount, DayCountConvention, DaylightQ, DayMatchQ, DayName, DayPlus, DayRange, DayRound, Friday, FromAbsoluteTime, FromJulianDate, FromUnixTime, HolidayCalendar, JulianDate, LeapYearQ, LocalTime, LocalTimeZone, Monday, NextDate, Now, PreviousDate, Saturday, Sunday, Thursday, TimeObject, TimeObjectQ, TimeZone, TimeZoneConvert, TimeZoneOffset, Today, Tomorrow, Tuesday, UnixTime, Wednesday, Yesterday, $DateStringFormat, $SystemTimeZone, $TimeZone, $TimeZoneEntity
Clustering (52)
BinaryDistance, BrayCurtisDistance, CanberraDistance, CanonicalWarpingCorrespondence, CanonicalWarpingDistance, ChessboardDistance, ClusterClassify, ClusterDissimilarityFunction, ClusteringTree, CorrelationDistance, CosineDistance, CriterionFunction, DamerauLevenshteinDistance, Dendrogram, DiceDissimilarity, DistanceFunction, DistanceMatrix, EditDistance, EuclideanDistance, FindClusters, GapPenalty, HammingDistance, JaccardDissimilarity, LongestCommonSequence, LongestCommonSequencePositions, LongestCommonSubsequence, LongestCommonSubsequencePositions, LongestOrderedSequence, ManhattanDistance, MatchingDissimilarity, MeanShift, Nearest, NearestFunction, NearestNeighborGraph, NearestTo, NeedlemanWunschSimilarity, NormalizedSquaredEuclideanDistance, RogersTanimotoDissimilarity, RussellRaoDissimilarity, SequenceAlignment, SequenceCases, SequenceCount, SequencePosition, SequenceReplace, SequenceSplit, SimilarityRules, SmithWatermanSimilarity, SokalSneathDissimilarity, SquaredEuclideanDistance, WarpingCorrespondence, WarpingDistance, YuleDissimilarity
Graphics Primitive (51)
AASTriangle, AffineHalfSpace, AffineSpace, Annulus, Arrow, ASATriangle, Ball, BezierCurve, BSplineCurve, CapsuleShape, Circle, Circumsphere, Cone, ConicHullRegion, Cube, Cuboid, Cylinder, DiskSegment, Dodecahedron, Ellipsoid, EmptyRegion, FilledCurve, FullRegion, GraphicsComplex, HalfLine, HalfPlane, HalfSpace, Hexahedron, Hyperplane, Icosahedron, InfiniteLine, InfinitePlane, Insphere, JoinedCurve, Octahedron, Parallelepiped, Parallelogram, Polyhedron, Prism, Rectangle, RegularPolygon, SASTriangle, ShellRegion, Simplex, Sphere, SphericalShell, SSSTriangle, StadiumShape, Tetrahedron, Triangle, Tube
Form (48)
AccountingForm, BaseForm, CapForm, CForm, DecimalForm, DefaultPrintPrecision, DigitBlock, DisplayForm, EdgeForm, EngineeringForm, ExponentFunction, ExponentStep, FaceForm, FormatType, FortranForm, FullForm, HoldForm, JoinForm, MathMLForm, MatrixForm, NumberForm, NumberFormat, NumberMarks, NumberMultiplier, NumberPadding, NumberPoint, NumberSeparator, NumberSigns, OutputForm, PaddedForm, PercentForm, PrecedenceForm, QuantityForm, ScientificForm, ScientificNotationThreshold, SignPadding, StandardForm, StringForm, SyntaxForm, TableAlignments, TableDepth, TableDirections, TableForm, TableHeadings, TableSpacing, TeXForm, TraditionalForm, TreeForm
Stream (44)
AnchoredSearch, BinaryFormat, Byte, Character, Close, DefineInputStreamMethod, DefineOutputStreamMethod, EndOfBuffer, EndOfFile, Expression, Find, FindList, InputStream, NullRecords, NullWords, Number, OutputStream, Read, ReadLine, ReadList, ReadString, Record, RecordLists, RecordSeparators, RemoveInputStreamMethod, RemoveOutputStreamMethod, SetStreamPosition, Skip, Streams, StringToStream, TokenWords, TotalWidth, Word, WordSearch, WordSeparators, Write, WriteLine, $BatchInput, $BatchOutput, $Echo, $Input, $InputStreamMethods, $Output, $OutputStreamMethods
Statistical Test (42)
AndersonDarlingTest, AutocorrelationTest, BaringhausHenzeTest, BlomqvistBetaTest, BrownForsytheTest, ConoverTest, CorrelationTest, CramerVonMisesTest, DistributionFitTest, FisherRatioTest, GoodmanKruskalGammaTest, HoeffdingDTest, IndependenceTest, JarqueBeraALMTest, KendallTauTest, KolmogorovSmirnovTest, KuiperTest, LeveneTest, LocationEquivalenceTest, LocationTest, LogRankTest, MannWhitneyTest, MardiaCombinedTest, MardiaKurtosisTest, MardiaSkewnessTest, PairedTTest, PairedZTest, PearsonChiSquareTest, PearsonCorrelationTest, PillaiTraceTest, ShapiroWilkTest, SiegelTukeyTest, SignedRankTest, SignTest, SpearmanRankTest, TTest, UnitRootTest, VarianceEquivalenceTest, VarianceTest, WatsonUSquareTest, WilksWTest, ZTest
Statistical Process (41)
ARCHProcess, ARIMAProcess, ARMAProcess, ARProcess, BernoulliProcess, BinomialProcess, BrownianBridgeProcess, CompoundPoissonProcess, CompoundRenewalProcess, ContinuousMarkovProcess, CoxIngersollRossProcess, DiscreteMarkovProcess, EstimatedProcess, FARIMAProcess, FindHiddenMarkovStates, FindProcessParameters, FractionalBrownianMotionProcess, FractionalGaussianNoiseProcess, GARCHProcess, GeometricBrownianMotionProcess, HiddenMarkovProcess, InhomogeneousPoissonProcess, ItoProcess, MAProcess, MarkovProcessProperties, OrnsteinUhlenbeckProcess, PoissonProcess, ProcessEstimator, ProcessParameterAssumptions, ProcessParameterQ, QueueingNetworkProcess, QueueingProcess, RandomWalkProcess, RenewalProcess, SARIMAProcess, SARMAProcess, StratonovichProcess, TelegraphProcess, TransformedProcess, WhiteNoiseProcess, WienerProcess
Chart (39)
BarChart, BarChart3D, BarOrigin, BarSpacing, BoxWhiskerChart, BubbleChart, BubbleChart3D, BubbleScale, BubbleSizes, CandlestickChart, ChartBaseStyle, ChartElementFunction, ChartElements, ChartLabels, ChartLayout, ChartLegends, ChartStyle, DistributionChart, EventLabels, InteractiveTradingChart, KagiChart, LabelingFunction, LegendAppearance, LineBreakChart, PairedBarChart, PieChart, PieChart3D, Placed, PointFigureChart, RectangleChart, RectangleChart3D, RenkoChart, ScalingFunctions, SectorChart, SectorChart3D, SectorOrigin, SectorSpacing, TradingChart, TrendStyle
Polynomial (39)
AugmentedSymmetricPolynomial, CoefficientArrays, CoefficientList, CoefficientRules, CountRoots, Decompose, Discriminant, Exponent, FactorList, FactorSquareFree, FactorSquareFreeList, FactorTerms, FactorTermsList, FromCoefficientRules, GroebnerBasis, HornerForm, IrreduciblePolynomialQ, MonomialList, PolynomialExtendedGCD, PolynomialGCD, PolynomialLCM, PolynomialMod, PolynomialQ, PolynomialQuotient, PolynomialQuotientRemainder, PolynomialReduce, PolynomialRemainder, PowerSymmetricPolynomial, PrimitivePolynomialQ, Resultant, RootIntervals, SquareFreeQ, SubresultantPolynomialRemainders, SubresultantPolynomials, Subresultants, SymmetricPolynomial, SymmetricReduction, Trig, Variables
Arrow Operator (38)
DoubleDownArrow, DoubleLeftArrow, DoubleLeftRightArrow, DoubleLongLeftArrow, DoubleLongLeftRightArrow, DoubleLongRightArrow, DoubleRightArrow, DoubleUpArrow, DoubleUpDownArrow, DownArrow, DownArrowBar, DownArrowUpArrow, DownTeeArrow, LeftArrow, LeftArrowBar, LeftArrowRightArrow, LeftRightArrow, LeftTeeArrow, LongLeftArrow, LongLeftRightArrow, LongRightArrow, LowerLeftArrow, LowerRightArrow, RightArrow, RightArrowBar, RightArrowLeftArrow, RightTeeArrow, ShortDownArrow, ShortLeftArrow, ShortRightArrow, ShortUpArrow, UpArrow, UpArrowBar, UpArrowDownArrow, UpDownArrow, UpperLeftArrow, UpperRightArrow, UpTeeArrow
Machine (38)
Environment, OperatingSystem, SystemInformation, SystemInstall, SystemProcessData, SystemProcesses, $ActivationKey, $CommandLine, $CreationDate, $EvaluationEnvironment, $GeoLocationCity, $GeoLocationCountry, $GeoLocationSource, $LicenseExpirationDate, $LicenseID, $LicenseServer, $MachineAddresses, $MachineDomains, $MachineID, $MachineName, $MachineType, $NetworkConnected, $OperatingSystem, $ParentProcessID, $PathnameSeparator, $ProcessID, $ProcessorCount, $ProcessorType, $ReleaseNumber, $SessionID, $System, $SystemCharacterEncoding, $SystemID, $SystemShell, $SystemWordLength, $Username, $Version, $VersionNumber
(36)
ActiveStyle, ClearCookies, ConnectionSettings, CookieFunction, EmbedCode, ExternalOptions, FindCookies, FollowRedirects, HostLookup, HTTPRedirect, HTTPRequest, HTTPRequestData, Hyperlink, InstallService, IPAddress, SetCookies, URL, URLBuild, URLDecode, URLDispatcher, URLDownload, URLDownloadSubmit, URLEncode, URLExecute, URLExpand, URLParse, URLQueryDecode, URLQueryEncode, URLRead, URLResponseTime, URLShorten, URLSubmit, VerifySecurityCertificates, $Cookies, $CookieStore, $EmbedCodeEnvironments
Image Filter (35)
BilateralFilter, CommonestFilter, CornerFilter, CurvatureFlowFilter, DerivativeFilter, DifferentiatorFilter, EntropyFilter, FourierDCTFilter, GaborFilter, GaussianFilter, GeometricMeanFilter, GradientFilter, GradientOrientationFilter, HarmonicMeanFilter, HighpassFilter, HilbertFilter, ImageFilter, ImageSaliencyFilter, KuwaharaFilter, LaplacianFilter, LaplacianGaussianFilter, LowpassFilter, MaxFilter, MeanFilter, MeanShiftFilter, MedianFilter, MinFilter, NonlocalMeansFilter, PeronaMalikFilter, RangeFilter, RecurrenceFilter, RidgeFilter, StandardDeviationFilter, TotalVariationFilter, WienerFilter
Parallel (35)
AbortKernels, CloseKernels, CriticalSection, DistributedContexts, DistributeDefinitions, EvaluationObject, GetEnvironment, KernelObject, Kernels, LaunchKernels, ParallelArray, ParallelCombine, ParallelDo, ParallelEvaluate, Parallelize, ParallelMap, ParallelNeeds, ParallelProduct, ParallelSubmit, ParallelSum, ParallelTable, ParallelTry, SetEnvironment, SetSharedFunction, SetSharedVariable, TargetDevice, UnsetShared, WaitAll, WaitNext, $ConfiguredKernels, $DistributedContexts, $KernelCount, $KernelID, $SharedFunctions, $SharedVariables
Entity (34)
AggregatedEntityClass, CanonicalName, CombinedEntityClass, CommonName, DatabaseConnect, DatabaseDisconnect, DatabaseReference, Entity, EntityClass, EntityClassList, EntityCopies, EntityFunction, EntityGroup, EntityInstance, EntityList, EntityPrefetch, EntityProperties, EntityProperty, EntityPropertyClass, EntityRegister, EntityStore, EntityStores, EntityTypeName, EntityUnregister, EntityValue, ExtendedEntityClass, FilteredEntityClass, FromEntity, IncludeRelatedTables, RandomEntity, RelationalDatabase, SampledEntityClass, SortedEntityClass, ToEntity
Vector Tee Operator (34)
DoubleLeftTee, DoubleRightTee, DownLeftRightVector, DownLeftTeeVector, DownLeftVector, DownLeftVectorBar, DownRightTeeVector, DownRightVector, DownRightVectorBar, DownTee, LeftDownTeeVector, LeftDownVector, LeftDownVectorBar, LeftRightVector, LeftTee, LeftTeeVector, LeftUpDownVector, LeftUpTeeVector, LeftUpVector, LeftUpVectorBar, LeftVector, LeftVectorBar, RightDownTeeVector, RightDownVector, RightDownVectorBar, RightTee, RightTeeVector, RightUpDownVector, RightUpTeeVector, RightUpVector, RightUpVectorBar, RightVector, RightVectorBar, UpTee
Control Object (33)
ActionMenu, Animate, Animator, Checkbox, CheckboxBar, ClickPane, Clock, Control, CurrentValue, DefaultFieldHintStyle, Deploy, Deployed, Enabled, EventHandler, FieldCompletionFunction, GestureHandler, InputField, ListPicker, Locator, LocatorPane, Manipulate, Manipulator, MousePosition, Opener, PopupMenu, RadioButton, RadioButtonBar, Setter, SetterBar, Setting, Toggler, TogglerBar, Trigger
Style (33)
BaseStyle, Bold, CommunityBoundaryStyle, ContourStyle, DefaultGridLinesStyle, DefaultOptions, DefaultTicksStyle, ExclusionsStyle, FaceGridsStyle, FrameStyle, FrameTicksStyle, GeoGridLinesStyle, GridLinesStyle, Italic, ItemStyle, Large, Larger, Medium, MeshStyle, Plain, ScriptBaselineShifts, ScriptMinSize, ScriptSizeMultipliers, Small, Smaller, StreamStyle, Style, StyleData, StyleDefinitions, Tiny, TranslationOptions, Underlined, VectorStyle
Geodesy (32)
FindGeoLocation, GeoAntipode, GeoArea, GeoDestination, GeodesyData, GeoDirection, GeoDisplacement, GeoDistance, GeoDistanceList, GeoEntities, GeoGridDirectionDifference, GeoGridPosition, GeoGridUnitArea, GeoGridUnitDistance, GeoGridVector, GeoIdentify, GeoLength, GeoNearest, GeoPosition, GeoPositionENU, GeoPositionXYZ, GeoProjectionData, GeoVector, GeoVectorENU, GeoVectorXYZ, GeoWithinQ, Here, Latitude, LatitudeLongitude, Longitude, RandomGeoPosition, $GeoLocation
Geo Graphics (32)
DynamicGeoGraphics, GeoArraySize, GeoBackground, GeoBoundingBox, GeoBounds, GeoBubbleChart, GeoCenter, GeoGraphics, GeoGridLines, GeoGridRange, GeoGridRangePadding, GeoGroup, GeoHistogram, GeoImage, GeoLabels, GeoListPlot, GeoModel, GeoProjection, GeoRange, GeoRangePadding, GeoRegionValuePlot, GeoResolution, GeoScaleBar, GeoServer, GeoSmoothHistogram, GeoStreamPlot, GeoStyling, GeoStylingImageFunction, GeoVariant, GeoVectorPlot, GeoZoomLevel, MissingStyle
Named Group (32)
AbelianGroup, AlternatingGroup, BabyMonsterGroupB, ConwayGroupCo1, ConwayGroupCo2, ConwayGroupCo3, CyclicGroup, DihedralGroup, FischerGroupFi22, FischerGroupFi23, FischerGroupFi24Prime, HaradaNortonGroupHN, HeldGroupHe, HigmanSimsGroupHS, JankoGroupJ1, JankoGroupJ2, JankoGroupJ3, JankoGroupJ4, LyonsGroupLy, MathieuGroupM11, MathieuGroupM12, MathieuGroupM22, MathieuGroupM23, MathieuGroupM24, McLaughlinGroupMcL, MonsterGroupM, ONanGroupON, RudvalisGroupRu, SuzukiGroupSuz, SymmetricGroup, ThompsonGroupTh, TitsGroupT
Recurrence (32)
Casoratian, DeBruijnSequence, DifferenceRoot, DifferenceRootReduce, Differences, DirichletConvolve, DirichletTransform, DiscreteChirpZTransform, DiscreteConvolve, DiscreteHadamardTransform, DiscreteRatio, DiscreteShift, ExponentialGeneratingFunction, FareySequence, FindGeneratingFunction, FindLinearRecurrence, FindSequenceFunction, FourierSequenceTransform, FunctionSpace, GeneratingFunction, InverseFourierSequenceTransform, InverseZTransform, LinearRecurrence, Ratios, RSolve, RSolveValue, RudinShapiro, ShiftRegisterSequence, SubstitutionSystem, ThueMorse, ValidationLength, ZTransform
Restructuring (31)
AddSides, Apart, ApartSquareFree, ApplySides, Assuming, Assumptions, ComplexExpand, ComplexityFunction, DivideSides, ExcludedForms, ExpandAll, ExpandDenominator, ExpandNumerator, ExpToTrig, FullSimplify, FunctionExpand, MeijerGReduce, MultiplySides, PiecewiseExpand, PowerExpand, Refine, Simplify, SubtractSides, TargetFunctions, TransformationFunctions, TrigExpand, TrigFactor, TrigFactorList, TrigReduce, TrigToExp, $Assumptions
Wavelet (31)
BattleLemarieWavelet, BiorthogonalSplineWavelet, CDFWavelet, CoifletWavelet, ContinuousWaveletData, ContinuousWaveletTransform, DaubechiesWavelet, DGaussianWavelet, DiscreteWaveletData, DiscreteWaveletPacketTransform, DiscreteWaveletTransform, GaborWavelet, HaarWavelet, InverseContinuousWaveletTransform, InverseWaveletTransform, LiftingWaveletTransform, MexicanHatWavelet, MeyerWavelet, MorletWavelet, PaulWavelet, ReverseBiorthogonalSplineWavelet, ShannonWavelet, StationaryWaveletTransform, SymletWavelet, WaveletBestBasis, WaveletMapIndexed, WaveletPhi, WaveletPsi, WaveletScale, WaveletScalogram, WaveletThreshold
Box (30)
AdjustmentBox, BoxData, BoxObject, ButtonBox, ErrorBox, EvaluationBox, FormBox, FractionBox, FrameBox, GridBox, InterpretationBox, ListPickerBox, MakeBoxes, OverscriptBox, ParentBox, RadicalBox, RawBoxes, RowBox, SqrtBox, StripBoxes, StripWrapperBoxes, StyleBox, SubscriptBox, SubsuperscriptBox, SuperscriptBox, TagBox, TemplateBox, ToBoxes, UnderoverscriptBox, UnderscriptBox
Solving (30)
CylindricalDecomposition, DEigensystem, DEigenvalues, DependentVariables, DifferentialRoot, DifferentialRootReduce, DSolve, DSolveValue, Eliminate, GeneratedParameters, GenericCylindricalDecomposition, InverseFunctions, MaxExtraConditions, NBodySimulation, NBodySimulationData, NDEigensystem, NDEigenvalues, NDSolve, NDSolveValue, NSolve, ParametricFunction, ParametricNDSolve, ParametricNDSolveValue, Reduce, SemialgebraicComponentInstances, Solve, SolveAlways, ToRules, VerifySolutions, WhenEvent
Association (29)
AssociateTo, Association, AssociationFormat, AssociationMap, AssociationQ, AssociationThread, Catenate, JoinAcross, Key, KeyCollisionFunction, KeyComplement, KeyDrop, KeyDropFrom, KeyExistsQ, KeyFreeQ, KeyIntersection, KeyMap, KeyMemberQ, Keys, KeySelect, KeySort, KeySortBy, KeyTake, KeyUnion, KeyValueMap, KeyValuePattern, Lookup, Merge, Values
Box Options (28)
AdjustmentBoxOptions, AutoDelete, ButtonBoxOptions, ColumnAlignments, ColumnLines, ColumnsEqual, ColumnSpacings, ColumnWidths, FormBoxOptions, FractionBoxOptions, FrameBoxOptions, InterpretationBoxOptions, ListPickerBoxOptions, OverscriptBoxOptions, RadicalBoxOptions, RowAlignments, RowLines, RowMinHeight, RowsEqual, RowSpacings, SqrtBoxOptions, SubscriptBoxOptions, SubsuperscriptBoxOptions, SuperscriptBoxOptions, TagBoxOptions, TemplateBoxOptions, UnderoverscriptBoxOptions, UnderscriptBoxOptions
Calculus (28)
C, Constants, Convolve, D, Derivative, Direction, Dt, FunctionDomain, FunctionPeriod, FunctionRange, GenerateConditions, GreenFunction, HankelTransform, Integrate, InverseHankelTransform, InverseMellinTransform, InverseRadonTransform, Limit, MaxLimit, MellinConvolve, MellinTransform, MinLimit, NIntegrate, NonConstants, PrincipalValue, RadonTransform, Residue, Wronskian
Graph Boolean Property (28)
AcyclicGraphQ, BipartiteGraphQ, CompleteGraphQ, ConnectedGraphQ, DirectedGraphQ, EdgeCoverQ, EdgeQ, EmptyGraphQ, EulerianGraphQ, GraphQ, HamiltonianGraphQ, IndependentEdgeSetQ, IndependentVertexSetQ, IsomorphicGraphQ, KEdgeConnectedGraphQ, KVertexConnectedGraphQ, LoopFreeGraphQ, MixedGraphQ, MultigraphQ, PathGraphQ, PlanarGraphQ, SimpleGraphQ, TreeGraphQ, UndirectedGraphQ, VertexCoverQ, VertexQ, WeaklyConnectedGraphQ, WeightedGraphQ
Number Theory (28)
ChineseRemainder, CompositeQ, CoprimeQ, Divisible, DivisorSum, ExtendedGCD, FindIntegerNullVector, FrobeniusNumber, FrobeniusSolve, GaussianIntegers, IntegerPartitions, MersennePrimeExponent, MersennePrimeExponentQ, MixedRadix, ModularInverse, NumberCompose, NumberDecompose, NumberExpand, PerfectNumber, PerfectNumberQ, PowerMod, PowerModList, PowersRepresentations, PrimePowerQ, Primes, PrimitiveRootList, RandomPrime, SquaresR
Quantity (28)
CommonUnits, CompatibleUnitQ, DatedUnit, DimensionalCombinations, GeneratedQuantityMagnitudes, IncludeQuantities, IndependentPhysicalQuantity, IndependentUnit, IndependentUnitDimension, KnownUnitQ, MixedMagnitude, MixedRadixQuantity, MixedUnit, NondimensionalizationTransform, PlanckRadiationLaw, Quantity, QuantityArray, QuantityDistribution, QuantityMagnitude, QuantityQ, QuantityUnit, TargetUnits, UnitConvert, UnitDimensions, UnitSimplify, UnitSystem, UnityDimensions, $UnitSystem
Array (27)
ArrayComponents, ArrayFilter, ArrayFlatten, ArrayPad, ArrayResample, ArrayReshape, ArrayRules, Band, CellularAutomaton, CenterArray, ClusteringComponents, ConstantArray, CoordinateBoundingBox, CoordinateBoundingBoxArray, CoordinateBounds, CoordinateBoundsArray, Downsample, FindPeaks, FlattenAt, KarhunenLoeveDecomposition, PadLeft, PadRight, PeakDetect, Subsequences, Total, TuringMachine, Upsample
Molecule (27)
Atom, AtomCoordinates, AtomCount, AtomDiagramCoordinates, AtomList, Bond, BondCount, BondList, BondQ, ConnectedMoleculeComponents, ConnectedMoleculeQ, FindMoleculeSubstructure, IncludeAromaticBonds, IncludeHydrogens, Molecule, MoleculeContainsQ, MoleculeEquivalentQ, MoleculeGraph, MoleculeModify, MoleculePattern, MoleculePlot, MoleculePlot3D, MoleculeProperty, MoleculeQ, MoleculeValue, StereochemistryElements, ValenceErrorHandling
Template (26)
AutoRemove, CombinerFunction, DeliveryFunction, DocumentGenerator, DocumentGeneratorInformation, DocumentGenerators, EpilogFunction, FileTemplate, FileTemplateApply, GeneratedDocumentBinding, GenerateDocument, GeneratorDescription, GeneratorHistoryLength, GeneratorOutputType, InsertionFunction, NotebookTemplate, StringTemplate, TemplateApply, TemplateExpression, TemplateIf, TemplateObject, TemplateSequence, TemplateSlot, TemplateWith, XMLTemplate, $TemplatePath
Tensor (26)
Antisymmetric, Arrays, HodgeDual, Indexed, KroneckerProduct, LeviCivitaTensor, Matrices, StructuredArray, Symmetric, Symmetrize, SymmetrizedArray, SymmetrizedArrayRules, SymmetrizedDependentComponents, SymmetrizedIndependentComponents, SymmetrizedReplacePart, TensorContract, TensorDimensions, TensorExpand, TensorProduct, TensorRank, TensorReduce, TensorSymmetry, TensorTranspose, TensorWedge, Vectors, ZeroSymmetric
Control Object Options (25)
AnimationDirection, AnimationRate, AnimationRepetitions, AnimationRunning, AnimationRunTime, AnimationTimeIndex, Appearance, AppearanceElements, AppearanceRules, AutoAction, AutorunSequencing, Backward, Bookmarks, ContentSize, ContinuousAction, ControlActive, ControlPlacement, ControlsRendering, ControlType, DefaultDuration, Delimiter, DisplayAllSteps, Forward, ForwardBackward, TrackingFunction
List (25)
Accumulate, AnglePath, AnglePath3D, AngleVector, CirclePoints, ContainsAll, ContainsAny, ContainsExactly, ContainsNone, ContainsOnly, FactorInteger, FindDivisions, FindRepeat, FindTransientRepeat, LatticeReduce, ListConvolve, ListCorrelate, ListDeconvolve, RotateLeft, RotateRight, Signature, SpherePoints, Subdivide, Unitize, UnitVector
Front End Options (24)
AutoIndent, AutoItalicWords, AutoMultiplicationSymbol, AutoScroll, AutoSpacing, CodeAssistOptions, ContentPadding, DefaultElement, DelimiterFlashTime, Delimiters, Dividers, Evaluator, FieldHint, FieldHintStyle, FieldMasked, FieldSize, FrontEndDynamicExpression, FrontEndEventActions, GridDefaultElement, InputAliases, Magnification, OutputSizeLimit, RenderingOptions, RulerUnits
Math Function Windows (24)
BartlettHannWindow, BartlettWindow, BlackmanHarrisWindow, BlackmanNuttallWindow, BlackmanWindow, BohmanWindow, CauchyWindow, ConnesWindow, CosineWindow, DirichletWindow, ExactBlackmanWindow, FlatTopWindow, GaussianWindow, HammingWindow, HannPoissonWindow, HannWindow, KaiserBesselWindow, KaiserWindow, LanczosWindow, NuttallWindow, ParzenWindow, PoissonWindow, TukeyWindow, WelchWindow
Time Series (24)
AdjustTimeSeriesForecast, EventSeries, IncludeWindowTimes, MinimumTimeIncrement, MovingMap, RegularlySampledQ, ResamplingMethod, TemporalRegularity, TimeSeries, TimeSeriesAggregate, TimeSeriesForecast, TimeSeriesInsert, TimeSeriesInvertibility, TimeSeriesMap, TimeSeriesMapThread, TimeSeriesModel, TimeSeriesModelFit, TimeSeriesResample, TimeSeriesRescale, TimeSeriesShift, TimeSeriesThread, TimeSeriesWindow, ToInvertibleTimeSeries, ValueDimensions
Gauge (22)
AngularGauge, BulletGauge, ClockGauge, DefaultLabelStyle, GaugeFaceElementFunction, GaugeFaceStyle, GaugeFrameElementFunction, GaugeFrameSize, GaugeFrameStyle, GaugeLabels, GaugeMarkers, GaugeStyle, HorizontalGauge, LabelStyle, ScaleDivisions, ScaleOrigin, ScalePadding, ScaleRanges, ScaleRangeStyle, ThermometerGauge, TicksStyle, VerticalGauge
Min Max (22)
ArgMax, ArgMin, FindArgMax, FindArgMin, FindCurvePath, FindMaximum, FindMaxValue, FindMinimum, FindMinValue, FindShortestTour, KnapsackSolve, LinearProgramming, Maximize, MaxValue, Minimize, MinValue, NArgMax, NArgMin, NMaximize, NMaxValue, NMinimize, NMinValue
Group Theory (21)
CayleyGraph, CycleIndexPolynomial, FiniteAbelianGroupCount, FiniteGroupCount, FiniteGroupData, GroupActionBase, GroupCentralizer, GroupElementFromWord, GroupElementPosition, GroupElementQ, GroupElements, GroupElementToWord, GroupGenerators, GroupMultiplicationTable, GroupOrbits, GroupOrder, GroupSetwiseStabilizer, GroupStabilizer, GroupStabilizerChain, PermutationGroup, RightCosetRepresentative
Link (21)
DisplayPacket, Install, LinkActivate, LinkClose, LinkConnect, LinkCreate, LinkInterrupt, LinkLaunch, LinkObject, LinkPatterns, LinkProtocol, LinkRead, LinkReadyQ, Links, LinkWrite, SourceLink, Uninstall, $CurrentLink, $Linked, $ParentLink, $SourceLink
Logic (21)
AxiomaticTheory, Conjunction, Disjunction, Equivalent, Exists, FindEquationalProof, FindInstance, ForAll, Implies, LogicalExpand, Majority, Nand, ProofObject, Resolve, SatisfiabilityCount, SatisfiabilityInstances, SatisfiableQ, TautologyQ, UnateQ, Xnor, Xor
Search (21)
AddToSearchIndex, ContentFieldOptions, ContentLocationFunction, ContentObject, CreateSearchIndex, DeleteSearchIndex, DocumentWeightingRules, FindTextualAnswer, MaxWordGap, SearchAdjustment, SearchIndexObject, SearchIndices, SearchQueryString, SearchResultObject, TextSearch, TextSearchReport, UpdateSearchIndex, WebAudioSearch, WebImageSearch, WebSearch, WikipediaSearch
Boolean (20)
AllTrue, AnyTrue, Boole, BooleanConsecutiveFunction, BooleanConvert, BooleanCountingFunction, BooleanFunction, BooleanGraph, BooleanMaxterms, BooleanMinimize, BooleanMinterms, BooleanQ, Booleans, BooleanTable, BooleanVariables, ConditionalExpression, DiscreteIndicator, NoneTrue, TrueQ, Undefined
Compile (20)
CompilationOptions, CompilationTarget, Compile, Compiled, CompiledCodeFunction, CompiledFunction, CompilerOptions, FunctionCompile, FunctionCompileExport, FunctionCompileExportByteArray, FunctionCompileExportLibrary, FunctionCompileExportString, KernelFunction, Parallelization, RuntimeAttributes, RuntimeOptions, TargetSystem, Typed, TypeSpecifier, $CompilationTarget
Directory (20)
CopyDirectory, CreateDirectory, CreateIntermediateDirectories, DeleteDirectory, Directory, DirectoryName, DirectoryQ, DirectoryStack, ParentDirectory, RenameDirectory, ResetDirectory, SetDirectory, $BaseDirectory, $HomeDirectory, $InitialDirectory, $InstallationDirectory, $RootDirectory, $TemporaryDirectory, $UserBaseDirectory, $UserDocumentsDirectory
Extraction (20)
Commonest, Delete, DeleteDuplicates, DeleteDuplicatesBy, Drop, MaximalBy, MinimalBy, MinMax, Pick, RankedMax, RankedMin, SelectFirst, TakeDrop, TakeLargest, TakeLargestBy, TakeList, TakeSmallest, TakeSmallestBy, TakeWhile, UpTo
Fitting (20)
ConfidenceLevel, CovarianceEstimatorFunction, DesignMatrix, DispersionEstimatorFunction, ExponentialFamily, FindFormula, FitRegularization, FittedModel, GeneralizedLinearModelFit, IncludeConstantBasis, LeastSquares, LinearModelFit, LinearOffsetFunction, LinkFunction, LogitModelFit, NominalVariables, NonlinearModelFit, ProbitModelFit, VarianceEstimatorFunction, Weights
Geometric Transform (20)
AffineTransform, EulerAngles, EulerMatrix, FindGeometricTransform, GeometricTransformation, LinearFractionalTransform, ReflectionMatrix, ReflectionTransform, RescalingTransform, RollPitchYawAngles, RollPitchYawMatrix, RotationMatrix, RotationTransform, ScalingMatrix, ScalingTransform, ShearingMatrix, ShearingTransform, TransformationFunction, TransformationMatrix, TranslationTransform
Numerics Precision (20)
Accuracy, AccuracyGoal, Chop, ExactNumberQ, InexactNumberQ, MachineNumberQ, MachinePrecision, Precision, SetAccuracy, SetPrecision, $MachineEpsilon, $MachinePrecision, $MaxExtraPrecision, $MaxMachineNumber, $MaxNumber, $MaxPrecision, $MinMachineNumber, $MinNumber, $MinPrecision, $PerformanceGoal
Channel (19)
Anonymous, ChannelBase, ChannelBrokerAction, ChannelDatabin, ChannelListen, ChannelListener, ChannelListeners, ChannelObject, ChannelPreSendFunction, ChannelReceiverFunction, ChannelSend, ChannelSubscribers, CreateChannel, DeleteChannel, FindChannels, RemoveChannelListener, RemoveChannelSubscribers, $AllowExternalChannelFunctions, $ChannelBase
Matrix (19)
ArrayPlot, BoxMatrix, CrossMatrix, DiagonalMatrix, DiamondMatrix, DiskMatrix, FourierDCTMatrix, FourierDSTMatrix, FourierMatrix, GaborMatrix, GaussianMatrix, HadamardMatrix, HankelMatrix, HilbertMatrix, MatrixPlot, PauliMatrix, SavitzkyGolayMatrix, ShenCastanMatrix, ToeplitzMatrix
Named Graph (19)
ButterflyGraph, CirculantGraph, CompleteGraph, CompleteKaryTree, CycleGraph, DeBruijnGraph, GridGraph, HararyGraph, HypercubeGraph, KaryTree, KirchhoffGraph, KnightTourGraph, LineGraph, PathGraph, PetersenGraph, StarGraph, TreeGraph, TuranGraph, WheelGraph
Packet (19)
BeginDialogPacket, CallPacket, DisplayEndPacket, EndDialogPacket, EnterExpressionPacket, EnterTextPacket, EvaluatePacket, InputNamePacket, InputPacket, InputStringPacket, MenuPacket, MessagePacket, OutputNamePacket, ReturnExpressionPacket, ReturnPacket, ReturnTextPacket, StationaryWaveletPacketTransform, SyntaxPacket, TextPacket
Device (18)
DeviceClose, DeviceConfigure, DeviceExecute, DeviceExecuteAsynchronous, DeviceObject, DeviceOpen, DeviceRead, DeviceReadBuffer, DeviceReadLatest, DeviceReadList, DeviceReadTimeSeries, Devices, DeviceStreams, DeviceWrite, DeviceWriteBuffer, FindDevices, ImagingDevice, $ImagingDevice
Messages And Printing (18)
Assert, MessageList, MessageName, Messages, Off, On, PrintTemporary, Quiet, Shallow, Short, Skeleton, $AssertFunction, $Language, $MessageGroups, $MessageList, $MessagePrePrint, $Messages, $NewMessage
Binary Data (17)
BaseDecode, BaseEncode, BinaryDeserialize, BinaryRead, BinaryReadList, BinarySerialize, BinaryWrite, ByteArray, ByteArrayFormat, ByteArrayQ, ByteArrayToString, ByteOrdering, ExportByteArray, ImportByteArray, ReadByteArray, StringToByteArray, $ByteOrdering
Debug (17)
Echo, EchoFunction, MatchLocalNames, Stack, StackBegin, StackComplete, StackInhibit, Trace, TraceAbove, TraceBackward, TraceDepth, TraceForward, TraceOff, TraceOn, TraceOriginal, TracePrint, TraceScan
Discrete Fourier (17)
Cepstrogram, CepstrogramArray, CepstrumArray, FourierDCT, FourierDST, FourierParameters, InverseFourier, InverseShortTimeFourier, InverseSpectrogram, ListFourierSequenceTransform, ListZTransform, Periodogram, PeriodogramArray, ShortTimeFourier, ShortTimeFourierData, Spectrogram, SpectrogramArray
Histogram (17)
BinCounts, BinLists, DateHistogram, DateReduction, DensityHistogram, Histogram, Histogram3D, HistogramDistribution, HistogramList, HistogramTransform, HistogramTransformInterpolation, ImageHistogram, PairedHistogram, PairedSmoothHistogram, SmoothDensityHistogram, SmoothHistogram, SmoothHistogram3D
Numeric (17)
DifferenceQuotient, DiscreteVariables, EvaluationMonitor, Gradient, MaxIterations, MaxRecursion, MaxStepFraction, MaxSteps, MaxStepSize, Method, NormFunction, PerformanceGoal, PrecisionGoal, StartingStepSize, StepMonitor, Tolerance, WorkingPrecision
Permutation (17)
Cycles, FindPermutation, InversePermutation, PermutationCycles, PermutationCyclesQ, PermutationLength, PermutationList, PermutationListQ, PermutationMax, PermutationMin, PermutationOrder, PermutationPower, PermutationProduct, PermutationReplace, PermutationSupport, Permute, RandomPermutation
Symbol Information (17)
Constant, Flat, Locked, NHoldAll, NHoldFirst, NHoldRest, NumericFunction, OneIdentity, OptionValue, Orderless, Protected, ReadProtected, SequenceHold, SetSystemOptions, Stub, SystemOptions, Temporary
System Model (17)
ConnectSystemModelComponents, CreateDataSystemModel, CreateSystemModel, FindSystemModelEquilibrium, SetSystemModel, SystemModel, SystemModeler, SystemModelExamples, SystemModelLinearize, SystemModelParametricSimulate, SystemModelPlot, SystemModelProgressReporting, SystemModelReliability, SystemModels, SystemModelSimulate, SystemModelSimulateSensitivity, SystemModelSimulationData
Cryptography (16)
Decrypt, DecryptFile, DerivedKey, DigitalSignature, Encrypt, EncryptedObject, EncryptFile, GenerateAsymmetricKeyPair, GenerateDerivedKey, GenerateDigitalSignature, GenerateSymmetricKey, PrivateKey, PublicKey, SymmetricKey, VerifyDerivedKey, VerifyDigitalSignature
Structural (16)
GroupBy, Groupings, Heads, Insert, Nothing, Order, Ordering, OrderingBy, Position, PositionIndex, ReverseSort, ReverseSortBy, Riffle, SortedBy, Split, SplitBy
Time Memory (16)
AbsoluteTiming, MaxMemoryUsed, MemoryAvailable, MemoryConstrained, MemoryConstraint, MemoryInUse, Pause, RepeatedTiming, SessionTime, Share, TimeConstrained, TimeConstraint, TimeGoal, TimeUsed, $TimedOut, $TimeUnit
Code Action (15)
BlockMap, FixedPoint, FixedPointList, FoldPair, FoldPairList, MapAll, MapIndexed, NestList, NestWhile, NestWhileList, Operate, SequenceFold, SequenceFoldList, SubsetMap, Through
Continuous Fourier (15)
FourierCoefficient, FourierCosCoefficient, FourierCosSeries, FourierCosTransform, FourierSeries, FourierSinCoefficient, FourierSinSeries, FourierSinTransform, FourierTransform, FourierTrigSeries, InverseFourierCosTransform, InverseFourierSinTransform, InverseFourierTransform, InverseLaplaceTransform, LaplaceTransform
Domain (15)
Element, NegativeIntegers, NegativeRationals, NegativeReals, NonNegativeIntegers, NonNegativeRationals, NonNegativeReals, NonPositiveIntegers, NonPositiveRationals, NonPositiveReals, NotElement, PositiveIntegers, PositiveRationals, PositiveReals, Rationals
External Process (15)
KillProcess, ProcessConnection, ProcessDirectory, ProcessEnvironment, Processes, ProcessInformation, ProcessObject, ProcessStatus, RemoteAuthorizationCaching, RemoteConnect, RemoteConnectionObject, RemoteRun, RemoteRunProcess, RunProcess, StartProcess
Integer (15)
DigitCount, FromCharacterCode, FromDigits, FromRomanNumeral, IntegerDigits, IntegerExponent, IntegerLength, IntegerName, IntegerPart, IntegerReverse, Integers, IntegerString, QuotientRemainder, RealDigits, RomanNumeral
Interpreter (15)
DelimitedSequence, ExcludedLines, GeoLocation, HeaderLines, ImportOptions, Interpreter, MissingDataRules, RectangularRepeatingElement, RepeatingElement, Restricted, SemanticImport, SemanticImportString, SemanticInterpretation, SquareRepeatingElement, $InterpreterTypes
Socket (15)
NetworkPacketCapture, NetworkPacketRecording, NetworkPacketTrace, SocketConnect, SocketListen, SocketListener, SocketObject, SocketOpen, SocketReadMessage, SocketReadyQ, Sockets, SocketWaitAll, SocketWaitNext, $DefaultNetworkInterface, $NetworkInterfaces
Vector Calculus (15)
ArcCurvature, ArcLength, CoordinateChartData, CoordinateTransform, CoordinateTransformData, Curl, Div, FrenetSerretSystem, FromPolarCoordinates, FromSphericalCoordinates, Grad, Laplacian, ToPolarCoordinates, ToSphericalCoordinates, TransformedField
Blockchain (14)
BlockchainAddressData, BlockchainBase, BlockchainBlockData, BlockchainContractValue, BlockchainData, BlockchainGet, BlockchainKeyEncode, BlockchainPut, BlockchainTokenData, BlockchainTransaction, BlockchainTransactionData, BlockchainTransactionSign, BlockchainTransactionSubmit, $BlockchainBase
Dynamic (14)
AbsoluteCurrentValue, Deinitialization, Dynamic, DynamicEvaluationTimeout, DynamicModule, DynamicModuleValues, DynamicSetting, DynamicWrapper, FinishDynamic, MouseAnnotation, MouseAppearance, Mouseover, NotebookDynamicExpression, $DynamicEvaluation
Library Link (14)
ConnectLibraryCallbackFunction, CreateManagedLibraryExpression, FindLibrary, LibraryDataType, LibraryFunction, LibraryFunctionError, LibraryFunctionInformation, LibraryFunctionLoad, LibraryFunctionUnload, LibraryLoad, LibraryUnload, ManagedLibraryExpressionID, ManagedLibraryExpressionQ, $LibraryPath
Sound (14)
Beep, EmitSound, ListPlay, Play, PlayRange, SampleDepth, SampledSoundFunction, SampledSoundList, SampleRate, Sound, SoundNote, SoundVolume, Speak, $SoundDisplayFunction
Dialog (13)
AuthenticationDialog, ChoiceDialog, CreateDialog, Dialog, DialogInput, DialogNotebook, DialogProlog, DialogReturn, DialogSymbols, MessageDialog, Modal, SystemDialogInput, TraceDialog
Environment (13)
ClearSystemCache, Exit, In, InString, Quit, Update, $HistoryLength, $IterationLimit, $Post, $Pre, $PrePrint, $PreRead, $RecursionLimit
Signal Processing (13)
BandpassFilter, BandstopFilter, BesselFilterModel, BiquadraticFilterModel, ButterworthFilterModel, Chebyshev1FilterModel, Chebyshev2FilterModel, EllipticFilterModel, EquirippleFilterKernel, FrequencySamplingFilterKernel, KalmanFilter, LeastSquaresFilterKernel, ResamplingAlgorithmData
Astronomy (12)
AltitudeMethod, CelestialSystem, EclipseType, LunarEclipse, MoonPhase, MoonPosition, SiderealTime, SolarEclipse, SunPosition, Sunrise, Sunset, TimeDirection
Geo Graphics Primitive (12)
DayHemisphere, DayNightTerminator, GeoBoundsRegion, GeoCircle, GeoDisk, GeoHemisphere, GeoHemisphereBoundary, GeoMarker, GeoPath, GeoVisibleRegion, GeoVisibleRegionBoundary, NightHemisphere
Root (12)
Cubics, FindRoot, Modulus, NRoots, Quartics, Root, RootOfUnityQ, RootReduce, Roots, RootSum, ToRadicals, $MaxRootDegree
Symbol Assignment (12)
AddTo, AppendTo, Decrement, DivideBy, Increment, PreDecrement, PreIncrement, PrependTo, Protect, SubtractFrom, TimesBy, Unprotect
Algebraic (11)
AlgebraicIntegerQ, AlgebraicNumber, AlgebraicNumberDenominator, AlgebraicNumberNorm, AlgebraicNumberPolynomial, AlgebraicNumberTrace, Algebraics, AlgebraicUnitQ, IsolatingInterval, MinimalPolynomial, RootApproximant
Alignment (11)
Above, Alignment, AlignmentPoint, Baseline, BaselinePosition, Below, Bottom, Center, Left, Right, Top
Asymptotic (11)
AsymptoticDSolveValue, AsymptoticEqual, AsymptoticEquivalent, AsymptoticGreater, AsymptoticGreaterEqual, AsymptoticIntegrate, AsymptoticLess, AsymptoticLessEqual, AsymptoticRSolveValue, AsymptoticSolve, AsymptoticSum
Button (11)
Button, ButtonBar, ButtonData, ButtonFunction, ButtonMinHeight, ButtonNotebook, ButtonSource, CancelButton, ChoiceButtons, DefaultButton, PasteButton
Code Interruption (11)
Abort, AbortProtect, Catch, CheckAbort, Failure, FailureQ, Interrupt, Success, Throw, $Aborted, $Failed
Discrete Calculus (11)
DifferenceDelta, DiscreteLimit, DiscreteMaxLimit, DiscreteMinLimit, NProduct, NSum, Product, Regularization, Sum, SumConvergence, VerifyConvergence
Finance (11)
Annuity, AnnuityDue, Cashflow, CurrencyConvert, EffectiveInterest, FinancialBond, FinancialDerivative, FinancialIndicator, InflationAdjust, InflationMethod, TimeValue
Geometric Scene (11)
AngleBisector, CircleThrough, FindGeometricConjectures, GeometricAssertion, Midpoint, PerpendicularBisector, RandomInstance, TriangleCenter, TriangleConstruct, TriangleMeasurement, UnconstrainedParameters
Pattern (11)
Alternatives, Except, Longest, Optional, OptionsPattern, OrderlessPatternSequence, PatternSequence, PatternTest, Repeated, RepeatedNull, Shortest
Resource (11)
DefineResourceFunction, PublisherID, ResourceData, ResourceFunction, ResourceObject, ResourceRegister, ResourceRemove, ResourceSearch, ResourceSubmit, ResourceUpdate, $PublisherID
Service (11)
EmbeddedService, SaveConnection, ServiceConnect, ServiceDisconnect, ServiceExecute, ServiceObject, ServiceRequest, ServiceSubmit, $EmbeddableServices, $ServiceCreditsAvailable, $Services
Annotation (10)
Annotation, AnnotationDelete, AnnotationRules, DefaultTooltipStyle, Monitor, ProgressIndicator, StatusArea, Tooltip, TooltipDelay, TooltipStyle
Bit (10)
BitAnd, BitClear, BitGet, BitLength, BitNot, BitOr, BitSet, BitShiftLeft, BitShiftRight, BitXor
Code Evaluation (10)
Activate, Defer, EvaluationData, HoldAllComplete, HoldComplete, IgnoringInactive, Inactivate, Inactive, ReleaseHold, Unevaluated
External Session (10)
ExternalEvaluate, ExternalFunction, ExternalObject, ExternalSessionObject, ExternalSessions, ExternalValue, FindExternalEvaluators, RegisterExternalEvaluator, StartExternalSession, UnregisterExternalEvaluator
Initialization (10)
EvaluationEnvironment, InitializationObjects, InitializationValue, Initialize, LocalSubmit, ValuePreprocessingFunction, $Initialization, $InitializationContexts, $NoValue, $PreInitialization
Legend (10)
BarLegend, LegendFunction, LegendLabel, LegendLayout, LegendMargins, LegendMarkers, LegendMarkerSize, LineLegend, PointLegend, SwatchLegend
Number Field (10)
Extension, NumberFieldClassNumber, NumberFieldDiscriminant, NumberFieldFundamentalUnits, NumberFieldIntegralBasis, NumberFieldNormRepresentatives, NumberFieldRegulator, NumberFieldRootsOfUnity, NumberFieldSignature, ToNumberField
Optimization (10)
ConicOptimization, LinearFractionalOptimization, LinearOptimization, QuadraticOptimization, SecondOrderConeOptimization, SemidefiniteOptimization, VectorGreater, VectorGreaterEqual, VectorLess, VectorLessEqual
Task (10)
SessionSubmit, TaskAbort, TaskExecute, TaskObject, TaskRemove, TaskResume, Tasks, TaskSuspend, TaskWait, $CurrentTask
Ask (9)
Ask, AskAppend, AskConfirm, AskDisplay, AskedQ, AskedValue, AskFunction, AskState, AskTemplateDisplay
Code Flow (9)
Break, Continue, Goto, Label, LengthWhile, Once, Reap, Scan, Sow
Expression Testing (9)
Between, DuplicateFreeQ, EqualTo, GreaterEqualThan, GreaterThan, LessEqualThan, LessThan, Unequal, UnequalTo
Font (9)
FontColor, FontFamily, FontSize, FontSlant, FontSubstitutions, FontTracking, FontVariations, FontWeight, $FontFamilies
Fractal (9)
CantorStaircase, EscapeRadius, JuliaSetBoettcher, JuliaSetIterationCount, JuliaSetPoints, MandelbrotSetBoettcher, MandelbrotSetDistance, MandelbrotSetIterationCount, MandelbrotSetMemberQ
Grammar (9)
AllowLooseGrammar, AnyOrder, FixedOrder, GrammarApply, GrammarRules, GrammarToken, IgnoreDiacritics, NoWhitespace, OptionalElement
Persistent Object (9)
ExpirationDate, MergingFunction, PersistenceLocation, PersistenceTime, PersistentObject, PersistentObjects, PersistentValue, $PersistenceBase, $PersistencePath
Dataset (8)
Dataset, DeleteMissing, FailureAction, Missing, MissingBehavior, MissingQ, PartBehavior, Query
Expression Size (8)
ByteCount, Count, CountDistinct, CountDistinctBy, Counts, CountsBy, Entropy, LeafCount
Formatting (8)
DisableFormatting, Framed, Labeled, Legended, Multicolumn, Pane, Panel, TextGrid
Graph Distribution (8)
BarabasiAlbertGraphDistribution, BernoulliGraphDistribution, DegreeGraphDistribution, GraphPropertyDistribution, PriceGraphDistribution, SpatialGraphDistribution, UniformGraphDistribution, WattsStrogatzGraphDistribution
Page (8)
GroupPageBreakWithin, PageBreakAbove, PageBreakBelow, PageBreakWithin, PageFooters, PageHeaders, PageWidth, ShowPageBreaks
Web Session (8)
StartWebSession, WebElementObject, WebExecute, WebImage, WebSessionObject, WebSessions, WebWindowObject, $CurrentWebSession
Databin (7)
CopyDatabin, CreateDatabin, Databin, DatabinAdd, DatabinRemove, Databins, DatabinUpload
Interpolation (7)
FunctionInterpolation, InterpolatingFunction, InterpolatingPolynomial, Interpolation, InterpolationOrder, InterpolationPoints, ListInterpolation
Number (7)
Negative, NonNegative, NonPositive, NumericalOrder, NumericalSort, Positive, PossibleZeroQ
Quantity Variable (7)
ExcludedPhysicalQuantities, QuantityVariable, QuantityVariableCanonicalUnit, QuantityVariableDimensions, QuantityVariableIdentifier, QuantityVariablePhysicalQuantity, RequiredPhysicalQuantities
Series (7)
ComposeSeries, InverseSeries, O, PadeApproximant, Series, SeriesCoefficient, SeriesData
Symbol Value (7)
DownValues, FullDefinition, Information, OwnValues, SyntaxInformation, UpValues, ValueQ
Viewer (7)
FlipView, GalleryView, OpenerView, Pagination, PopupView, SlideView, TabView
Wolfram Alpha (7)
Asynchronous, ExcludePods, IncludePods, InputAssumptions, PodStates, PodWidth, WolframAlpha
Controller (6)
ControllerInformation, ControllerLinking, ControllerManipulate, ControllerMethod, ControllerPath, ControllerState
Local Object (6)
LocalObject, LocalObjects, LocalSymbol, $DefaultLocalBase, $LocalBase, $LocalSymbolBase
Numeric Constant (6)
Catalan, EulerGamma, Glaisher, GoldenAngle, GoldenRatio, Khinchin
Slider (6)
ColorSlider, IntervalSlider, MinIntervalSize, Slider, Slider2D, VerticalSlider
Test (6)
TestID, TestReport, TestReportObject, TestResultObject, VerificationTest, $TestFileName
Text String (6)
BooleanStrings, ElidedForms, ListFormat, MissingString, TextString, TimeFormat
Travel (6)
TravelDirections, TravelDirectionsData, TravelDistance, TravelDistanceList, TravelMethod, TravelTime
Continued Fraction (5)
ContinuedFraction, ContinuedFractionK, Convergents, FromContinuedFraction, QuadraticIrrationalQ
Infinity (5)
ComplexInfinity, DirectedInfinity, Indeterminate, Overflow, Underflow
Menu (5)
DefaultMenuStyle, MenuCommandKey, MenuSortingValue, MenuStyle, MenuView
Package (5)
BeginPackage, DeclarePackage, EndPackage, Needs, $Packages
Raw Expression (5)
Hash, NumericArray, NumericArrayQ, NumericArrayType, RawData
Set (5)
AnySubset, DisjointQ, IntersectingQ, SameTest, SubsetQ
Symbol Context (5)
Begin, Context, End, $Context, $ContextPath
Uncertainty (5)
Around, AroundReplace, ComputeUncertainty, MeanAround, VectorAround
Function (4)
ComposeList, Construct, Curry, InverseFunction
Real (4)
MantissaExponent, Rationalize, RealExponent, Reals
Rule (4)
Dispatch, ReplaceList, ReplaceRepeated, TwoWayRule
Scheduled Task (4)
ContinuousTask, IncludeGeneratorTasks, RestartInterval, ScheduledTask
Angle (3)
Asynchronous Task (3)
HandlerFunctions, HandlerFunctionsKeys, NotificationFunction
Complex (3)
Front End Execution (3)
FrontEndExecute, FrontEndToken, FrontEndTokenExecute
Interval (3)
IntervalIntersection, IntervalMemberQ, IntervalUnion
Special (3)
(3)
Autocomplete (2)
Autocomplete, AutocompletionFunction
(2)
Global Options (2)
Palette (2)
CreatePalette, PaletteNotebook
Rational (2)
MixedFractionParts, NumeratorDenominator
Module (1)
Option (1)
- Огромные встроенные базы данных и наборы алгоритмов: Entity (доступ к встроенным данным по самым разным областям: от фильмов до аэропортов и музыки), репозиторий данных (Wolfram Data Repository), репозиторий нейронных сетей (Wolfram Neural Net Repository), репозиторий готовых функций от пользователей (Wolfram Function Repository) и многое другое.
- Высокая степень интеграции компонент. Возможность использовать совершенно разные области знаний совместно, для решения одной сложной задачи. Вы можете почитать мои статьи и переводы, чтобы убедиться в этом.
- Сверх-быстрый цикл разработки: создание и внедрение сложного приложения реально сделать (часто) за день, для рельно очень сложных задач — за неделю. Посмотрите записи выступлений:
Разработка больших приложений в Mathematica | Леонид Шифрин | Конференция Wolfram Технологии 2014Роман Осипов | Решение срочных разноплановых задач с помощью Wolfram LanguageОсипов Роман | Разработка практических приложений на основе Wolfram технологий
- Простое создание облачных сервисов за считанные минуты — API, формы ввода, хранилища данных, сайты, интерактивы. Все это делается из любой системы, в которой работает Wolfram Language. Все объекты можно использовать как непосредственно, так и встраивая их в свой сайт. Подробнее можно посмотреть в видео:
Подробный обзор Wolfram Programming Cloud
(видео устарело, Wolfram Cloud сейчас намного круче, в чем вы можете убедиться лично — в скором времени я планирую рассказать о нем подробнее).
- Короткий и выразительный код. Код в Wolfram Language по сути самый короткий среди языков программирования — см. статью "Розеттский код: измеряем длину кода в огромном количестве языков программирования, изучаем близость языков между собой".
- Символьная парадигма, которая дает возможность решать задачи и разрабатывать код на высоком уровне абстракции. При этом язык Wolfram Language — что называется «Problem-oriented» — на нем можно программировать буквально «как думаешь», в парадигме, естественной для решаемой задачи. Подробнее см. запись
Символьные возможности языка Wolfram | Роман Осипов | Конференция Wolfram Технологии 2014
- Очень высокая степень интерактивности и визуализации результатов. Тут важно отметить, что можно налету создавать динамические объекты (
Manipulate
,Dynamic
,DynamicModule
,EventHandler
) или вычислять все непосредственно в документе, а сам документ при этом по сути представляет собой интерактивную книгу (эта статья, как я отмечал выше, тоже создана непосредственно в главном средстве разработки на языке Wolfram Language — системе Mathematica). - Поддержка современных парадигм программирования:
- процедурное программирование — как в Fortran, C, Matlab;
- функциональное программирование — как в Lisp, Haskell, Ocaml/F#, Scala, Clojure;
- логическое программирование — как в Prolog;
- программирование на массивах и структурных операциях — как в APL, Matlab;
- объектно-ориентированное программирование — доступно пока в виде отдельного расширения.
ClearAll[timing];
SetAttributes[timing, HoldAll];
timing[expr_]:=(ClearSystemCache[];
AbsoluteTiming[expr]);
ClearAll[compareTiming];
SetAttributes[compareTiming, HoldAll];
compareTiming[expr_List, OptionsPattern[{"OrderQ"->True}]]:=Module[{t, v, c1, c2, holdExpr, colorF, order, rescale},
colorF=Blend[{ColorSwatchGraphicsFontCapHeightRGBColor[19255, 167255, 107255]DeployedRGBColorValueSelectorClosingActionsSelectionDepartureParentChangedEvaluatorQuitPreemptive, ColorSwatchGraphicsFontCapHeightRGBColor[1, 101255, 47255]DeployedRGBColorValueSelectorClosingActionsSelectionDepartureParentChangedEvaluatorQuitPreemptive}, #]&;
holdExpr=ReleaseHold@Map[HoldForm, HoldForm@expr, {2}];
{t, v}=Transpose[timing[ReleaseHold[#]]&/@holdExpr];
order=If[OptionValue["OrderQ"], Reverse[Ordering[t]], Range[1, Length[expr]]];
t=t[[order]];
rescale=Evaluate[Rescale[#, MinMax[t], {0, 1}]]&;
v=v[[order]];
holdExpr=holdExpr[[order]];
If[Length[DeleteDuplicates[v]]>1, Echo["Возможно неодинаковый результат работы программ"]];
Framed[Grid[{{Style[#, Bold]&@"Сравнение скорости работы программ на языке Wolfram Language"},
{Grid[{{"Код", "Время, с"}}~Join~Table[{Style[holdExpr[[ind]], "Input", Background->Transparent], t[[ind]]}, {ind, 1, Length[expr]}], Alignment->{{Left, Center}, {Center, Center}}, Dividers->White, Background->{None, {LightGray}~Join~(colorF@*rescale/@t)}, ItemSize->{{30, 8}, Automatic}]},
If[Length[expr]==2, {Row[{"Код ускорен в ", Style[Round[Max[t]/Min[t], 1/100]//N, Bold], " раз"}]}, {Row[{"Максимальное ускорение кода ", Style[Round[Max[t]/Min[t], 1/100]//N, Bold], " раз"}]}],
{Graphics[
Table[{Opacity[0.6], colorF@*rescale@t[[ind]], Rectangle[{0, 1-ind-0.2(ind-1)}, {t[[ind]], 2-ind-0.2(ind-1)}]}, {ind, 1, Length[expr]}],
ImageSize->{500, Automatic}, PlotRange->{{0, Max[t]}, {1.2(1-Length[expr]), 1}}, AspectRatio->1/(9-Length[expr]/2),
Axes->False, Ticks->{Automatic, None}, FrameTicks->{All, None},
GridLines->{Automatic, None}, Background->White, PlotRangePadding->0, Frame->True, FrameLabel->{{None, None}, {"Время, с", None}}]}
},
ItemStyle->Directive[FontSize -> 14, FontFamily->"Open Sans Light"]], Background->White, FrameStyle->None]];
Как начать работу? Бесплатно)
Не многие знают, что можно начать работу с движком Wolfram и языком Wolfram Language совершенно бесплатно. Ниже перечислены ключевые варианты:
- Wolfram Cloud — бесплатный план (все функции доступны, ограничения только на время вычислений и запросы к базам данных).
- Wolfram Programming Lab — бесплатная лаборатория программирования Wolfram для изучения языка Wolfram Language. Подробнее см. перевод на Хабре.
- Wolfram Engine — бесплатная библиотека для разработчиков программного обеспечения. Подробнее см. перевод на Хабре.
- Raspberry Pi — система Mathematica поставляется бесплатно на каждой версии этого замечательного компьютера. Подробнее...
P.S.
На моем канале YouTube есть две важные рубрики: "КиЯ — Коротко и Ясно" (выходят ежедневно) и Вебинары (еженедельно). Подписывайтесь на канал, он будет полезен каждому, кто работает с языком Wolfram Language!
Для сотрудничества — пишите личное сообщение на Хабре или в мою группу ВКонтакте.
Регистрация на новые курсы. Готовый онлайн курс.
Автор: OsipovRoman