1
0
mirror of https://github.com/golang/go synced 2024-11-22 06:44:40 -07:00

update to new world. still can't use it but it's a lot of editing....

SVN=125218
This commit is contained in:
Rob Pike 2008-06-27 17:06:23 -07:00
parent 390d5fe5b2
commit 4331293f41
16 changed files with 59 additions and 66 deletions

View File

@ -2,11 +2,11 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package asin
package math
import math "atan"
import math "sqrt"
import sys "sys"
import atan "atan"
import sqrt "sqrt"
export asin, acos
/*
@ -34,14 +34,14 @@ asin(arg double)double
sign = true;
}
if arg > 1 {
return sys.NaN();
panic "return sys.NaN()";
}
temp = sqrt.sqrt(1 - x*x);
temp = sqrt(1 - x*x);
if x > 0.7 {
temp = pio2 - atan.atan(temp/x);
temp = pio2 - atan(temp/x);
} else {
temp = atan.atan(x/temp);
temp = atan(x/temp);
}
if sign {
@ -54,7 +54,7 @@ func
acos(arg double)double
{
if(arg > 1 || arg < -1) {
return sys.NaN();
panic "return sys.NaN()";
}
return pio2 - asin(arg);
}

View File

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package atan
package math
export atan

View File

@ -2,9 +2,9 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package atan2
package math
import atan "atan"
import math "atan"
export atan2
/*
@ -29,7 +29,7 @@ atan2(arg1, arg2 double) double
}
return -pio2;
}
x = atan.atan(arg1/arg2);
x = atan(arg1/arg2);
if arg2 < 0 {
if x <= 0 {
return x + pi;

View File

@ -2,10 +2,9 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package exp
package math
import sys "sys"
import floor "floor"
import math "floor"
export exp
/*
@ -34,21 +33,21 @@ exp(arg double) double
var x, fract, temp1, temp2, xsq double;
var ent int;
if arg == 0 {
if arg == 0. {
return 1;
}
if arg < -maxf {
return 0;
return 0.;
}
if arg > maxf {
return sys.Inf(1);
panic "return sys.Inf(1)"
}
x = arg*log2e;
ent = int(floor.floor(x));
ent = int(floor(x));
fract = (x-double(ent)) - 0.5;
xsq = fract*fract;
temp1 = ((p2*xsq+p1)*xsq+p0)*fract;
temp2 = ((xsq+q2)*xsq+q1)*xsq + q0;
return sys.ldexp(sqrt2*(temp2+temp1)/(temp2-temp1), ent);
return sys.ldexp(ent, sqrt2*(temp2+temp1)/(temp2-temp1));
}

View File

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package fabs
package math
export fabs

View File

@ -2,9 +2,8 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package floor
package math
import sys "sys"
export floor, ceil
/*

View File

@ -2,9 +2,8 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package fmod
package math
import sys "sys"
export fmod
/*
@ -39,7 +38,7 @@ fmod(x, y double) double
if rfr < yfr {
rexp = rexp - 1;
}
r = r - sys.ldexp(y, rexp-yexp);
r = r - sys.ldexp(rexp-yexp, y);
}
if sign {
r = -r;

View File

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package hypot
package math
export hypot

View File

@ -2,9 +2,8 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package log
package math
import sys "sys"
export log, log10
/*
@ -37,7 +36,7 @@ log(arg double) double
var exp int;
if arg <= 0 {
return sys.NaN();
panic "return sys.NaN()";
}
exp,x = sys.frexp(arg);
@ -64,7 +63,7 @@ log10(arg double) double
{
if arg <= 0 {
return sys.NaN();
panic "return sys.NaN()";
}
return log(arg) * ln10o1;
}

View File

@ -2,13 +2,12 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package pow
package math
import sys "sys"
import floor "floor"
import sqrt "sqrt"
import log "log"
import exp "exp"
import math "floor"
import math "sqrt"
import math "log"
import math "exp"
export pow
/*
@ -27,14 +26,14 @@ pow(arg1,arg2 double) double
if arg1 <= 0 {
if(arg1 == 0) {
if arg2 <= 0 {
return sys.NaN();
panic "return sys.NaN()";
}
return 0;
}
temp = floor.floor(arg2);
temp = floor(arg2);
if temp != arg2 {
return sys.NaN();
panic "return sys.NaN()";
}
l = long(temp);
@ -44,15 +43,15 @@ pow(arg1,arg2 double) double
return pow(-arg1, arg2);
}
temp = floor.floor(arg2);
temp = floor(arg2);
if temp != arg2 {
if arg2-temp == .5 {
if temp == 0 {
return sqrt.sqrt(arg1);
return sqrt(arg1);
}
return pow(arg1, temp) * sqrt.sqrt(arg1);
return pow(arg1, temp) * sqrt(arg1);
}
return exp.exp(arg2 * log.log(arg1));
return exp(arg2 * log(arg1));
}
l = long(temp);

View File

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package pow10
package math
export pow10

View File

@ -2,9 +2,8 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package sin
package math
import sys "sys"
export sin, cos
const
@ -41,7 +40,7 @@ sinus(arg double, quad int) double
} else {
k = long(x);
y = x - double(k);
quad = (quad + k) & 3;
quad = (quad + int(k)) & 3;
}
if quad&1 != 0 {

View File

@ -2,9 +2,9 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package sinh
package math
import exp "exp"
import math "exp"
export sinh, cosh
/*
@ -45,10 +45,10 @@ sinh(arg double) double
}
switch true {
case arg > 21:
temp = exp.exp(arg)/2;
temp = exp(arg)/2;
case arg > 0.5:
temp = (exp.exp(arg) - exp.exp(-arg))/2;
// temp = (exp(arg) - exp(-arg))/2;
default:
argsq = arg*arg;
@ -69,7 +69,7 @@ cosh(arg double) double
arg = - arg;
}
if arg > 21 {
return exp.exp(arg)/2;
return exp(arg)/2;
}
return (exp.exp(arg) + exp.exp(-arg))/2;
// return (exp(arg) + exp(-arg))/2;
}

View File

@ -2,9 +2,8 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package sqrt
package math
import sys "sys"
export sqrt
/*
@ -20,13 +19,14 @@ sqrt(arg double) double
var x, temp double;
var exp, i int;
/* BUG: NO isINF
if sys.isInf(arg, 1) {
return arg;
}
*/
if arg <= 0 {
if arg < 0 {
return sys.NaN();
panic "return sys.NaN()"
}
return 0;
}

View File

@ -2,9 +2,8 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package tan
package math
import sys "sys"
export tan
/*
@ -63,7 +62,7 @@ tan(arg double) double
if flag {
if(temp == 0) {
return sys.NaN();
panic "return sys.NaN()";
}
temp = 1/temp;
}

View File

@ -2,9 +2,9 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package tanh
package math
import sinh "sinh"
import math "sinh"
export tanh
/*
@ -23,10 +23,10 @@ tanh(arg double) double
if arg > 21 {
return -1;
}
return -sinh.sinh(arg)/sinh.cosh(arg);
return -sinh(arg)/cosh(arg);
}
if arg > 21 {
return 1;
}
return sinh.sinh(arg)/sinh.cosh(arg);
return sinh(arg)/cosh(arg);
}