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の名前。
タイプNVARCHAR(ANY)
tranposeA
行列 A を転置するかどうかを指定する。
タイプ: BOOLEAN
aValue
係数aの値。
タイプ: DOUBLE
matrixB
入力行列Bの名前。
タイプNVARCHAR(ANY)
tranposeB
行列 B を転置するかどうかを指定する。
タイプ: BOOLEAN
bValue
係数bの値。
タイプ: DOUBLE
cValue
係数cの値。
タイプ: DOUBLE
matrixC
出力行列Cの名前。
タイプNVARCHAR(ANY)
戻り
常に真。

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)