本文整理汇总了Golang中Matrix.Matrix.GetReferenceRow方法的典型用法代码示例。如果您正苦于以下问题:Golang Matrix.GetReferenceRow方法的具体用法?Golang Matrix.GetReferenceRow怎么用?Golang Matrix.GetReferenceRow使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Matrix.Matrix
的用法示例。
在下文中一共展示了Matrix.GetReferenceRow方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: FFT_aux
func FFT_aux(this, xr, RowTemp *Matrix.Matrix, N, skip int, tf *[]complex128) {
if N == 1 {
xr.SetRow(1, this.GetReferenceRow(1))
return
}
FFT_aux(this, xr, RowTemp, N/2, skip*2, tf)
FFT_aux(this.MatrixWithoutFirstRows(skip), xr.MatrixWithoutFirstRows(N/2), RowTemp, N/2, skip*2, tf)
for k := 0; k < N/2; k++ {
xr.ScalarRowIntoRowMatrix(RowTemp, k+1+N/2, (*tf)[k*skip])
sr, rr, _ := Matrix.Sum_Sustract(xr.GetReferenceRow(k+1), RowTemp)
xr.SetRow(k+1, sr)
xr.SetRow(k+1+N/2, rr)
}
}
示例2: FFT_ct2
func FFT_ct2(this *Matrix.Matrix, N, skip int, tf *[]complex128) *Matrix.Matrix {
Xr := Matrix.NullMatrixP(N, this.GetNColumns())
Scratch := Matrix.NullMatrixP(N, this.GetNColumns())
var E, D, Xp, Xstart *Matrix.Matrix
var evenIteration bool
if N%2 == 0 {
evenIteration = true
} else {
evenIteration = false
}
if N == 1 {
Xr.SetRow(1, this.GetReferenceRow(1))
}
E = this
for n := 1; n < N; n *= 2 {
if evenIteration {
Xstart = Scratch
} else {
Xstart = Xr
}
skip := N / (2 * n)
Xp = Xstart
for k := 0; k != n; k++ {
for m := 0; m != skip; m++ {
D = E.MatrixWithoutFirstRows(skip)
D.ScalarRow(1, (*tf)[skip*k])
sr, rr, _ := Matrix.Sum_Sustract(E.GetReferenceRow(1), D.GetReferenceRow(1))
Xp.SetRow(1, sr)
Xp.SetRow(N/2+1, rr)
Xp = Xp.MatrixWithoutFirstRows(1)
E = E.MatrixWithoutFirstRows(1)
}
E = E.MatrixWithoutFirstRows(skip)
}
E = Xstart
evenIteration = !evenIteration
}
return Scratch
}
示例3: FFT_ct3
func FFT_ct3(this *Matrix.Matrix, N, skip int, tf *[]complex128) *Matrix.Matrix {
Xr := Matrix.NullMatrixP(N, this.GetNColumns())
Scratch := Matrix.NullMatrixP(N, this.GetNColumns())
var E, D, Xp, Xstart *Matrix.Matrix
var evenIteration bool
if N%2 == 0 {
evenIteration = true
} else {
evenIteration = false
}
if N == 1 {
Xr.SetRow(1, this.GetReferenceRow(1))
}
E = this
for n := 1; n < N; n *= 2 {
if evenIteration {
Xstart = Scratch
} else {
Xstart = Xr
}
skip := N / (2 * n)
Xp = Xstart
for k := 0; k != n; k++ {
var Aux = func(m0, m1 int, Xp, E, D *Matrix.Matrix) {
println("-", m0)
Xp = Xp.MatrixWithoutFirstRows(m0)
E = E.MatrixWithoutFirstRows(m0)
//D = E.MatrixWithoutFirstRows(skip)
for m := m0; m < m1; m++ {
D = E.MatrixWithoutFirstRows(skip)
D.ScalarRow(1, (*tf)[skip*k])
sr, rr, _ := Matrix.Sum_Sustract(E.GetReferenceRow(1), D.GetReferenceRow(1))
Xp.SetRow(1, sr)
Xp.SetRow(N/2+1, rr)
Xp = Xp.MatrixWithoutFirstRows(1)
println("E", E.ToString())
E = E.MatrixWithoutFirstRows(1)
}
}
mm := skip / 2
m0 := 0
//m1 := skip
go Aux(m0, mm, Xp, E, D)
//println("->E", E.ToString(), ">XP", Xp.ToString())
//go Aux(mm, m1, Xp, E, D)
//for m := 0; m != skip; m++ {
// D = E.MatrixWithoutFirstRows(skip)
// D.ScalarRow(1, (*tf)[skip*k])
// sr, rr, _ := Matrix.Sum_Sustract(E.GetReferenceRow(1), D.GetReferenceRow(1))
// Xp.SetRow(1, sr)
// Xp.SetRow(N/2+1, rr)
// Xp = Xp.MatrixWithoutFirstRows(1)
// E = E.MatrixWithoutFirstRows(1)
//}
E = E.MatrixWithoutFirstRows(skip)
}
E = Xstart
evenIteration = !evenIteration
}
return Scratch
}