Mol(Math Object Library) fot .Net

The _Blas type exposes the following members.

コンストラクター

  名前説明
Public method_Blas

メソッド

  名前説明
Public methodDispose
インターフェース IDispose の実装(実際は Matrix や Vector で実装します)。 C++ Dll に割り当てられたメモリー資源を解放します。 メモリー資源は当然ながらガベージコレクションによって解放されますが、いつ解法されるかはわかりません。 以後、完全に使用しないと判明したオブジェクトは Dispose() を呼び出して積極的に資源を解法することをお勧めします。
(Inherited from _Mol.)
Public methodStatic memberLeMm(MatrixDenseGeneralComplex, MatrixSparseGeneralComplex, MatrixDenseGeneralComplex, _Mol..::..MATRIX_OPERATION, Complex, Complex)
c = alpha*op(a)*b + beta*c という形の演算を実行します。ここで alpha と beta はスカラ、a、b、と cは行列、tarnsa は行列 a に対する 演算前の操作を指定します(_Mol..::..MATRIX_OPERATION)。行列演算(掛け算)の操作として転置等が指定できますが実際に行列そのものが転置されるわけではありません。
Public methodStatic memberLeMm(MatrixDenseGeneralComplex, MatrixSparseHermite, MatrixDenseGeneralComplex, _Mol..::..MATRIX_OPERATION, Complex, Complex)
c = alpha*op(a)*b + beta*c という形の演算を実行します。ここで alpha と beta はスカラ、a、b、と cは行列、tarnsa は行列 a に対する 演算前の操作を指定します(_Mol..::..MATRIX_OPERATION)。行列演算(掛け算)の操作として転置等が指定できますが実際に行列そのものが転置されるわけではありません。
Public methodStatic memberLeMm(MatrixDenseGeneralComplex, MatrixSparseLowerTriangleComplex, MatrixDenseGeneralComplex, _Mol..::..MATRIX_OPERATION, Complex, Complex)
c = alpha*op(a)*b + beta*c という形の演算を実行します。ここで alpha と beta はスカラ、a、b、と cは行列、tarnsa は行列 a に対する 演算前の操作を指定します(_Mol..::..MATRIX_OPERATION)。行列演算(掛け算)の操作として転置等が指定できますが実際に行列そのものが転置されるわけではありません。
Public methodStatic memberLeMm(MatrixDenseGeneralComplex, MatrixSparseSymmetricComplex, MatrixDenseGeneralComplex, _Mol..::..MATRIX_OPERATION, Complex, Complex)
c = alpha*op(a)*b + beta*c という形の演算を実行します。ここで alpha と beta はスカラ、a、b、と cは行列、tarnsa は行列 a に対する 演算前の操作を指定します(_Mol..::..MATRIX_OPERATION)。行列演算(掛け算)の操作として転置等が指定できますが実際に行列そのものが転置されるわけではありません。
Public methodStatic memberLeMm(MatrixDenseGeneralComplex, MatrixSparseUpperTriangleComplex, MatrixDenseGeneralComplex, _Mol..::..MATRIX_OPERATION, Complex, Complex)
c = alpha*op(a)*b + beta*c という形の演算を実行します。ここで alpha と beta はスカラ、a、b、と cは行列、tarnsa は行列 a に対する 演算前の操作を指定します(_Mol..::..MATRIX_OPERATION)。行列演算(掛け算)の操作として転置等が指定できますが実際に行列そのものが転置されるわけではありません。
Public methodStatic memberLeMm(MatrixDenseGeneralDouble, MatrixSparseGeneralDouble, MatrixDenseGeneralDouble, _Mol..::..MATRIX_OPERATION, Double, Double)
c = alpha*op(a)*b + beta*c という形の演算を実行します。ここで alpha と beta はスカラ、a、b、と cは行列、tarnsa は行列 a に対する 演算前の操作を指定します(_Mol..::..MATRIX_OPERATION)。行列演算(掛け算)の操作として転置等が指定できますが実際に行列そのものが転置されるわけではありません。
Public methodStatic memberLeMm(MatrixDenseGeneralDouble, MatrixSparseLowerTriangleDouble, MatrixDenseGeneralDouble, _Mol..::..MATRIX_OPERATION, Double, Double)
c = alpha*op(a)*b + beta*c という形の演算を実行します。ここで alpha と beta はスカラ、a、b、と cは行列、tarnsa は行列 a に対する 演算前の操作を指定します(_Mol..::..MATRIX_OPERATION)。行列演算(掛け算)の操作として転置等が指定できますが実際に行列そのものが転置されるわけではありません。
Public methodStatic memberLeMm(MatrixDenseGeneralDouble, MatrixSparseSymmetricDouble, MatrixDenseGeneralDouble, _Mol..::..MATRIX_OPERATION, Double, Double)
c = alpha*op(a)*b + beta*c という形の演算を実行します。ここで alpha と beta はスカラ、a、b、と cは行列、tarnsa は行列 a に対する 演算前の操作を指定します(_Mol..::..MATRIX_OPERATION)。行列演算(掛け算)の操作として転置等が指定できますが実際に行列そのものが転置されるわけではありません。
Public methodStatic memberLeMm(MatrixDenseGeneralDouble, MatrixSparseUpperTriangleDouble, MatrixDenseGeneralDouble, _Mol..::..MATRIX_OPERATION, Double, Double)
c = alpha*op(a)*b + beta*c という形の演算を実行します。ここで alpha と beta はスカラ、a、b、と cは行列、tarnsa は行列 a に対する 演算前の操作を指定します(_Mol..::..MATRIX_OPERATION)。行列演算(掛け算)の操作として転置等が指定できますが実際に行列そのものが転置されるわけではありません。
Public methodStatic memberLeMm(MatrixDenseGeneralComplex, MatrixDenseGeneralComplex, MatrixDenseGeneralComplex, _Mol..::..MATRIX_OPERATION, _Mol..::..MATRIX_OPERATION, Complex, Complex)
c = alpha*op(a)*op(b) + beta*c という形の演算を実行します。ここで alpha と beta はスカラ、a、b、と cは行列、tarnsa は行列 a に対する 演算前の操作、transb は行列 b に対する演算前の操作を指定します(_Mol..::..MATRIX_OPERATION)。行列演算(掛け算)の操作として転置等が指定できますが実際に行列そのものが転置されるわけではありません。
Public methodStatic memberLeMm(MatrixDenseGeneralDouble, MatrixDenseGeneralDouble, MatrixDenseGeneralDouble, _Mol..::..MATRIX_OPERATION, _Mol..::..MATRIX_OPERATION, Double, Double)
c = alpha*op(a)*op(b) + beta*c という形の演算を実行します。ここで alpha と beta はスカラ、a、b、と cは行列、tarnsa は行列 a に対する 演算前の操作、transb は行列 b に対する演算前の操作を指定します(_Mol..::..MATRIX_OPERATION)。行列演算(掛け算)の操作として転置等が指定できますが実際に行列そのものが転置されるわけではありません。
Public methodStatic memberLeMv(VectorDenseComplex, MatrixDenseHermite, VectorDenseComplex, Complex, Complex)
y = alpha*A*x + beta*y という形の計算を実行します。ここで A は密エルミート行列、 x と y はベクトル、alpha と beta は Complex の定数です。 
Public methodStatic memberLeMv(VectorDenseDouble, MatrixDenseSymmetricDouble, VectorDenseDouble, Double, Double)
y = alpha*A*x + beta*y という形の計算を実行します。ここで A は密対称行列、 x と y はベクトル、alpha と beta は double の定数です。 
Public methodStatic memberLeMv(VectorDenseDouble, MatrixSparseSymmetricDouble, VectorDenseDouble, Double, Double)
y = alpha*A*x + beta*y という形の計算を実行します。ここで A は疎な対称行列、 x と y はベクトル、alpha と beta は double の定数です。
V1.0.0.0.3 で引数が変更されました。
Public methodStatic memberLeMv(VectorDenseComplex, MatrixDenseBandComplex, VectorDenseComplex, _Mol..::..MATRIX_OPERATION, Complex, Complex)
y = alpha*op(A)*x + beta*y という形の計算を実行します。ここで A は一般帯行列、 x と y はベクトル、alpha と beta は Complex の定数です。 
Public methodStatic memberLeMv(VectorDenseComplex, MatrixDenseGeneralComplex, VectorDenseComplex, _Mol..::..MATRIX_OPERATION, Complex, Complex)
y = alpha*op(A)*x + beta*y という形の計算を実行します。ここで A は一般密行列、 x と y はベクトル、alpha と beta は Complex の定数です。 
Public methodStatic memberLeMv(VectorDenseComplex, MatrixSparseGeneralComplex, VectorDenseComplex, _Mol..::..MATRIX_OPERATION, Complex, Complex)
y = alpha*op(A)*x + beta*y という形の計算を実行します。ここで A は疎な一般行列、 x と y はベクトル、alpha と beta は Complex の定数です。 
Public methodStatic memberLeMv(VectorDenseComplex, MatrixSparseHermite, VectorDenseComplex, _Mol..::..MATRIX_OPERATION, Complex, Complex)
y = alpha*op(A)*x + beta*y という形の計算を実行します。ここで A は疎なエルミート行列、 x と y はベクトル、alpha と beta は Complex の定数です。 
Public methodStatic memberLeMv(VectorDenseComplex, MatrixSparseLowerTriangleComplex, VectorDenseComplex, _Mol..::..MATRIX_OPERATION, Complex, Complex)
y = alpha*op(A)*x + beta*y という形の計算を実行します。ここで A は疎な下三角行列、 x と y はベクトル、alpha と beta は Complex の定数です。 
Public methodStatic memberLeMv(VectorDenseComplex, MatrixSparseSymmetricComplex, VectorDenseComplex, _Mol..::..MATRIX_OPERATION, Complex, Complex)
y = alpha*op(A)*x + beta*y という形の計算を実行します。ここで A は疎な対称行列、 x と y はベクトル、alpha と beta は Complex の定数です。 
Public methodStatic memberLeMv(VectorDenseComplex, MatrixSparseUpperTriangleComplex, VectorDenseComplex, _Mol..::..MATRIX_OPERATION, Complex, Complex)
y = alpha*op(A)*x + beta*y という形の計算を実行します。ここで A は疎な上三角行列、 x と y はベクトル、alpha と beta は Complex の定数です。 
Public methodStatic memberLeMv(VectorDenseDouble, MatrixDenseBandDouble, VectorDenseDouble, _Mol..::..MATRIX_OPERATION, Double, Double)
y = alpha*op(A)*x + beta*y という形の計算を実行します。ここで A は一般帯行列、 x と y はベクトル、alpha と beta は double の定数です。 
Public methodStatic memberLeMv(VectorDenseDouble, MatrixDenseGeneralDouble, VectorDenseDouble, _Mol..::..MATRIX_OPERATION, Double, Double)
y = alpha*op(A)*x + beta*y という形の計算を実行します。ここで A は一般密行列、 x と y はベクトル、alpha と beta は double の定数です。 
Public methodStatic memberLeMv(VectorDenseDouble, MatrixSparseGeneralDouble, VectorDenseDouble, _Mol..::..MATRIX_OPERATION, Double, Double)
y = alpha*op(A)*x + beta*y という形の計算を実行します。ここで A は疎な一般行列、 x と y はベクトル、alpha と beta は double の定数です。 
Public methodStatic memberLeMv(VectorDenseDouble, MatrixSparseLowerTriangleDouble, VectorDenseDouble, _Mol..::..MATRIX_OPERATION, Double, Double)
y = alpha*op(A)*x + beta*y という形の計算を実行します。ここで A は疎な下三角行列、 x と y はベクトル、alpha と beta は double の定数です。 
Public methodStatic memberLeMv(VectorDenseDouble, MatrixSparseUpperTriangleDouble, VectorDenseDouble, _Mol..::..MATRIX_OPERATION, Double, Double)
y = alpha*op(A)*x + beta*y という形の計算を実行します。ここで A は疎な上三角行列、 x と y はベクトル、alpha と beta は double の定数です。 
Public methodStatic memberLeMvv(MatrixDenseHermite, Double, VectorDenseComplex)
A = A + alpha*x*x' という計算を実行します。 ここで A は任意の密なエルミート行列、 x は複素数ベクトル、 そして alpha は実数です。 x' は列ベクトルの転置を意味するので x*x' の結果は(Aと同じサイズの)行列になります。
Public methodStatic memberLeMvv(MatrixDenseSymmetricDouble, Double, VectorDenseDouble)
A = A + alpha*x*x' という計算を実行します。 ここで A は任意の密な実数対称行列、 x は実数ベクトル、 そして alpha は実数です。 x' は列ベクトルの転置を意味するので x*x' の結果は(Aと同じサイズの)行列になります。
Public methodStatic memberLeMvv(MatrixDenseGeneralDouble, Double, VectorDenseDouble, VectorDenseDouble)
A = A + alpha*x*y' という計算を実行します。 ここで A は任意の密な一般実数行列、 x と y は実数ベクトル、 そして alpha は実数です。 さらに y' は列ベクトルの転置を意味するので x*y' の結果は(Aと同じサイズの)行列になります。
Public methodStatic memberLeMvv(MatrixDenseHermite, Complex, VectorDenseComplex, VectorDenseComplex)
A = A + alpha*x*y* + alpha**y*x* という計算を実行します。 ここで A は任意の密なエルミート行列、 x と y は複素数ベクトル、 そして alpha は複素数です。 さらに y* は列ベクトルの複素共役転置を意味するので x*y* の結果は(Aと同じサイズの)行列になります。
Public methodStatic memberLeMvv(MatrixDenseSymmetricDouble, Double, VectorDenseDouble, VectorDenseDouble)
A = A + alpha*x*y' + alpha*y*x' という計算を実行します。 ここで A は任意の密な実数対称行列、 x と y は実数ベクトル、 そして alpha は実数です。 さらに y' は列ベクトルの転置を意味するので x*y' の結果は(Aと同じサイズの)行列になります。
Public methodStatic memberLeMvv(MatrixDenseGeneralComplex, Complex, VectorDenseComplex, VectorDenseComplex, Boolean)
A = A + alpha*x*y' という計算を実行します。 ここで A は任意の密な一般複素数行列、 x と y は複素数ベクトル、 そして alpha は実数です。 さらに y' は列ベクトルの転置を意味するので x*y' の結果は(Aと同じサイズの)行列になります。
Public methodStatic memberMv(VectorDenseComplex, MatrixDenseLowerTriangleComplex, _Mol..::..MATRIX_OPERATION)
y = op(A)*y という形の行列とベクトルの掛け算を実行します。ここで A は密下三角行列、 y はベクトルです。 
Public methodStatic memberMv(VectorDenseComplex, MatrixDenseUpperTriangleComplex, _Mol..::..MATRIX_OPERATION)
y = op(A)*y という形の行列とベクトルの掛け算を実行します。ここで A は密上三角行列、 y はベクトルです。 
Public methodStatic memberMv(VectorDenseComplex, MatrixSparseSymmetricComplex, VectorDenseComplex)
y = A*x という形の行列とベクトルの掛け算を実行します。ここで A は疎な対称行列、x と y はベクトルです。 
Public methodStatic memberMv(VectorDenseDouble, MatrixDenseLowerTriangleDouble, _Mol..::..MATRIX_OPERATION)
y = A*y という形の行列とベクトルの掛け算を実行します。ここで A は密下三角行列、 y はベクトルです。 
Public methodStatic memberMv(VectorDenseDouble, MatrixDenseUpperTriangleDouble, _Mol..::..MATRIX_OPERATION)
y = op(A)*y という形の行列とベクトルの掛け算を実行します。ここで A は密上三角行列、 y はベクトルです。 
Public methodStatic memberMv(VectorDenseDouble, MatrixSparseSymmetricDouble, VectorDenseDouble)
y = A*x という形の行列とベクトルの掛け算を実行します。ここで A は疎な対称行列、x と y はベクトルです。 
Public methodStatic memberMv(VectorDenseComplex, MatrixSparseGeneralComplex, VectorDenseComplex, _Mol..::..MATRIX_OPERATION)
y = op(A)*x という形の行列とベクトルの掛け算を実行します。ここで A は疎な一般行列(ただし正方行列のみ可)、x と y はベクトルです。 
Public methodStatic memberMv(VectorDenseDouble, MatrixSparseGeneralDouble, VectorDenseDouble, _Mol..::..MATRIX_OPERATION)
y = op(A)*x という形の行列とベクトルの掛け算を実行します。ここで A は疎な一般行列(ただし正方行列のみ可)、x と y はベクトルです。 

フィールド

  名前説明
Public fieldTag
ユーザが自由に設定・使用できるオブジェクトです。 Mol が内部で参照することはありません。
(Inherited from _Mol.)

プロパティ

  名前説明
Public propertyMolHandle
Mol.C++.dll(ネイティブDLL)と Mol.Net.Dll(.Net 用マネージドDLL)間の情報を管理するハンドル。 NativeDll クラスでユーザ作成のネイティブDLLを作成する場合等に利用できます。
(Inherited from _Mol.)
Public propertyMolType
Molオブジェクトの属性(_Mol..::..MOL_TYPE)。
(Inherited from _Mol.)
Public propertyUserType
Molオブジェクトの追加属性(_Mol..::..USER_TYPE)。 例えば一般行列でも要素が対称なら、その属性を積極的にセットすることでソルバーは最適な手法を選択することができます。 当然ながら、間違った設定は間違った値や計算不能な状態に陥りますので注意して設定してください。
(Inherited from _Mol.)

参照