Each triangular solve algorithm uses a sequence of evaluations of
*,
*=,
divide,
unary
+, binary
+,
+=,
unary
-, binary
-,
-=,
and
= operators
that would produce the result
specified by the algorithm's
Effects and
Remarks
when operating on elements of a field with noncommutative multiplication
. It is a precondition of the algorithm that
any addend,
any subtrahend,
any partial sum of addends in any order
(treating any difference as a sum with the second term negated),
any factor,
any partial product of factors respecting their order,
any numerator (first argument of
divide),
any denominator (second argument of
divide),
and any assignment
is a well-formed expression
.