Cat::Set

Категория наборов комплексных чисел

Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.

Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразуют Notebook MuPAD в Live скрипты MATLAB.

Описание

Cat::Set представляет категорию подмножеств комплексных чисел.

Наборы этой категории позволяют относящиеся к теории множеств операции, а также pointwise арифметические операции.

Основная функция Cat::Set конкретный механизм перегрузки. Это обеспечивает n- операторы ary, которые могут обработать операнды от различных областей категории Cat::Set, а также смешанный вход, где некоторые операнды имеют типы, не принадлежащие Cat::Set. Следовательно, в методах Cat::Set, операнды произвольного типа позволены.

Существует три вида операторов: n- ary (ассоциативный и коммутативный), двоичный файл (не принятый, чтобы быть коммутативным) и унарным (отображение функции). Cat::Set обеспечивает общие методы для генерации этих видов операторов и использует их, чтобы задать методы по умолчанию, перегружающие общие относящиеся к теории множеств и арифметические функции.

По умолчанию любая операция наборов задана, но возвращается неоцененный, поскольку арифметическое или относящееся к теории множеств выражение не может быть упрощено. Каждая область типа Cat::Set должен обеспечить конкретные пазы и таблицы для того, чтобы достигнуть упрощений в определенных особых случаях.

Арифметические операции заданы pointwise. Это не ошибка, если некоторая операция не задана для всех элементов набора.

Cat::Set в основном используется областями наборов, возвращенных solve.

Категории

Cat::BaseCategory

Методы

развернуть все

Математические методы

commassop(operatorname)

Первые виды возвращенной процедуры ее операнды (который это может сделать из-за коммутативности). Те операнды, не принадлежащие области категории Cat::Set обработаны обычным механизмом перегрузки, т.е. пазом operatorname из одной из их областей. Из других несколько операндов, принадлежащих той же области, обработаны пазом "homog".operatorname из той области. Наконец, возвращенный метод пытается объединить каждую возможную пару операндов. Если они от той же области, "bin".operatorname называется для них. Следующее сделано, если операнды от различных областей: позвольте T1 и T2 будьте их типами; затем их "inhomog".operatorname пазы используются. Если такой паз существует в доменном T1, это должно содержать таблицу, индексированную возможными типами T2, и запись в том индексе должна быть процедурой, которая проводит операцию точно для двух аргументов, первое, являющееся T1, второе, являющееся T2. С другой стороны, если такой паз существует в доменном T2, это должно содержать таблицу, индексированную возможными типами T1, и запись в том индексе должна быть процедурой, которая проводит операцию точно для двух аргументов, первое, являющееся T2, второе, являющееся T1.

Паз "homog".operatorname, или запись таблицы в пазе "inhomog".operatorname, может возвратить FAIL для того, чтобы указать, что это не могло упростить свой вход; если они отсутствуют, это указывает, что упрощение обычно не возможно для входа этого типа. В этих случаях возвращенная процедура продолжает путем попытки объединить еще два из данных аргументов.

Паз "bin".operatorname обычно не будет существовать, за исключением случая, что нет никакого "homog".operatorname; обычно последний может также заботиться для случая точно двух операндов.

Целый процесс повторяется много раз, пока никакие новые упрощения не происходят, или только один операнд оставляют. Если больше упрощений не происходит, на неоцененный звонок оператора отвечают, аргументы, являющиеся всеми остающимися операндами, которые не могли быть объединены далее.

binop(operatorname)

Возвращенная процедура использует паз "bin".operatorname из его первого аргумента, если оба аргумента имеют тот же тип. В противном случае это использует паз "inhomogleft".operatorname из его первого аргумента; если это перестало работать, это использует паз "inhomogright".operatorname из его второго аргумента; каждый из этих пазов, если это существует, должен содержать таблицы, индексированные типом другого аргумента, такого что slot(T1, "inhomogleft".operatorname)[T2] и slot(T2, "inhomogright".operatorname)[T1] проведите операцию для объектов типа T1 и T2, в этом порядке.

Никакая коммутативность операции не принята.

Если пазы или записи таблицы не существуют или возвращают FAIL, на неоцененный звонок оператора отвечают.

homogassop(operatorname)

_union(S1, …)

_intersect(S1, …)

_plus(S1, …)

Сумма наборов вычисляется коммутативно-ассоциативным оператором, сгенерированным "commassop", использование пазов "homog_plus" и "inhomog_plus" из областей его операндов.

_mult(S1, …)

Пересечение множеств вычисляется коммутативно-ассоциативным оператором, сгенерированным "commassop", использование пазов "homog_mult" и "inhomog_mult из областей его операндов.

_minus(S1, S2)

_power(S1, S2)

Степень наборов вычисляется бинарным оператором, сгенерированным "binop", использование пазов "homog_power", "inhomogleft_power", и "inhomogright_power" из его операндов.

map(S, f)

Путем перегрузки этого метода в конкретной области изменяется поведение наборов каждый раз, когда специальная функция применяется к ним.