挿入演算子演算の一方のオペランドが配列変数のときは、 他方のオペランドはエレメント、別の配列でもかまいません。
エレメントと配列が挿入演算子で結ばれている式の結果は、もとの配列と同じ境界を持つ配列になります。 この配列の各エレメントは、元の配列内の対応するエレメントと単一エレメントとの間で行われた演算の結果になります。 以下に例を示します。
If A is the array 5 10 8
12 11 3
then A*3 is the array 15 30 24
36 33 9
and 9 > A is the array of 1 0 1
bit strings of length 1 0 0 1
配列とエレメントの間で演算を行う場合、そのエレメントは、 その配列内のエレメントであってもかまいません。 次の代入ステートメントを考えてください。
A = A * A(1,2);
再度 A に上記の値を使えば、 新しく A に割り当てられる値は次のようになります。
50 100 800 1200 1100 300
つまり、A(1,2) の値が再び取り出されます。
挿入演算子演算の 2 つのオペランドが共に配列である場合は、この 2 つの配列の次元の数は同じでなければならず、しかも対応する次元ごとに下限と上限が同じでなければなりません。 演算結果は、元の 2 つの配列と同じ限界を持つ配列になります。演算は、元の 2 つの配列の対応するエレメント間で行われます。 以下に例を示します。
If A is the array 2 4 3
6 1 7
4 8 2
and if B is the array 1 5 7
8 3 4
6 3 1
then A+B is the array 3 9 10
14 4 11
10 11 3
and A*B is the array 2 20 21
48 3 28
24 24 2
and A>B is the array of 1 0 0
bit strings of length 1 0 0 1
0 1 1