Linux vmi284606.contaboserver.net 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64
Apache/2.4.57 (Ubuntu)
: 167.86.127.34 | : 216.73.217.1
Cant Read [ /etc/named.conf ]
7.2.24-0ubuntu0.18.04.17
root
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
README
+ Create Folder
+ Create File
/
usr /
local /
go /
src /
math /
big /
[ HOME SHELL ]
Name
Size
Permission
Action
accuracy_string.go
414
B
-rw-r--r--
arith.go
5.68
KB
-rw-r--r--
arith_386.s
4.67
KB
-rw-r--r--
arith_amd64.go
277
B
-rw-r--r--
arith_amd64.s
9.71
KB
-rw-r--r--
arith_arm.s
4.47
KB
-rw-r--r--
arith_arm64.s
9.94
KB
-rw-r--r--
arith_decl.go
707
B
-rw-r--r--
arith_decl_pure.go
1.24
KB
-rw-r--r--
arith_decl_s390x.go
791
B
-rw-r--r--
arith_mips64x.s
917
B
-rw-r--r--
arith_mipsx.s
913
B
-rw-r--r--
arith_ppc64x.s
12.62
KB
-rw-r--r--
arith_s390x.s
29.12
KB
-rw-r--r--
arith_s390x_test.go
1014
B
-rw-r--r--
arith_test.go
12.29
KB
-rw-r--r--
arith_wasm.s
757
B
-rw-r--r--
bits_test.go
5.07
KB
-rw-r--r--
calibrate_test.go
4.63
KB
-rw-r--r--
decimal.go
6.52
KB
-rw-r--r--
decimal_test.go
3.33
KB
-rw-r--r--
doc.go
3.79
KB
-rw-r--r--
example_rat_test.go
1.68
KB
-rw-r--r--
example_test.go
3.94
KB
-rw-r--r--
float.go
44.14
KB
-rw-r--r--
float_test.go
51.94
KB
-rw-r--r--
floatconv.go
8.36
KB
-rw-r--r--
floatconv_test.go
24.28
KB
-rw-r--r--
floatexample_test.go
3.63
KB
-rw-r--r--
floatmarsh.go
3.34
KB
-rw-r--r--
floatmarsh_test.go
3.64
KB
-rw-r--r--
ftoa.go
13.55
KB
-rw-r--r--
gcd_test.go
2.16
KB
-rw-r--r--
hilbert_test.go
2.88
KB
-rw-r--r--
int.go
29.56
KB
-rw-r--r--
int_test.go
51.93
KB
-rw-r--r--
intconv.go
6.68
KB
-rw-r--r--
intconv_test.go
10.01
KB
-rw-r--r--
intmarsh.go
2.09
KB
-rw-r--r--
intmarsh_test.go
2.8
KB
-rw-r--r--
nat.go
33.76
KB
-rw-r--r--
nat_test.go
18.87
KB
-rw-r--r--
natconv.go
14.57
KB
-rw-r--r--
natconv_test.go
16.85
KB
-rw-r--r--
prime.go
10.34
KB
-rw-r--r--
prime_test.go
7.1
KB
-rw-r--r--
rat.go
13.49
KB
-rw-r--r--
rat_test.go
18.54
KB
-rw-r--r--
ratconv.go
9.49
KB
-rw-r--r--
ratconv_test.go
14.96
KB
-rw-r--r--
ratmarsh.go
1.95
KB
-rw-r--r--
ratmarsh_test.go
3.04
KB
-rw-r--r--
roundingmode_string.go
501
B
-rw-r--r--
sqrt.go
3.59
KB
-rw-r--r--
sqrt_test.go
4.81
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : sqrt.go
// Copyright 2017 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package big import "math" var ( three = NewFloat(3.0) ) // Sqrt sets z to the rounded square root of x, and returns it. // // If z's precision is 0, it is changed to x's precision before the // operation. Rounding is performed according to z's precision and // rounding mode. // // The function panics if z < 0. The value of z is undefined in that // case. func (z *Float) Sqrt(x *Float) *Float { if debugFloat { x.validate() } if z.prec == 0 { z.prec = x.prec } if x.Sign() == -1 { // following IEEE754-2008 (section 7.2) panic(ErrNaN{"square root of negative operand"}) } // handle ±0 and +∞ if x.form != finite { z.acc = Exact z.form = x.form z.neg = x.neg // IEEE754-2008 requires √±0 = ±0 return z } // MantExp sets the argument's precision to the receiver's, and // when z.prec > x.prec this will lower z.prec. Restore it after // the MantExp call. prec := z.prec b := x.MantExp(z) z.prec = prec // Compute √(z·2**b) as // √( z)·2**(½b) if b is even // √(2z)·2**(⌊½b⌋) if b > 0 is odd // √(½z)·2**(⌈½b⌉) if b < 0 is odd switch b % 2 { case 0: // nothing to do case 1: z.exp++ case -1: z.exp-- } // 0.25 <= z < 2.0 // Solving x² - z = 0 directly requires a Quo call, but it's // faster for small precisions. // // Solving 1/x² - z = 0 avoids the Quo call and is much faster for // high precisions. // // 128bit precision is an empirically chosen threshold. if z.prec <= 128 { z.sqrtDirect(z) } else { z.sqrtInverse(z) } // re-attach halved exponent return z.SetMantExp(z, b/2) } // Compute √x (up to prec 128) by solving // t² - x = 0 // for t, starting with a 53 bits precision guess from math.Sqrt and // then using at most two iterations of Newton's method. func (z *Float) sqrtDirect(x *Float) { // let // f(t) = t² - x // then // g(t) = f(t)/f'(t) = ½(t² - x)/t // and the next guess is given by // t2 = t - g(t) = ½(t² + x)/t u := new(Float) ng := func(t *Float) *Float { u.prec = t.prec u.Mul(t, t) // u = t² u.Add(u, x) // = t² + x u.exp-- // = ½(t² + x) return t.Quo(u, t) // = ½(t² + x)/t } xf, _ := x.Float64() sq := NewFloat(math.Sqrt(xf)) switch { case z.prec > 128: panic("sqrtDirect: only for z.prec <= 128") case z.prec > 64: sq.prec *= 2 sq = ng(sq) fallthrough default: sq.prec *= 2 sq = ng(sq) } z.Set(sq) } // Compute √x (to z.prec precision) by solving // 1/t² - x = 0 // for t (using Newton's method), and then inverting. func (z *Float) sqrtInverse(x *Float) { // let // f(t) = 1/t² - x // then // g(t) = f(t)/f'(t) = -½t(1 - xt²) // and the next guess is given by // t2 = t - g(t) = ½t(3 - xt²) u := newFloat(z.prec) v := newFloat(z.prec) ng := func(t *Float) *Float { u.prec = t.prec v.prec = t.prec u.Mul(t, t) // u = t² u.Mul(x, u) // = xt² v.Sub(three, u) // v = 3 - xt² u.Mul(t, v) // u = t(3 - xt²) u.exp-- // = ½t(3 - xt²) return t.Set(u) } xf, _ := x.Float64() sqi := newFloat(z.prec) sqi.SetFloat64(1 / math.Sqrt(xf)) for prec := z.prec + 32; sqi.prec < prec; { sqi.prec *= 2 sqi = ng(sqi) } // sqi = 1/√x // x/√x = √x z.Mul(x, sqi) } // newFloat returns a new *Float with space for twice the given // precision. func newFloat(prec2 uint32) *Float { z := new(Float) // nat.make ensures the slice length is > 0 z.mant = z.mant.make(int(prec2/_W) * 2) return z }
Close