amath  1.6.2
Simple command line calculator
ccos.c
Go to the documentation of this file.
1 /* $NetBSD: ccos.c,v 1.1 2007/08/20 16:01:32 drochner Exp $ */
2 
3 /*
4  * Copyright (c) 2007 The NetBSD Foundation, Inc.
5  * All rights reserved.
6  *
7  * This code is derived from software written by Stephen L. Moshier.
8  * It is redistributed by the NetBSD Foundation by permission of the author.
9  *
10  * Redistribution and use in source and binary forms, with or without
11  * modification, are permitted provided that the following conditions
12  * are met:
13  * 1. Redistributions of source code must retain the above copyright
14  * notice, this list of conditions and the following disclaimer.
15  * 2. Redistributions in binary form must reproduce the above copyright
16  * notice, this list of conditions and the following disclaimer in the
17  * documentation and/or other materials provided with the distribution.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
20  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
21  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
23  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29  * POSSIBILITY OF SUCH DAMAGE.
30  *
31  * The origin source code can be obtained from:
32  * http://cvsweb.netbsd.org/bsdweb.cgi/src/lib/libm/complex/ccos.c?rev=1.1
33  *
34  */
35 
36 #include "prim.h"
37 #include "math.h"
38 #include "complex.h"
39 
40 /**
41  * @brief Cosine of complex number
42  * @version 1.1
43  * @date 2007/08/20
44  * @details
45  * <pre>
46  * a+bi
47  * real = cos(a) * cosh(b)
48  * imag = -sin(a) * sinh(b)
49  * </pre>
50  */
51 complex ccos(complex z)
52 {
53  complex w;
54  double a, b;
55  double ch, sh;
56 
57  a = creal(z);
58  b = cimag(z);
59  cchsh(b, &ch, &sh);
60  w = cpack((cos(a) * ch), (-sin(a) * sh));
61 
62  return w;
63 }
double cos(double x)
Trigonometric cosine function.
Definition: cos.c:87
complex cpack(double x, double y)
Pack two real numbers into a complex number.
Definition: prim.c:71
double cimag(complex z)
Imaginary part of complex number.
Definition: prim.c:47
double creal(complex z)
Real part of complex number.
Definition: prim.c:38
complex ccos(complex z)
Cosine of complex number.
Definition: ccos.c:51
double sin(double x)
Trigonometric sine function.
Definition: sin.c:87
void cchsh(double x, double *c, double *s)
Calculate cosh and sinh.
Definition: prim.c:210