diff --git a/posix.mak b/posix.mak index 8802e2c4421..3854e189089 100644 --- a/posix.mak +++ b/posix.mak @@ -90,7 +90,7 @@ SRCS:=$(subst \,/,$(SRCS)) # NOTE: a pre-compiled minit.obj has been provided in dmd for Win32 and # minit.asm is not used by dmd for Linux -OBJS= $(OBJDIR)/errno_c.o $(OBJDIR)/threadasm.o $(OBJDIR)/complex.o +OBJS= $(OBJDIR)/errno_c.o $(OBJDIR)/threadasm.o ######################## All of'em ############################## diff --git a/src/rt/complex.c b/src/rt/complex.c deleted file mode 100644 index 8abba9c16c3..00000000000 --- a/src/rt/complex.c +++ /dev/null @@ -1,113 +0,0 @@ -/** - * Implementation of complex number support routines. - * - * Copyright: Copyright Digital Mars 2000 - 2010. - * License: Boost License 1.0. - * Authors: Walter Bright - */ - -/* Copyright Digital Mars 2000 - 2010. - * Distributed under the Boost Software License, Version 1.0. - * (See accompanying file LICENSE or copy at - * http://www.boost.org/LICENSE_1_0.txt) - */ -#include - -typedef struct Complex -{ - long double re; - long double im; -} Complex; - -Complex _complex_div(Complex x, Complex y) -{ - Complex q; - long double r; - long double den; - - if (fabs(y.re) < fabs(y.im)) - { - r = y.re / y.im; - den = y.im + r * y.re; - q.re = (x.re * r + x.im) / den; - q.im = (x.im * r - x.re) / den; - } - else - { - r = y.im / y.re; - den = y.re + r * y.im; - q.re = (x.re + r * x.im) / den; - q.im = (x.im - r * x.re) / den; - } - return q; -} - -Complex _complex_mul(Complex x, Complex y) -{ - Complex p; - - p.re = x.re * y.re - x.im * y.im; - p.im = x.im * y.re + x.re * y.im; - return p; -} - -long double _complex_abs(Complex z) -{ - long double x,y,ans,temp; - - x = fabs(z.re); - y = fabs(z.im); - if (x == 0) - ans = y; - else if (y == 0) - ans = x; - else if (x > y) - { - temp = y / x; - ans = x * sqrt(1 + temp * temp); - } - else - { - temp = x / y; - ans = y * sqrt(1 + temp * temp); - } - return ans; -} - -Complex _complex_sqrt(Complex z) -{ - Complex c; - long double x,y,w,r; - - if (z.re == 0 && z.im == 0) - { - c.re = 0; - c.im = 0; - } - else - { - x = fabs(z.re); - y = fabs(z.im); - if (x >= y) - { - r = y / x; - w = sqrt(x) * sqrt(0.5 * (1 + sqrt(1 + r * r))); - } - else - { - r = x / y; - w = sqrt(y) * sqrt(0.5 * (r + sqrt(1 + r * r))); - } - if (z.re >= 0) - { - c.re = w; - c.im = z.im / (w + w); - } - else - { - c.im = (z.im >= 0) ? w : -w; - c.re = z.im / (c.im + c.im); - } - } - return c; -} diff --git a/win32.mak b/win32.mak index fc384d946c1..f8865b78db9 100644 --- a/win32.mak +++ b/win32.mak @@ -34,8 +34,8 @@ $(mak\SRCS) # NOTE: a pre-compiled minit.obj has been provided in dmd for Win32 and # minit.asm is not used by dmd for Linux -OBJS= errno_c.obj complex.obj src\rt\minit.obj -OBJS_TO_DELETE= errno_c.obj complex.obj +OBJS= errno_c.obj src\rt\minit.obj +OBJS_TO_DELETE= errno_c.obj ######################## Doc .html file generation ############################## @@ -438,9 +438,6 @@ $(IMPDIR)\etc\linux\memoryerror.d : src\etc\linux\memoryerror.d errno_c.obj : src\core\stdc\errno.c $(CC) -c $(CFLAGS) src\core\stdc\errno.c -oerrno_c.obj -complex.obj : src\rt\complex.c - $(CC) -c $(CFLAGS) src\rt\complex.c - src\rt\minit.obj : src\rt\minit.asm $(CC) -c $(CFLAGS) src\rt\minit.asm diff --git a/win64.mak b/win64.mak index 70172d4f0c9..7476c78c52b 100644 --- a/win64.mak +++ b/win64.mak @@ -41,8 +41,8 @@ $(mak\SRCS) # NOTE: a pre-compiled minit.obj has been provided in dmd for Win32 and # minit.asm is not used by dmd for Linux -OBJS= errno_c.obj complex.obj -OBJS_TO_DELETE= errno_c.obj complex.obj +OBJS= errno_c.obj +OBJS_TO_DELETE= errno_c.obj ######################## Doc .html file generation ############################## @@ -445,9 +445,6 @@ $(IMPDIR)\etc\linux\memoryerror.d : src\etc\linux\memoryerror.d errno_c.obj : src\core\stdc\errno.c $(CC) -c $(CFLAGS) src\core\stdc\errno.c -Foerrno_c.obj -complex.obj : src\rt\complex.c - $(CC) -c $(CFLAGS) src\rt\complex.c - src\rt\minit.obj : src\rt\minit.asm $(CC) -c $(CFLAGS) src\rt\minit.asm