'!TITLE "ProPseudoInverse.pcs"

Sub Main 
	
	Dim caoCtrl as Object
	Dim M1 as Object
	Dim M2 as Object
	Dim M3 as Object
	Dim vntRet as Variant

	caoCtrl = cao.AddController("eigen", "caoProv.Eigen.Eigen3", "", "")
	M1 = caoCtrl.AddVariable("ID=1", "3,2")
	M2 = caoCtrl.AddVariable("ID=2", "2,3")
	M3 = caoCtrl.AddVariable("ID=3", "3,2")

	' 初期値代入
	M1.Value = Array(1,1,1,-1,0,1)
	
	' M1 表示
	vntRet = M1.Value
	PrintDbg vntRet(0) & ", " & vntRet(1)
	PrintDbg vntRet(2) & ", " & vntRet(3)
	PrintDbg vntRet(4) & ", " & vntRet(5)

	' M1の逆行列をM2に代入
	caoCtrl.PseudoInverse M1.ID, M2.ID

	' M2表示
	vntRet = M2.Value
	PrintDbg vntRet(0) & ", " & vntRet(1) & ", " & vntRet(2)
	PrintDbg vntRet(3) & ", " & vntRet(4) & ", " & vntRet(5)

	PrintDbg "AA+A"
	caoCtrl.Product M1.ID, M2.ID, M1.ID, M3.ID
	' M3表示
	vntRet = M3.Value
	PrintDbg vntRet(0) & ", " & vntRet(1)
	PrintDbg vntRet(2) & ", " & vntRet(3)
	PrintDbg vntRet(4) & ", " & vntRet(5)
	
End Sub


