FACT++  1.0
anpm.c
Go to the documentation of this file.
1 #include "erfa.h"
2 
3 double eraAnpm(double a)
4 /*
5 ** - - - - - - - -
6 ** e r a A n p m
7 ** - - - - - - - -
8 **
9 ** Normalize angle into the range -pi <= a < +pi.
10 **
11 ** Given:
12 ** a double angle (radians)
13 **
14 ** Returned (function value):
15 ** double angle in range +/-pi
16 **
17 ** Copyright (C) 2013-2015, NumFOCUS Foundation.
18 ** Derived, with permission, from the SOFA library. See notes at end of file.
19 */
20 {
21  double w;
22 
23  w = fmod(a, ERFA_D2PI);
24  if (fabs(w) >= ERFA_DPI) w -= ERFA_DSIGN(ERFA_D2PI, a);
25 
26  return w;
27 
28 }
29 /*----------------------------------------------------------------------
30 **
31 **
32 ** Copyright (C) 2013-2015, NumFOCUS Foundation.
33 ** All rights reserved.
34 **
35 ** This library is derived, with permission, from the International
36 ** Astronomical Union's "Standards of Fundamental Astronomy" library,
37 ** available from http://www.iausofa.org.
38 **
39 ** The ERFA version is intended to retain identical functionality to
40 ** the SOFA library, but made distinct through different function and
41 ** file names, as set out in the SOFA license conditions. The SOFA
42 ** original has a role as a reference standard for the IAU and IERS,
43 ** and consequently redistribution is permitted only in its unaltered
44 ** state. The ERFA version is not subject to this restriction and
45 ** therefore can be included in distributions which do not support the
46 ** concept of "read only" software.
47 **
48 ** Although the intent is to replicate the SOFA API (other than
49 ** replacement of prefix names) and results (with the exception of
50 ** bugs; any that are discovered will be fixed), SOFA is not
51 ** responsible for any errors found in this version of the library.
52 **
53 ** If you wish to acknowledge the SOFA heritage, please acknowledge
54 ** that you are using a library derived from SOFA, rather than SOFA
55 ** itself.
56 **
57 **
58 ** TERMS AND CONDITIONS
59 **
60 ** Redistribution and use in source and binary forms, with or without
61 ** modification, are permitted provided that the following conditions
62 ** are met:
63 **
64 ** 1 Redistributions of source code must retain the above copyright
65 ** notice, this list of conditions and the following disclaimer.
66 **
67 ** 2 Redistributions in binary form must reproduce the above copyright
68 ** notice, this list of conditions and the following disclaimer in
69 ** the documentation and/or other materials provided with the
70 ** distribution.
71 **
72 ** 3 Neither the name of the Standards Of Fundamental Astronomy Board,
73 ** the International Astronomical Union nor the names of its
74 ** contributors may be used to endorse or promote products derived
75 ** from this software without specific prior written permission.
76 **
77 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
78 ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
79 ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
80 ** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
81 ** COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
82 ** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
83 ** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
84 ** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
85 ** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
86 ** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
87 ** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
88 ** POSSIBILITY OF SUCH DAMAGE.
89 **
90 */
#define ERFA_DPI
Definition: erfam.h:45
#define ERFA_D2PI
Definition: erfam.h:48
double eraAnpm(double a)
Definition: anpm.c:3
#define ERFA_DSIGN(A, B)
Definition: erfam.h:131