# -выражения для векторов
PASCAL-XSC
Для векторов над арифметическими типами real, complex, interval и cinterval высокоточные выражения строятся аналогично:
|
Тип высокоточного выражения |
Синтаксис |
|
#-выражение типа rvector |
# * (rvector ТочноеВыражение) # < (rvector ТочноеВыражение) # > (rvector ТочноеВыражение) |
|
# -выражение типа ivector |
# # (rvector ТочноеВыражение) # # (ivector ТочноеВыражение) |
|
#-выражение типа cvector |
#* (cvector ТочноеВыражение) # < (cvector ТочноеВыражение) # > (cvector ТочноеВыражение) |
|
#-выражение типа civector |
# # (cvector ТочноеВыражение) # # (civector ТочноеВыражение) |
Точное выражение имеет вид
|± Слагаемое ЗнакОперации Слагаемое
где в качестве знаков операций допустимы только + или —.
Вот слагаемые, которые можно соединять знаками операций + и —
(здесь т,сг е {real, interval, complex, cinterval}):
|
Слагаемое |
Определение |
|
r vector-операнд т-операнд * cr vector-операнд т vector-операнд * сг-операнд т matrix-операнд * a vector-операнд (Точное выражение типа т vector) for i := n to m sum (точное выражение типа т vector) for i := n downto m sum (точное выражение типа т vector) |
Переменная, вызов функции Точное покомпонентное произведение двойной длины Точное покомпонентное произведение двойной длины Точное матрично-векторное произведение (с точным скалярным произведением для каждой компоненты) Точное выражение, заключенное в скобки for-оператор для суммирования, где i — integer-переменная, а п и m — integer-выражения for-оператор для суммирования, где i — integer-переменная, а п и m — integer-выражения |
Слагаемые не обязательно должны иметь один и тот же тип. В высокоточном выражении типа civector можно использовать слагаемые типов rvector, cvector или ivector в любом сочетании. Тип точного выражения определяется комбинацией типов его слагаемых. Список допустимых т- и сг-операндов приведен в разд. 2.4.4.4.
Пример 2.4.12.
При объявлении переменных
|
var а, b |
: real; |
M |
: rmatrix[1..10,1..10]; |
|
са |
: complex; |
cM |
: cmatrix[1..10,1..10]; |
|
V, W |
: rvector[1.. 10]; |
iM |
: imatrix[1..10,1..10]; |
|
CV |
: cvector[1.. 10]; |
ciM |
: cimatrix[1..10,1..10]; |
|
civ |
: civector[1.. 10]; |
синтаксически корректны следующие высокоточные выражения:
Высокоточное выражение
Тип результата rvector cvector ivector civector
#* (for i := 1 to 10 sum (M * v + a * M[*,i]))
# > (cv + v*b + a*cv + cM * w + cM * cv)
# # (v + a * v + iM * v)
# # (cv + M * v + ca * civ + ciM * cv)