aboutsummaryrefslogtreecommitdiff
path: root/bc_funcs/trig.bc
diff options
context:
space:
mode:
Diffstat (limited to 'bc_funcs/trig.bc')
-rw-r--r--bc_funcs/trig.bc98
1 files changed, 0 insertions, 98 deletions
diff --git a/bc_funcs/trig.bc b/bc_funcs/trig.bc
deleted file mode 100644
index 9a4fcb3..0000000
--- a/bc_funcs/trig.bc
+++ /dev/null
@@ -1,98 +0,0 @@
-define sin(x) {
- auto b, s, r, a, q, i
-
- if (x < 0)
- return (-sin(-x))
-
- b = ibase
- ibase = A
- s = scale
- scale = 1.1 * s + 2
- a = atan(1)
- scale = 0
- q = (x / a + 2) / 4
- x -= 4 * q * a
-
- if (q % 2)
- x = -x
-
- scale = s + 2
- r = a = x
- q = -x * x
-
- for (i = 3; a; i += 2) {
- a *= q / (i * (i - 1))
- r += a
- }
-
- scale = s
- ibase = b
- return (r / 1)
-}
-
-define cos(x) {
- auto b, s
- b = ibase
- ibase = A
- s = scale
- scale *= 1.2
- x = sin(2 * atan(1) + x)
- scale = s
- ibase = b
-
- return (x / 1)
-}
-
-define atan(x) {
- auto b, s, r, n, a, m, t, f, i, u
- b = ibase
- ibase = A
- n = 1
-
- if (x < 0) {
- n = -1
- x = -x
- }
-
- if (scale < 65) {
- if (x == 1) {
- r = .7853981633974483096156608458198757210492923498437764552437361480/n
- ibase = b
- return (r)
- }
-
- if (x == .2) {
- r = .1973955598498807583700497651947902934475851037878521015176889402/n
- ibase = b
- return (r)
- }
- }
-
- s = scale
-
- if (x > .2) {
- scale += 5
- a = atan(.2)
- }
-
- scale = s + 3
-
- while (x > .2) {
- m += 1
- x = (x - .2) / (1 + .2 * x)
- }
-
- r = u = x
- f = -x * x
- t = 1
-
- for (i = 3; t; i += 2) {
- u *= f
- t = u / i
- r += t
- }
-
- scale = s
- ibase = b
- return ((m * a + r) / n)
-}