\cat::

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

Блокноты 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)

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