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