LINEAR_COMBO - 行列成分の線形結合.
この手続きは行列成分の線形結合を実装し、 matC:=aVal*matA^transposeA + bVal*matB^transposeB + cVal を計算する。 ここで、 matA と matB は入力行列、 matC は出力行列、 aVal, bVal, cVal は係数、 transposeA と transposeB は、演算中に matA と matB を転置するかどうかを示すブーリアン・パラメータである。
使用法
LINEAR_COMBINATIONストアドプロシージャの構文は以下の通りである:
- LINEAR_COMBINATION matrixA,transposeA,aValue,matrixB,transposeB,bValue,cValue,matrixC )
- パラメーター
- matrixA
- 入力行列Aの名前。
- tranposeA
- 行列 A を転置するかどうかを指定する。
- aValue
- 係数aの値。
- matrixB
- 入力行列Bの名前。
- tranposeB
- 行列 B を転置するかどうかを指定する。
- bValue
- 係数bの値。
- cValue
- 係数cの値。
- matrixC
- 出力行列Cの名前。
例
CALL nzm..create_ones_matrix('A', 4, 4);
CALL nzm..set_value('A', 1, 2, 2);
CALL nzm..set_value('A', 1, 3, 3);
CALL nzm..set_value('A', 1, 4, 4);
CALL nzm..create_identity_matrix('B', 4);
CALL nzm..set_value('B', 4, 1, 10);
CALL nzm..linear_combination('A', FALSE, 1.5, 'B', FALSE, 1, 1, 'AB');
CALL nzm..linear_combination('A', TRUE, 1.5, 'B', FALSE, 1, 1, 'AtB');
CALL nzm..linear_combination('A', FALSE, 1.5, 'B', TRUE, 1, 1, 'ABt');
CALL nzm..linear_combination('A', TRUE, 1.5, 'B', TRUE, 1, 1, 'AtBt');
CALL nzm..print('A');
CALL nzm..print('B');
CALL nzm..print('AB');
CALL nzm..print('AtB');
CALL nzm..print('ABt');
CALL nzm..print('AtBt');
CALL nzm..delete_matrix('A');
CALL nzm..delete_matrix('B');
CALL nzm..delete_matrix('AB');
CALL nzm..delete_matrix('AtB');
CALL nzm..delete_matrix('ABt');
CALL nzm..delete_matrix('AtBt');
CREATE_ONES_MATRIX
--------------------
t
(1 row)
SET_VALUE
-----------
t
(1 row)
SET_VALUE
-----------
t
(1 row)
SET_VALUE
-----------
t
(1 row)
CREATE_IDENTITY_MATRIX
------------------------
t
(1 row)
SET_VALUE
-----------
t
(1 row)
LINEAR_COMBINATION
--------------------
t
(1 row)
LINEAR_COMBINATION
--------------------
t
(1 row)
LINEAR_COMBINATION
--------------------
t
(1 row)
LINEAR_COMBINATION
--------------------
t
(1 row)
PRINT
-------------------------------------------------------------
-- matrix: A --
1, 2, 3, 4
1, 1, 1, 1
1, 1, 1, 1
1, 1, 1, 1
(1 row)
PRINT
--------------------------------------------------------------
-- matrix: B --
1, 0, 0, 0
0, 1, 0, 0
0, 0, 1, 0
10, 0, 0, 1
(1 row)
PRINT
---------------------------------------------------------------
-- matrix: AB--
3.5, 4,5. 5, 7
2.5, 3.5, 2.5, 2.5
2.5, 2.5, 3.5, 2.5
12.5, 2.5, 2.5, 3.5
(1 row)
PRINT
---------------------------------------------------------------
-- matrix: AtB --
3.5, 2.5, 2.5, 2.5
4, 3.5, 2.5, 2.5
5.5, 2.5, 3.5, 2.5
17, 2.5, 2.5, 3.5
(1 row)
PRINT
---------------------------------------------------------------
-- matrix: ABt --
3.5, 4, 5.5, 17
2.5, 3.5, 2.5, 2.5
2.5, 2.5, 3.5, 2.5
2.5, 2.5, 2.5, 3.5
(1 row)
PRINT
---------------------------------------------------------------
-- matrix: AtBt --
3.5, 2.5, 2.5, 12.5
4, 3.5, 2.5, 2.5
5.5, 2.5, 3.5, 2.5
7, 2.5, 2.5, 3.5
(1 row)
DELETE_MATRIX
---------------
t
(1 row)
DELETE_MATRIX
---------------
t
(1 row)
DELETE_MATRIX
---------------
t
(1 row)
DELETE_MATRIX
---------------
t
(1 row)
DELETE_MATRIX
---------------
t
(1 row)
DELETE_MATRIX
---------------
t
(1 row)