本文整理汇总了Golang中github.com/henrylee2cn/algorithm/matrix.FloatMatrixFromTable函数的典型用法代码示例。如果您正苦于以下问题:Golang FloatMatrixFromTable函数的具体用法?Golang FloatMatrixFromTable怎么用?Golang FloatMatrixFromTable使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了FloatMatrixFromTable函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: _TestRankSmall
func _TestRankSmall(t *testing.T) {
bM := 5
bN := 5
//bP := 5
Adata := [][]float64{
[]float64{1.0, 1.0, 1.0, 1.0, 1.0},
[]float64{2.0, 2.0, 2.0, 2.0, 2.0},
[]float64{3.0, 3.0, 3.0, 3.0, 3.0},
[]float64{4.0, 4.0, 4.0, 4.0, 4.0},
[]float64{5.0, 5.0, 5.0, 5.0, 5.0}}
A := matrix.FloatMatrixFromTable(Adata, matrix.RowOrder)
A0 := matrix.FloatMatrixFromTable(Adata, matrix.RowOrder)
X := matrix.FloatVector([]float64{1.0, 2.0, 3.0, 4.0, 5.0})
Y := matrix.FloatWithValue(bN, 1, 2.0)
Ar := A.FloatArray()
Xr := X.FloatArray()
Yr := Y.FloatArray()
blas.GerFloat(X, Y, A0, 1.0)
DRankMV(Ar, Xr, Yr, 1.0, A.LeadingIndex(), 1, 1, 0, bN, 0, bM, 4, 4)
ok := A0.AllClose(A)
t.Logf("A0 == A1: %v\n", ok)
if !ok {
t.Logf("blas ger:\n%v\n", A0)
t.Logf("A1: \n%v\n", A)
}
}
开发者ID:sguzwf,项目名称:algorithm,代码行数:30,代码来源:trank_test.go
示例2: TestTrsmUnblk
func TestTrsmUnblk(t *testing.T) {
//bN := 7
Udata3 := [][]float64{
[]float64{2.0, 2.0, 2.0},
[]float64{0.0, 3.0, 3.0},
[]float64{0.0, 0.0, 4.0}}
U3 := matrix.FloatMatrixFromTable(Udata3, matrix.RowOrder)
_ = U3
Ldata3 := [][]float64{
[]float64{1.0, 0.0, 0.0},
[]float64{1.0, 2.0, 0.0},
[]float64{1.0, 2.0, 3.0}}
L3 := matrix.FloatMatrixFromTable(Ldata3, matrix.RowOrder)
_ = L3
bN := 10
nP := 7
nb := 4
L := matrix.FloatNormalSymmetric(bN, matrix.Lower)
//t.Logf("-- TRSM-UPPER, TRANS, RIGHT, NON_UNIT --")
//trsmSolve(t, U3, UPPER|TRANSA|RIGHT, false, 2, 0)
//t.Logf("-- TRSM-UPPER, TRANS, RIGHT, UNIT --")
//trsmSolve(t, U3, UPPER|TRANSA|UNIT|RIGHT, false, 2, 0)
t.Logf("-- UNBLK TRSM-LOWER, TRANS, RIGHT, NON-UNIT --")
trsmSolve(t, L, LOWER|TRANSA|RIGHT, false, nP, 0)
t.Logf("-- BLK TRSM-LOWER, TRANS, RIGHT, NON-UNIT --")
trsmSolve(t, L, LOWER|TRANSA|RIGHT, false, nP, nb)
}
开发者ID:sguzwf,项目名称:algorithm,代码行数:32,代码来源:tsolve_test.go
示例3: _TestSyrk2Small
func _TestSyrk2Small(t *testing.T) {
//bN := 7
Udata3 := [][]float64{
[]float64{2.0, 2.0, 2.0},
[]float64{0.0, 3.0, 3.0},
[]float64{0.0, 0.0, 4.0}}
Udata := [][]float64{
[]float64{1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0},
[]float64{0.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0},
[]float64{0.0, 0.0, 3.0, 3.0, 3.0, 3.0, 3.0},
[]float64{0.0, 0.0, 0.0, 4.0, 4.0, 4.0, 4.0},
[]float64{0.0, 0.0, 0.0, 0.0, 5.0, 5.0, 5.0},
[]float64{0.0, 0.0, 0.0, 0.0, 0.0, 6.0, 6.0},
[]float64{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 7.0}}
U := matrix.FloatMatrixFromTable(Udata, matrix.RowOrder)
U3 := matrix.FloatMatrixFromTable(Udata3, matrix.RowOrder)
_ = U
_ = U3
Ldata3 := [][]float64{
[]float64{1.0, 0.0, 0.0},
[]float64{1.0, 2.0, 0.0},
[]float64{1.0, 2.0, 3.0}}
Ldata := [][]float64{
[]float64{1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
[]float64{1.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0},
[]float64{1.0, 2.0, 3.0, 0.0, 0.0, 0.0, 0.0},
[]float64{1.0, 2.0, 3.0, 4.0, 0.0, 0.0, 0.0},
[]float64{1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 0.0},
[]float64{1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 0.0},
[]float64{1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0}}
L := matrix.FloatMatrixFromTable(Ldata, matrix.RowOrder)
L3 := matrix.FloatMatrixFromTable(Ldata3, matrix.RowOrder)
_ = L
_ = L3
Adata := [][]float64{
[]float64{1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0},
[]float64{1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0}}
Bdata := [][]float64{
[]float64{7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0},
[]float64{7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0}}
_ = Bdata
A := matrix.FloatMatrixFromTable(Adata)
//B := matrix.FloatMatrixFromTable(Bdata);
B := matrix.FloatNormal(7, 2)
t.Logf("-- SYR2K UPPER --")
syrk2Test(t, U.Copy(), A, B, UPPER, 4, 2)
t.Logf("-- SYR2K LOWER --")
syrk2Test(t, L.Copy(), A, B, LOWER, 4, 2)
t.Logf("-- SYR2K UPPER, TRANSA --")
//t.Logf("A: \n%v\n", A.Transpose())
syrk2Test(t, U.Copy(), A.Transpose(), B.Transpose(), UPPER|TRANSA, 4, 2)
t.Logf("-- SYR2K LOWER, TRANS --")
syrk2Test(t, L.Copy(), A.Transpose(), B.Transpose(), LOWER|TRANSA, 4, 2)
}
开发者ID:sguzwf,项目名称:algorithm,代码行数:58,代码来源:trank_test.go
示例4: _TestBKpivot1
func _TestBKpivot1(t *testing.T) {
Ldata := [][]float64{
[]float64{1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
[]float64{1.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0},
[]float64{1.0, 2.0, 3.0, 0.0, 0.0, 0.0, 0.0},
[]float64{1.0, 2.0, 3.0, 4.0, 0.0, 0.0, 0.0},
[]float64{1.0, 5.0, 3.0, 4.0, 5.0, 0.0, 0.0},
[]float64{1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 0.0},
[]float64{1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0}}
Bdata := [][]float64{
[]float64{10.0, 20.0},
[]float64{10.0, 20.0},
[]float64{10.0, 20.0},
[]float64{10.0, 20.0},
[]float64{10.0, 20.0},
[]float64{10.0, 20.0},
[]float64{10.0, 20.0}}
A := matrix.FloatMatrixFromTable(Ldata, matrix.RowOrder)
X := matrix.FloatMatrixFromTable(Bdata, matrix.RowOrder)
N := A.Rows()
B := matrix.FloatZeros(N, 2)
MultSym(B, A, X, 1.0, 0.0, LOWER|LEFT)
t.Logf("initial B:\n%v\n", B)
//N := 8
//A := matrix.FloatUniformSymmetric(N)
nb := 0
W := matrix.FloatWithValue(A.Rows(), 5, 0.0)
ipiv := make([]int, N, N)
L, _ := DecomposeBK(A.Copy(), W, ipiv, LOWER, nb)
t.Logf("ipiv: %v\n", ipiv)
t.Logf("L:\n%v\n", L)
ipiv0 := make([]int, N, N)
nb = 4
L0, _ := DecomposeBK(A.Copy(), W, ipiv0, LOWER, nb)
t.Logf("ipiv: %v\n", ipiv0)
t.Logf("L:\n%v\n", L0)
B0 := B.Copy()
SolveBK(B0, L0, ipiv0, LOWER)
t.Logf("B0:\n%v\n", B0)
ipiv2 := make([]int32, N, N)
lapack.SytrfFloat(A, ipiv2, linalg.OptLower)
t.Logf("ipiv2: %v\n", ipiv2)
t.Logf("lapack A:\n%v\n", A)
lapack.Sytrs(A, B, ipiv2, linalg.OptLower)
t.Logf("lapack B:\n%v\n", B)
t.Logf("B == B0: %v\n", B.AllClose(B0))
}
开发者ID:sguzwf,项目名称:algorithm,代码行数:53,代码来源:ldlbkl_test.go
示例5: _TestBKpivot2n2U
func _TestBKpivot2n2U(t *testing.T) {
Ldata := [][]float64{
[]float64{1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0},
[]float64{1.0, 2.0, 2.0, 2.0, 5.0, 2.0, 2.0},
[]float64{1.0, 2.0, 3.0, 3.0, 3.0, 3.0, 3.0},
[]float64{1.0, 2.0, 3.0, 4.0, 4.0, 4.0, 10.0},
[]float64{1.0, 5.0, 3.0, 4.0, 5.0, 9.0, 5.0},
[]float64{1.0, 2.0, 3.0, 4.0, 9.0, 6.0, 6.0},
[]float64{1.0, 2.0, 3.0, 10.0, 5.0, 6.0, 7.0}}
Bdata := [][]float64{
[]float64{10.0, 20.0},
[]float64{10.0, 20.0},
[]float64{10.0, 20.0},
[]float64{10.0, 20.0},
[]float64{10.0, 20.0},
[]float64{10.0, 20.0},
[]float64{10.0, 20.0}}
A := matrix.FloatMatrixFromTable(Ldata, matrix.RowOrder)
X := matrix.FloatMatrixFromTable(Bdata, matrix.RowOrder)
N := A.Rows()
B := matrix.FloatZeros(N, 2)
MultSym(B, A, X, 1.0, 0.0, UPPER|LEFT)
//t.Logf("initial B:\n%v\n", B)
nb := 0
W := matrix.FloatWithValue(A.Rows(), 5, 0.0)
ipiv := make([]int, N, N)
L, _ := DecomposeBK(A.Copy(), W, ipiv, UPPER, nb)
t.Logf("ipiv: %v\n", ipiv)
t.Logf("L:\n%v\n", L)
//ipiv0 := make([]int, N, N)
//nb = 4
//L0, _ := DecomposeBK(A.Copy(), W, ipiv0, UPPER, nb)
//t.Logf("ipiv: %v\n", ipiv0)
//t.Logf("L:\n%v\n", L0)
//B0 := B.Copy()
//SolveBK(B0, L0, ipiv0, UPPER)
//t.Logf("B0:\n%v\n", B0)
ipiv2 := make([]int32, N, N)
lapack.SytrfFloat(A, ipiv2, linalg.OptUpper)
t.Logf("ipiv2: %v\n", ipiv2)
t.Logf("lapack A:\n%v\n", A)
//lapack.Sytrs(A, B, ipiv2, linalg.OptUpper)
//t.Logf("lapack B:\n%v\n", B)
//t.Logf("B == B0: %v\n", B.AllClose(B0))
}
开发者ID:sguzwf,项目名称:algorithm,代码行数:50,代码来源:ldlbku_test.go
示例6: _TestTrmmUnblkSmall
func _TestTrmmUnblkSmall(t *testing.T) {
U := matrix.FloatMatrixFromTable(upper7, matrix.RowOrder)
U3 := matrix.FloatMatrixFromTable(upper3, matrix.RowOrder)
_ = U
_ = U3
L := matrix.FloatMatrixFromTable(lower7, matrix.RowOrder)
L3 := matrix.FloatMatrixFromTable(lower3, matrix.RowOrder)
_ = L
t.Logf("-- TRMM-UPPER, NON-UNIT ---")
fail(t, trmmTest(t, U3, UPPER, 0))
t.Logf("-- TRMM-UPPER, UNIT ---")
fail(t, trmmTest(t, U3, UPPER|UNIT, 0))
t.Logf("-- TRMM-UPPER, NON-UNIT, TRANSA ---")
fail(t, trmmTest(t, U3, UPPER|TRANSA, 0))
t.Logf("-- TRMM-UPPER, UNIT, TRANSA ---")
fail(t, trmmTest(t, U3, UPPER|TRANSA|UNIT, 0))
t.Logf("-- TRMM-LOWER, NON-UNIT ---")
fail(t, trmmTest(t, L3, LOWER, 0))
t.Logf("-- TRMM-LOWER, UNIT ---")
fail(t, trmmTest(t, L3, LOWER|UNIT, 0))
t.Logf("-- TRMM-LOWER, NON-UNIT, TRANSA ---")
fail(t, trmmTest(t, L3, LOWER|TRANSA, 0))
t.Logf("-- TRMM-LOWER, UNIT, TRANSA ---")
fail(t, trmmTest(t, L3, LOWER|TRANSA|UNIT, 0))
t.Logf("-- TRMM-UPPER, NON-UNIT, RIGHT ---")
fail(t, trmmTest(t, U3, UPPER|RIGHT, 0))
t.Logf("-- TRMM-UPPER, UNIT, RIGHT ---")
fail(t, trmmTest(t, U3, UPPER|UNIT|RIGHT, 0))
t.Logf("-- TRMM-LOWER, NON-UNIT, RIGHT ---")
fail(t, trmmTest(t, L3, LOWER|RIGHT, 0))
t.Logf("-- TRMM-LOWER, UNIT, RIGHT ---")
fail(t, trmmTest(t, L3, LOWER|UNIT|RIGHT, 0))
t.Logf("-- TRMM-UPPER, NON-UNIT, RIGHT, TRANSA ---")
fail(t, trmmTest(t, U3, UPPER|RIGHT|TRANSA, 0))
t.Logf("-- TRMM-UPPER, UNIT, RIGHT, TRANSA ---")
fail(t, trmmTest(t, U3, UPPER|UNIT|RIGHT|TRANSA, 0))
t.Logf("-- TRMM-LOWER, NON-UNIT, RIGHT, TRANSA ---")
fail(t, trmmTest(t, L3, LOWER|RIGHT|TRANSA, 0))
t.Logf("-- TRMM-LOWER, UNIT, RIGHT, TRANSA ---")
fail(t, trmmTest(t, L3, LOWER|UNIT|RIGHT|TRANSA, 0))
}
开发者ID:sguzwf,项目名称:algorithm,代码行数:49,代码来源:ttrm_test.go
示例7: TestQRSmal
func TestQRSmal(t *testing.T) {
data := [][]float64{
[]float64{12.0, -51.0, 4.0},
[]float64{6.0, 167.0, -68.0},
[]float64{-4.0, 24.0, -41.0}}
A := matrix.FloatMatrixFromTable(data, matrix.RowOrder)
T := matrix.FloatZeros(A.Cols(), A.Cols())
T0 := T.Copy()
M := A.Rows()
//N := A.Cols()
Tau := matrix.FloatZeros(M, 1)
X, _ := DecomposeQR(A.Copy(), Tau, nil, 0)
t.Logf("A\n%v\n", A)
t.Logf("X\n%v\n", X)
t.Logf("Tau\n%v\n", Tau)
Tau0 := matrix.FloatZeros(M, 1)
lapack.Geqrf(A, Tau0)
t.Logf("lapack X\n%v\n", A)
t.Logf("lapack Tau\n%v\n", Tau0)
unblkQRBlockReflector(X, Tau, T)
t.Logf("T:\n%v\n", T)
V := TriLU(X.Copy())
lapack.LarftFloat(V, Tau, T0)
t.Logf("T0:\n%v\n", T0)
}
开发者ID:sguzwf,项目名称:algorithm,代码行数:31,代码来源:decomp_test.go
示例8: TestTrmvSmall
func TestTrmvSmall(t *testing.T) {
L := matrix.FloatMatrixFromTable(lower5, matrix.RowOrder)
U := L.Transpose()
nb := 0
t.Logf("-- TRMV, LOWER --")
trmvTest(t, L, LOWER, nb)
t.Logf("-- TRMV, UPPER --")
trmvTest(t, U, UPPER, nb)
t.Logf("-- TRMV, LOWER, UNIT --")
trmvTest(t, L, LOWER|UNIT, nb)
t.Logf("-- TRMV, UPPER, UNIT --")
trmvTest(t, U, UPPER|UNIT, nb)
t.Logf("-- TRMV, LOWER, TRANS --")
trmvTest(t, L, LOWER|TRANS, nb)
t.Logf("-- TRMV, UPPER, TRANS --")
trmvTest(t, U, UPPER|TRANS, nb)
t.Logf("-- TRMV, LOWER, TRANS, UNIT --")
trmvTest(t, L, LOWER|UNIT|TRANS, nb)
t.Logf("-- TRMV, UPPER, TRANS, UNIT --")
trmvTest(t, U, UPPER|UNIT|TRANS, nb)
}
开发者ID:sguzwf,项目名称:algorithm,代码行数:26,代码来源:ttrm_test.go
示例9: _TestSolveBlockedSmall
func _TestSolveBlockedSmall(t *testing.T) {
L := matrix.FloatMatrixFromTable(lower5, matrix.RowOrder)
N := L.Rows()
nb := 4
U := L.Transpose()
X0 := matrix.FloatWithValue(L.Rows(), 1, 1.0)
X1 := X0.Copy()
xsum := 0.0
for i := 0; i < N; i++ {
xsum += float64(i)
X0.Add(xsum, i)
X1.Add(xsum, -(i + 1))
}
t.Logf("-- SOLVE LOWER, NON-UNIT ---\n")
solveMVTest(t, L, X0.Copy(), LOWER, N, nb)
t.Logf("-- SOLVE UPPER, NON-UNIT ---\n")
solveMVTest(t, U, X1.Copy(), UPPER, N, nb)
t.Logf("-- SOLVE LOWER, UNIT ---\n")
solveMVTest(t, L, X0.Copy(), LOWER|UNIT, N, nb)
t.Logf("-- SOLVE UPPER, UNIT ---\n")
solveMVTest(t, U, X1.Copy(), UPPER|UNIT, N, nb)
}
开发者ID:sguzwf,项目名称:algorithm,代码行数:26,代码来源:tsolve_test.go
示例10: _TestLU3x3Piv
func _TestLU3x3Piv(t *testing.T) {
Adata2 := [][]float64{
[]float64{3.0, 2.0, 2.0},
[]float64{6.0, 4.0, 1.0},
[]float64{4.0, 6.0, 3.0},
}
A := matrix.FloatMatrixFromTable(Adata2, matrix.RowOrder)
piv := make([]int, A.Rows())
piv0 := make([]int32, A.Rows())
A0 := A.Copy()
t.Logf("start A\n%v\n", A)
DecomposeBlockSize(0)
DecomposeLU(A, piv, 0)
Ld := TriLU(A.Copy())
Ud := TriU(A.Copy())
t.Logf("A\n%v\n", A)
t.Logf("Ld:\n%v\n", Ld)
t.Logf("Ud:\n%v\n", Ud)
t.Logf("piv: %v\n", piv)
t.Logf("result:\n%v\n", matrix.Times(Ld, Ud))
//t.Logf("A == L*U: %v\n", A0.AllClose(matrix.Times(Ld, Ud)))
lapack.Getrf(A0, piv0)
t.Logf("lapack result: piv0 %v\n%v\n", piv0, A0)
t.Logf("A == A0: %v\n", A0.AllClose(A))
}
开发者ID:sguzwf,项目名称:algorithm,代码行数:25,代码来源:decomp_test.go
示例11: _TestViewUpdate
func _TestViewUpdate(t *testing.T) {
Adata2 := [][]float64{
[]float64{4.0, 2.0, 2.0},
[]float64{6.0, 4.0, 2.0},
[]float64{4.0, 6.0, 1.0},
}
A := matrix.FloatMatrixFromTable(Adata2, matrix.RowOrder)
N := A.Rows()
// simple LU decomposition without pivoting
var A11, a10, a01, a00 matrix.FloatMatrix
for k := 1; k < N; k++ {
a00.SubMatrixOf(A, k-1, k-1, 1, 1)
a01.SubMatrixOf(A, k-1, k, 1, A.Cols()-k)
a10.SubMatrixOf(A, k, k-1, A.Rows()-k, 1)
A11.SubMatrixOf(A, k, k)
//t.Logf("A11: %v a01: %v\n", A11, a01)
a10.Scale(1.0 / a00.Float())
MVRankUpdate(&A11, &a10, &a01, -1.0)
}
Ld := TriLU(A.Copy())
Ud := TriU(A)
t.Logf("Ld:\n%v\nUd:\n%v\n", Ld, Ud)
An := matrix.FloatZeros(N, N)
Mult(An, Ld, Ud, 1.0, 1.0, NOTRANS)
t.Logf("A == Ld*Ud: %v\n", An.AllClose(An))
}
开发者ID:sguzwf,项目名称:algorithm,代码行数:29,代码来源:simple_test.go
示例12: _TestMultSymmLowerSmall
func _TestMultSymmLowerSmall(t *testing.T) {
//bM := 5
bN := 7
bP := 7
Adata := [][]float64{
[]float64{1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
[]float64{1.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0},
[]float64{1.0, 2.0, 3.0, 0.0, 0.0, 0.0, 0.0},
[]float64{1.0, 2.0, 3.0, 4.0, 0.0, 0.0, 0.0},
[]float64{1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 0.0},
[]float64{1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 0.0},
[]float64{1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0}}
A := matrix.FloatMatrixFromTable(Adata, matrix.RowOrder)
B := matrix.FloatNormal(bN, bP)
C0 := matrix.FloatZeros(bN, bP)
C1 := matrix.FloatZeros(bN, bP)
Ar := A.FloatArray()
Br := B.FloatArray()
C1r := C1.FloatArray()
blas.SymmFloat(A, B, C0, 1.0, 1.0, linalg.OptLower, linalg.OptRight)
DMultSymm(C1r, Ar, Br, 1.0, 1.0, LOWER|RIGHT, bN, A.LeadingIndex(), bN,
bN, 0, bP, 0, bN, 2, 2, 2)
ok := C0.AllClose(C1)
t.Logf("C0 == C1: %v\n", ok)
if !ok {
t.Logf("A=\n%v\n", A)
t.Logf("blas: C=A*B\n%v\n", C0)
t.Logf("C1: C1 = A*X\n%v\n", C1)
}
}
开发者ID:sguzwf,项目名称:algorithm,代码行数:34,代码来源:tmult_test.go
示例13: _TestBKSolve
func _TestBKSolve(t *testing.T) {
Ldata := [][]float64{
[]float64{1.0, 2.0, 3.0, 4.0},
[]float64{2.0, 2.0, 3.0, 4.0},
[]float64{3.0, 3.0, 3.0, 4.0},
[]float64{4.0, 4.0, 4.0, 4.0}}
Xdata := [][]float64{
[]float64{1.0, 2.0},
[]float64{1.0, 2.0},
[]float64{1.0, 2.0},
[]float64{1.0, 2.0}}
A := matrix.FloatMatrixFromTable(Ldata, matrix.RowOrder)
X := matrix.FloatMatrixFromTable(Xdata, matrix.RowOrder)
N := A.Rows()
B := matrix.FloatZeros(N, 2)
Mult(B, A, X, 1.0, 0.0, NOTRANS)
S := matrix.FloatZeros(N, 2)
MultSym(S, A, X, 1.0, 0.0, LOWER|LEFT)
t.Logf("B:\n%v\n", B)
t.Logf("S:\n%v\n", S)
//N := 8
//A := matrix.FloatUniformSymmetric(N)
nb := 0
W := matrix.FloatWithValue(A.Rows(), 5, 0.0)
ipiv := make([]int, N, N)
L, _ := DecomposeBK(A.Copy(), W, ipiv, LOWER, nb)
t.Logf("ipiv: %v\n", ipiv)
t.Logf("L:\n%v\n", L)
B0 := B.Copy()
SolveBK(B0, L, ipiv, LOWER)
t.Logf("B0:\n%v\n", B0)
ipiv2 := make([]int32, N, N)
lapack.Sytrf(A, ipiv2, linalg.OptLower)
t.Logf("ipiv2: %v\n", ipiv2)
t.Logf("lapack A:\n%v\n", A)
lapack.Sytrs(A, B, ipiv2, linalg.OptLower)
t.Logf("lapack B:\n%v\n", B)
}
开发者ID:sguzwf,项目名称:algorithm,代码行数:42,代码来源:ldlbkl_test.go
示例14: _TestTrmmBlkSmall
func _TestTrmmBlkSmall(t *testing.T) {
//bN := 7
Udata := [][]float64{
[]float64{1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0},
[]float64{0.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0},
[]float64{0.0, 0.0, 3.0, 3.0, 3.0, 3.0, 3.0},
[]float64{0.0, 0.0, 0.0, 4.0, 4.0, 4.0, 4.0},
[]float64{0.0, 0.0, 0.0, 0.0, 5.0, 5.0, 5.0},
[]float64{0.0, 0.0, 0.0, 0.0, 0.0, 6.0, 6.0},
[]float64{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 7.0}}
U := matrix.FloatMatrixFromTable(Udata, matrix.RowOrder)
_ = U
Ldata := [][]float64{
[]float64{1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
[]float64{1.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0},
[]float64{1.0, 2.0, 3.0, 0.0, 0.0, 0.0, 0.0},
[]float64{1.0, 2.0, 3.0, 4.0, 0.0, 0.0, 0.0},
[]float64{1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 0.0},
[]float64{1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 0.0},
[]float64{1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0}}
L := matrix.FloatMatrixFromTable(Ldata, matrix.RowOrder)
_ = L
t.Logf("-- TRMM-UPPER, NON-UNIT ---")
fail(t, trmmTest(t, U, UPPER, 2))
t.Logf("-- TRMM-UPPER, NON-UNIT, TRANSA ---")
fail(t, trmmTest(t, U, UPPER|TRANSA, 2))
t.Logf("-- TRMM-LOWER, NON-UNIT ---")
fail(t, trmmTest(t, L, LOWER, 2))
t.Logf("-- TRMM-LOWER, NON-UNIT, TRANSA ---")
fail(t, trmmTest(t, L, LOWER|TRANSA, 2))
t.Logf("-- TRMM-UPPER, RIGHT, NON-UNIT ---")
fail(t, trmmTest(t, U, UPPER|RIGHT, 2))
t.Logf("-- TRMM-UPPER, RIGHT, NON-UNIT, TRANSA ---")
fail(t, trmmTest(t, U, UPPER|RIGHT|TRANSA, 2))
t.Logf("-- TRMM-LOWER, RIGHT, NON-UNIT ---")
fail(t, trmmTest(t, U, LOWER|RIGHT, 2))
t.Logf("-- TRMM-LOWER, RIGHT, NON-UNIT, TRANSA ---")
fail(t, trmmTest(t, U, LOWER|RIGHT|TRANSA, 2))
}
开发者ID:sguzwf,项目名称:algorithm,代码行数:41,代码来源:ttrm_test.go
示例15: _TestLU2x2NoPiv
func _TestLU2x2NoPiv(t *testing.T) {
Adata2 := [][]float64{
[]float64{4.0, 3.0},
[]float64{6.0, 3.0}}
A := matrix.FloatMatrixFromTable(Adata2, matrix.RowOrder)
DecomposeBlockSize(0)
DecomposeLUnoPiv(A, 0)
t.Logf("A\n%v\n", A)
Ld := TriLU(A.Copy())
Ud := TriU(A)
t.Logf("L*U\n%v\n", matrix.Times(Ld, Ud))
}
开发者ID:sguzwf,项目名称:algorithm,代码行数:13,代码来源:decomp_test.go
示例16: _TestCHOL3x3
func _TestCHOL3x3(t *testing.T) {
Ldata2 := [][]float64{
[]float64{3.0, 0.0, 0.0},
[]float64{6.0, 4.0, 0.0},
[]float64{4.0, 6.0, 3.0},
}
L := matrix.FloatMatrixFromTable(Ldata2, matrix.RowOrder)
A := matrix.Times(L, L.Transpose())
DecomposeBlockSize(0)
DecomposeCHOL(A, LOWER, 0)
Ld := TriL(A.Copy())
t.Logf("Ld:\n%v\n", Ld)
t.Logf("result L == Ld: %v\n", L.AllClose(Ld))
}
开发者ID:sguzwf,项目名称:algorithm,代码行数:14,代码来源:decomp_test.go
示例17: _TestBK2
func _TestBK2(t *testing.T) {
Bdata := [][]float64{
[]float64{10.0, 20.0},
[]float64{10.0, 20.0},
[]float64{10.0, 20.0},
[]float64{10.0, 20.0},
[]float64{10.0, 20.0},
[]float64{10.0, 20.0},
[]float64{10.0, 20.0}}
N := 7
A0 := matrix.FloatNormal(N, N)
A := matrix.FloatZeros(N, N)
// A is symmetric, posivite definite
Mult(A, A0, A0, 1.0, 1.0, TRANSB)
X := matrix.FloatMatrixFromTable(Bdata, matrix.RowOrder)
B := matrix.FloatZeros(N, 2)
MultSym(B, A, X, 1.0, 0.0, LOWER|LEFT)
t.Logf("initial B:\n%v\n", B)
nb := 0
W := matrix.FloatWithValue(A.Rows(), 5, 1.0)
A.SetAt(4, 1, A.GetAt(4, 1)+1.0)
A.SetAt(1, 4, A.GetAt(4, 1))
ipiv := make([]int, N, N)
L, _ := DecomposeBK(A.Copy(), W, ipiv, LOWER, nb)
t.Logf("ipiv: %v\n", ipiv)
t.Logf("L:\n%v\n", L)
ipiv0 := make([]int, N, N)
nb = 4
L0, _ := DecomposeBK(A.Copy(), W, ipiv0, LOWER, nb)
t.Logf("ipiv: %v\n", ipiv0)
t.Logf("L:\n%v\n", L0)
B0 := B.Copy()
SolveBK(B0, L0, ipiv0, LOWER)
t.Logf("B0:\n%v\n", B0)
ipiv2 := make([]int32, N, N)
lapack.Sytrf(A, ipiv2, linalg.OptLower)
t.Logf("ipiv2: %v\n", ipiv2)
t.Logf("lapack A:\n%v\n", A)
lapack.Sytrs(A, B, ipiv2, linalg.OptLower)
t.Logf("lapack B:\n%v\n", B)
t.Logf("B == B0: %v\n", B.AllClose(B0))
}
开发者ID:sguzwf,项目名称:algorithm,代码行数:49,代码来源:ldlbkl_test.go
示例18: TestAcent
func TestAcent(t *testing.T) {
// matrix string in row order presentation
Adata := [][]float64{
[]float64{-7.44e-01, 1.11e-01, 1.29e+00, 2.62e+00, -1.82e+00},
[]float64{4.59e-01, 7.06e-01, 3.16e-01, -1.06e-01, 7.80e-01},
[]float64{-2.95e-02, -2.22e-01, -2.07e-01, -9.11e-01, -3.92e-01},
[]float64{-7.75e-01, 1.03e-01, -1.22e+00, -5.74e-01, -3.32e-01},
[]float64{-1.80e+00, 1.24e+00, -2.61e+00, -9.31e-01, -6.38e-01}}
bdata := []float64{
8.38e-01, 9.92e-01, 9.56e-01, 6.14e-01, 6.56e-01,
3.57e-01, 6.36e-01, 5.08e-01, 8.81e-03, 7.08e-02}
// these are solution obtained from running cvxopt acent.py with above data
solData := []float64{-11.59728373909344512, -1.35196389161339936,
7.21894899350256303, -3.29159917142051528, 4.90454147385329176}
ntData := []float64{
1.5163484265903457, 1.2433928210771914, 1.0562922103520955, 0.8816246051011607,
0.7271128861543598, 0.42725003346248974, 0.0816777301914883, 0.0005458037072843131,
1.6259980735305693e-10}
b := matrix.FloatVector(bdata)
Al := matrix.FloatMatrixFromTable(Adata, matrix.RowOrder)
Au := matrix.Scale(Al, -1.0)
A := matrix.FloatZeros(2*Al.Rows(), Al.Cols())
A.SetSubMatrix(0, 0, Al)
A.SetSubMatrix(Al.Rows(), 0, Au)
x, nt, err := acent(A, b, 10)
if err != nil {
t.Logf("Acent error: %s", err)
t.Fail()
}
solref := matrix.FloatVector(solData)
ntref := matrix.FloatVector(ntData)
soldf := matrix.Minus(x, solref)
ntdf := matrix.Minus(matrix.FloatVector(nt), ntref)
solNrm := blas.Nrm2Float(soldf)
ntNrm := blas.Nrm2Float(ntdf)
t.Logf("x [diff=%.2e]:\n%v\n", solNrm, x)
t.Logf("nt [diff=%.2e]:\n%v\n", ntNrm, nt)
if solNrm > TOL {
t.Log("solution deviates too much from expected\n")
t.Fail()
}
}
开发者ID:sguzwf,项目名称:algorithm,代码行数:48,代码来源:acent_test.go
示例19: _TestLU3x3NoPiv
func _TestLU3x3NoPiv(t *testing.T) {
Adata2 := [][]float64{
[]float64{4.0, 2.0, 2.0},
[]float64{6.0, 4.0, 2.0},
[]float64{4.0, 6.0, 1.0},
}
A := matrix.FloatMatrixFromTable(Adata2, matrix.RowOrder)
A0 := A.Copy()
DecomposeBlockSize(0)
DecomposeLUnoPiv(A, 0)
t.Logf("A\n%v\n", A)
Ld := TriLU(A.Copy())
Ud := TriU(A.Copy())
t.Logf("A == L*U: %v\n", A0.AllClose(matrix.Times(Ld, Ud)))
}
开发者ID:sguzwf,项目名称:algorithm,代码行数:16,代码来源:decomp_test.go
示例20: TestGp
// The small GP of section 9.3 (Geometric programming).
func TestGp(t *testing.T) {
xref := []float64{1.06032641296944741, 1.75347359157296845, 2.44603683900611868}
aflr := 1000.0
awall := 100.0
alpha := 0.5
beta := 2.0
gamma := 0.5
delta := 2.0
fdata := [][]float64{
[]float64{-1.0, 1.0, 1.0, 0.0, -1.0, 1.0, 0.0, 0.0},
[]float64{-1.0, 1.0, 0.0, 1.0, 1.0, -1.0, 1.0, -1.0},
[]float64{-1.0, 0.0, 1.0, 1.0, 0.0, 0.0, -1.0, 1.0}}
gdata := []float64{1.0, 2.0 / awall, 2.0 / awall, 1.0 / aflr, alpha, 1.0 / beta, gamma, 1.0 / delta}
g := matrix.FloatNew(8, 1, gdata).Log()
F := matrix.FloatMatrixFromTable(fdata)
K := []int{1, 2, 1, 1, 1, 1, 1}
var solopts SolverOptions
solopts.MaxIter = 40
solopts.ShowProgress = false
solopts.KKTSolverName = "ldl"
sol, err := Gp(K, F, g, nil, nil, nil, nil, &solopts)
if sol != nil && sol.Status == Optimal {
x := sol.Result.At("x")[0]
r := matrix.Exp(x)
h := r.GetIndex(0)
w := r.GetIndex(1)
d := r.GetIndex(2)
t.Logf("x=\n%v\n", x.ToString("%.9f"))
t.Logf("h = %f, w = %f, d = %f.\n", h, w, d)
xe, _ := nrmError(matrix.FloatVector(xref), x)
if xe > TOL {
t.Logf("x differs [%.3e] from exepted too much.", xe)
t.Fail()
}
} else {
t.Logf("status: %v\n", err)
t.Fail()
}
}
开发者ID:sguzwf,项目名称:algorithm,代码行数:46,代码来源:gp_test.go
注:本文中的github.com/henrylee2cn/algorithm/matrix.FloatMatrixFromTable函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论