Перш ніж буде заданий будь-який математичний об'єкт, число, функція або символ, має бути ясно визначено простір, у якому будуть визначатися об'єкти. У цьому розділі описуються методи завдання оточення. Переміщення з деякого оточення до поточного, як правило, повинно виконуватися явно за допомогою функції toNewRing. У деяких випадках таке перетворення до поточного оточення відбувається автоматично.
Для вибору оточення задається алгебраїчне місце змінних. Воно визначається іменами змінних та числовими просторами, в яких ці змінні набувають значення. Порядок змінних у списку змінних визначає лінійний порядок цих змінних. Зліва направо розташовуються змінні, упорядковані за старшинством від молодших до старших.
За умовчанням визначено простір R64[x,y,z,t] чотирьох змінних, наймолодша — x, найстарша — t.
У будь-який момент користувач може змінити оточення, задавши новий простір алгебри змінних за допомогою команди установки <<SPACE=>>. Наприклад, задач обчислювальної математики може бути достатньо простору типу R64[x] або Q[x]. Команда установки: <<SPACE=R64[x];>> або <<SPACE=Q[x];>>, відповідно.
Якщо ім'я змінної починається з символу ∖ і великої літери (верхній регістр), то така змінна позначає елемент алгебри, у якої операція множення некомутативна, для решти змінних операція множення комутативна.
Визначено такі числові множини:
Z — безліч цілих чисел Z,
Zp — кінцеве поле з p=MOD елементів Z/pZ, MOD — постійна,
Zp32 — кінцеве поле з p=MOD32 елементів Z/pZ, MOD32 менше 231,
Z64 — кільце цілих чисел z таких, що −263⩽z<263,
Q — безліч раціональних чисел, R — безліч чисел з плаваючою точкою для зберігання наближених дійсних чисел з довільною мантисою,
R64 — безліч чисел з плаваючою точкою для зберігання наближених дійсних чисел з подвійною точністю (зі стандартною 52-розрядною мантисою та окремим 11-розрядним полем для зберігання порядку), R128 — стандартні 64-бітові числа з плаваючою точкою для зберігання наближених дійсних чисел зі стандартною 52-розрядною мантисою та окремим 64-розрядним полем для зберігання порядку,
C — комплексний клас, утворений із класу R,
C64 — комплексний клас, утворений із класу R64,
C128 — комплексний клас, утворений із класу R128,
CZ — комплексний клас, утворений із класу Z,
CZp — комплексний клас, утворений із класу Zp,
CZp32 — комплексний клас, утворений із класу Zp32,
CZ64 — комплексний клас, утворений із класу Z64,
CQ — комплексний клас, утворений із класу Q.
Приклади простих поліноміальних кілець:
SPACE = Z[x, y, z];
SPACE = R64 [u, v];
SPACE = C[x].
Дозволяється встановлювати алгебраїчні простори з декількох числових множин, наприклад, простір <<C[z]R[x, y]Z[n, m]>> дозволяє працювати з п'ятьма іменами змінних, визначених у множинах C, R і Z відповідно. Перша множина вважається основною і до неї будуть наводиться, при необхідності, решта змінних. У разі це C.
Його можна розглядати як кільце поліномів п'яти змінних над C, при цьому воно має додаткові властивостями. Якщо поліном не містить змінної z, це поліном з коефіцієнтами з R. Якщо поліном не містить змінних z, x, y, це поліном з коефіцієнтами з Z.
Приклади:
SPACE=Z[x, y]Z[u];
SPACE = R64 [u, v] Z [a, b];
SPACE=C[x]R[y, z];
Кільце <<Z[x, y, z]Z[u, v, w]>>, в якому шість змінних розділені на дві групи, можна використовувати для завдань, у яких будуються поліноми, у яких коефіцієнти є поліномами чи функціями інших змінних. Наприклад, характеристичний поліном для матриці над кільцем Z[x,y,z] буде отриманий як поліном з невідомою u, коефіцієнти якого лежать у кільці Z[x,y,z].
%
%Групову алгебру позначає символ G. %% простір, у якому діє група.
%Приклади вільних групових алгебр:
%SPACE=Z[x, y]G[U, V]; (утворюють U, V),
%SPACE=R64[u, v]G[A, B]; (утворюють A, B),
%SPACE=C[]G[X, Y, Z, T]; (Утворюють X, Y, Z, T).
%Кожен елемент алгебри є сумою термів з коефіцієнтами, що є функціями. %Наприклад, <<R64[x, y]G[X, Y, Z]>> — це вільна групова алгебра з трьома некомутативними %утворюючими X, Y, Z над функціями % R64[x,y]. Тоді, наприклад, % A=(t2+1)X+sin(t)Y+3X2y3+(t2+1)XY3X2Y−2x2 — - Елемент такої алгебри.
Крім класичних числових алгебр з операціями <<+,~-,~*>> та операцією <</>> для полів, будуть доступні користувачеві та ідемпотентні алгебри. Для числової множини R64, можна буде використовувати алгебри R64MaxPlus, R64MinPlus, R64MaxMin, R64MinMax, R64MaxMult, R64MinMult. Для числової множини R, можна буде використовувати алгебри RMaxPlus, RMinPlus, RMaxMin, R64MinMax, RMaxMult, RMinMult. Для числової множини Z, можна буде використовувати алгебри ZMaxPlus, ZMinPlus, ZMaxMin, ZMinMax, ZMaxMult, ZMinMult.
Можна встановити або замінити такі постійні.
FLOATPOS — кількість десяткових знаків після коми, які виводяться на друк. За промовчанням приймається значення 2.
MachineEpsilonR — машинний епсілон для чисел типу R. За замовчуванням приймається значення 10−29. Число, модуль якого менше 10−29, вважається машинним нулем. Для встановлення нового значення 10−30 потрібно ввести команду <<MachineEpsilonR64=30>>.
MachineEpsilonR64 — машинний епсілон для чисел типу R64. За замовчуванням приймається 2−36. Число, модуль якого менше 2−36, вважається машинним нулем. Зазначимо, що числа R64 має 52 розряди в мантисі, Для встановлення нового значення 2−48 потрібно ввести команду <<MachineEpsilonR64=48>>.
Постійна MachineEpsilonR (і MachineEpsilonR64) використовується при факторизації поліномів з коефіцієнтами типу R (або R64). Кожен коефіцієнт такого полінома буде попередньо ділитися на число MachineEpsilonR (або MachineEpsilonR64) і округляється до цілого значення.
ACCURACY визначає кількість точних десяткових позицій після коми для чисел типу R і C операціях множення та поділу. За промовчанням ACCURACY має значення MachineEpsilonR∗10−5. Якщо n<m, то команда <<MachineEpsilonR=n/m>> встановить одночасно MachineEpsilonR=10−n та ACCURACY=10−m.
MOD32 — модуль для простого поля, що не перевищує 231 (за замовчуванням приймається значення 268435399). Просте число MOD32 - характеристика кінцевого поля. Константа MOD32 використовується в тому випадку, коли обчислення відбуваються в кінцевому полі Zp32 і вона повинна бути меншою за число 231.
MOD — модуль типу Z для простого поля (за замовчуванням приймається значення 268435399). Просте число MOD ~ — це характеристика кінцевого поля, але на відміну від MOD32 у нього немає обмеження на абсолютне значення. Константа MOD використовується в тому випадку, коли обчислення відбуваються в кінцевому полі Zp.
RADIAN може набувати значень 1 або 0. Якщо RADIAN = 1, то кути вимірюються в радіанах, інакше — в градусах. За промовчанням RADIAN=1.
STEPBYSTEP може приймати значення 1 або 0. Якщо STEPBYSTEP = 1, виводитимуться проміжні результати обчислень. Типово STEPBYSTEP = 0.
EXPAND може приймати значення 1 або 0. Якщо EXPAND = 1, то у вхідному виразі будуть розкриватися всі дужки. За промовчанням EXPAND = 1.
SUBSTITUTION може набувати значення 1 або 0. Якщо SUBSTITUTION = 1, то у вхідному виразі будуть підставлятися замість імен виразів їх значення, якщо вони були визначені раніше. Типово SUBSTITUTION = 1.