本文整理匯總了Golang中math/big.Float.Copy方法的典型用法代碼示例。如果您正苦於以下問題:Golang Float.Copy方法的具體用法?Golang Float.Copy怎麽用?Golang Float.Copy使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類math/big.Float
的用法示例。
在下文中一共展示了Float.Copy方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: Sqrt
// Sqrt returns the square root n.
func Sqrt(n *big.Float) *big.Float {
prec := n.Prec()
x := new(big.Float).SetPrec(prec).SetInt64(1)
z := new(big.Float).SetPrec(prec).SetInt64(1)
half := new(big.Float).SetPrec(prec).SetFloat64(0.5)
t := new(big.Float).SetPrec(prec)
for {
z.Copy(x)
t.Mul(x, x)
t.Sub(t, n)
t.Quo(t, x)
t.Mul(t, half)
x.Sub(x, t)
if x.Cmp(z) == 0 {
break
}
}
return x
}
示例2: abs
func abs(x *complexFloat) *big.Float {
r := new(big.Float).SetPrec(prec)
i := new(big.Float).SetPrec(prec)
r.Copy(x.r)
i.Copy(x.i)
r.Mul(r, x.r) // r^2
i.Mul(i, x.i) // i^2
r.Add(r, i) // r^2 + i^2
return sqrtFloat(r) // sqrt(r^2 + i^2)
}
示例3: sqrtFloat
func sqrtFloat(x *big.Float) *big.Float {
t1 := new(big.Float).SetPrec(prec)
t2 := new(big.Float).SetPrec(prec)
t1.Copy(x)
// Iterate.
// x{n} = (x{n-1}+x{0}/x{n-1}) / 2
for i := 0; i <= steps; i++ {
if t1.Cmp(zero) == 0 || t1.IsInf() {
return t1
}
t2.Quo(x, t1)
t2.Add(t2, t1)
t1.Mul(half, t2)
}
return t1
}