1.\" Copyright (c) 2004 Stefan Farfeleder 2.\" All rights reserved. 3.\" 4.\" Redistribution and use in source and binary forms, with or without 5.\" modification, are permitted provided that the following conditions 6.\" are met: 7.\" 1. Redistributions of source code must retain the above copyright 8.\" notice, this list of conditions and the following disclaimer. 9.\" 2. Redistributions in binary form must reproduce the above copyright 10.\" notice, this list of conditions and the following disclaimer in the 11.\" documentation and/or other materials provided with the distribution. 12.\" 13.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 14.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 21.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 22.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 23.\" SUCH DAMAGE. 24.\" 25.\" $FreeBSD$ 26.\" 27.Dd August 7, 2008 28.Dt CIMAG 3 29.Os 30.Sh NAME 31.Nm cimag , cimagf , cimagl , 32.Nm conj , conjf , conjl , 33.Nm cproj , cprojf , cprojl , 34.Nm creal , crealf , creall 35.Nd "functions to manipulate complex numbers" 36.Sh LIBRARY 37.Lb libm 38.Sh SYNOPSIS 39.In complex.h 40.Ft double 41.Fn cimag "double complex z" 42.Ft float 43.Fn cimagf "float complex z" 44.Ft "long double" 45.Fn cimagl "long double complex z" 46.Ft "double complex" 47.Fn conj "double complex z" 48.Ft "float complex" 49.Fn conjf "float complex z" 50.Ft "long double complex" 51.Fn conjl "long double complex z" 52.Ft "double complex" 53.Fn cproj "double complex z" 54.Ft "float complex" 55.Fn cprojf "float complex z" 56.Ft "long double complex" 57.Fn cprojl "long double complex z" 58.Ft double 59.Fn creal "double complex z" 60.Ft float 61.Fn crealf "float complex z" 62.Ft "long double" 63.Fn creall "long double complex z" 64.Sh DESCRIPTION 65Let 66.Sm off 67.Fa a + b * Em i 68.Sm on 69denote the complex number 70.Fa z . 71.Pp 72The 73.Fn creal 74functions return the real part 75.Fa a , 76and the 77.Fn cimag 78functions return the imaginary part 79.Fa b . 80.Pp 81The 82.Fn conj 83functions return the complex conjugate 84.Sm off 85.Fa a - b * Em i . 86.Sm on 87.Pp 88The 89.Fn cproj 90functions return the projection onto the Riemann sphere. 91If 92.Fa z 93contains an infinite component, then the result is 94.Fa \*(If \*(Pm 0 Ns * Ns Em i , 95where the (zero) imaginary part of the result has the same sign as 96.Fa b . 97Otherwise, the result is 98.Fa z . 99.Pp 100These functions do not signal any floating point exceptions. 101.Sh STANDARDS 102The 103.Fn cimag , 104.Fn conj , 105.Fn cproj , 106and 107.Fn creal 108functions conform to 109.St -isoC-99 . 110.Sh HISTORY 111The 112.Fn cimag , 113.Fn conj 114and 115.Fn creal 116functions first appeared in 117.Fx 5.3 . 118The 119.Fn cproj 120functions appeared in 121.Fx 8.0 . 122