public inbox for newlib@sourceware.org
 help / color / mirror / Atom feed
From: Aditya Upadhyay <aadit0402@gmail.com>
To: newlib@sourceware.org
Subject: Long double complex methods
Date: Wed, 28 Jun 2017 13:53:00 -0000	[thread overview]
Message-ID: <CAMZxAxeb3gjOdkM9eThKT7n25LwZNa4wff9rvZsb7k8aev-D5g@mail.gmail.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 176 bytes --]

Hello Developers,

This is the patch for conjl.c and ctanl.c ported from NetBSD. Please
review the same and suggest me needed modification.


Thanks & Regards,
Aditya Upadhyay

[-- Attachment #2: 0011-Importing-conjl.c-from-NetBSD.patch --]
[-- Type: text/x-patch, Size: 3099 bytes --]

From 35fea5cb4912073b8027b0622dd9143b8bd61803 Mon Sep 17 00:00:00 2001
From: Aditya Upadhyay <aadit0402@gmail.com>
Date: Wed, 28 Jun 2017 18:50:52 +0530
Subject: [PATCH 11/12] Importing conjl.c from NetBSD.

---
 newlib/libm/complex/Makefile.am |  2 +-
 newlib/libm/complex/conjl.c     | 46 +++++++++++++++++++++++++++++++++++++++++
 2 files changed, 47 insertions(+), 1 deletion(-)
 create mode 100644 newlib/libm/complex/conjl.c

diff --git a/newlib/libm/complex/Makefile.am b/newlib/libm/complex/Makefile.am
index e121ac5..979a9a9 100644
--- a/newlib/libm/complex/Makefile.am
+++ b/newlib/libm/complex/Makefile.am
@@ -12,7 +12,7 @@ src = cabs.c cacos.c cacosh.c carg.c casin.c casinh.c \
 
 lsrc = cabsl.c creall.c cimagl.c ccoshl.c cacoshl.c \ 
        clogl.c csqrtl.c cargl.c cprojl.c cexpl.c cephes_subrl.c\
-       cacosl.c ccosl.c cpowl.c
+       cacosl.c ccosl.c cpowl.c conjl.c
 
 fsrc =	cabsf.c casinf.c ccosf.c cimagf.c cprojf.c  \
         csqrtf.c cacosf.c casinhf.c ccoshf.c clogf.c clog10f.c \
diff --git a/newlib/libm/complex/conjl.c b/newlib/libm/complex/conjl.c
new file mode 100644
index 0000000..35094ce
--- /dev/null
+++ b/newlib/libm/complex/conjl.c
@@ -0,0 +1,46 @@
+/*	$NetBSD: conjl.c,v 1.4 2010/09/20 16:55:20 christos Exp $	*/
+
+/*-
+ * Copyright (c) 2010 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include <sys/cdefs.h>
+__RCSID("$NetBSD: conjl.c,v 1.4 2010/09/20 16:55:20 christos Exp $");
+
+#include <complex.h>
+#include "../common/fdlibm.h"
+
+/*
+ * conjl(long double complex z)
+ * This function returns the complex conjugate value of its argument, z.
+ */
+long double complex
+conjl(long double complex z)
+{
+	long_double_complex w = { .z = z };
+
+	IMAG_PART(w) = -IMAG_PART(w);
+
+	return (w.z);
+}
-- 
2.7.4


[-- Attachment #3: 0012-Porting-ctanl.c-from-NetBSD.patch --]
[-- Type: text/x-patch, Size: 3329 bytes --]

From b0f90b446b21c0ee16aef03614580ade8d0ac43b Mon Sep 17 00:00:00 2001
From: Aditya Upadhyay <aadit0402@gmail.com>
Date: Wed, 28 Jun 2017 19:06:03 +0530
Subject: [PATCH 12/12] Porting ctanl.c from NetBSD.

---
 newlib/libm/complex/Makefile.am |  3 ++-
 newlib/libm/complex/ctanl.c     | 56 +++++++++++++++++++++++++++++++++++++++++
 2 files changed, 58 insertions(+), 1 deletion(-)
 create mode 100644 newlib/libm/complex/ctanl.c

diff --git a/newlib/libm/complex/Makefile.am b/newlib/libm/complex/Makefile.am
index 979a9a9..02cab35 100644
--- a/newlib/libm/complex/Makefile.am
+++ b/newlib/libm/complex/Makefile.am
@@ -12,7 +12,8 @@ src = cabs.c cacos.c cacosh.c carg.c casin.c casinh.c \
 
 lsrc = cabsl.c creall.c cimagl.c ccoshl.c cacoshl.c \ 
        clogl.c csqrtl.c cargl.c cprojl.c cexpl.c cephes_subrl.c\
-       cacosl.c ccosl.c cpowl.c conjl.c
+       cacosl.c ccosl.c cpowl.c conjl.c \
+       ctanl.c
 
 fsrc =	cabsf.c casinf.c ccosf.c cimagf.c cprojf.c  \
         csqrtf.c cacosf.c casinhf.c ccoshf.c clogf.c clog10f.c \
diff --git a/newlib/libm/complex/ctanl.c b/newlib/libm/complex/ctanl.c
new file mode 100644
index 0000000..9255bdb
--- /dev/null
+++ b/newlib/libm/complex/ctanl.c
@@ -0,0 +1,56 @@
+/* $NetBSD: ctanl.c,v 1.1 2014/10/10 00:48:18 christos Exp $ */
+
+/*-
+ * Copyright (c) 2007 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software written by Stephen L. Moshier.
+ * It is redistributed by the NetBSD Foundation by permission of the author.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+
+#include <complex.h>
+#include <math.h>
+#include "cephes_subrl.h"
+
+long double complex
+ctanl(long double complex z)
+{
+	long double complex w;
+	long double d;
+
+	d = cosl(2.0L * creall(z)) + coshl(2.0L * cimagl(z));
+
+	if (fabsl(d) < 0.25L)
+		d = _ctansl(z);
+
+	if (d == 0.0L) {
+		/* mtherr ("ctan", OVERFLOW); */
+		w = HUGE_VALF + HUGE_VALF * I;
+		return w;
+	}
+
+	w = sinl(2.0L * creall(z)) / d + (sinhl(2.0L * cimagl(z)) / d) * I;
+	return w;
+}
-- 
2.7.4


             reply	other threads:[~2017-06-28 13:53 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-06-28 13:53 Aditya Upadhyay [this message]
2017-06-28 20:35 Aditya Upadhyay
2017-06-28 21:36 ` Dionna Amalie Glaze via newlib
2017-06-28 21:57   ` Joel Sherrill
2017-06-29 16:18     ` Joseph Myers
2017-06-29 16:31       ` Joel Sherrill
2017-06-29  6:39 ` Corinna Vinschen
2017-06-29  7:11   ` Aditya Upadhyay
2017-06-29 11:53     ` Corinna Vinschen
2017-06-29 12:04       ` Corinna Vinschen
2017-06-29 19:38         ` Yaakov Selkowitz
2017-06-29 21:17           ` Joel Sherrill
2017-06-30  9:11             ` Aditya Upadhyay
2017-07-04 21:31               ` Aditya Upadhyay
2017-07-04 21:56                 ` Aditya Upadhyay
2017-07-05  8:27                   ` Corinna Vinschen
2017-07-05  9:02                     ` Aditya Upadhyay
2017-07-05 12:40                       ` Corinna Vinschen
2017-06-29 13:47   ` Joel Sherrill

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAMZxAxeb3gjOdkM9eThKT7n25LwZNa4wff9rvZsb7k8aev-D5g@mail.gmail.com \
    --to=aadit0402@gmail.com \
    --cc=newlib@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).