FACT++
1.0
Main Page
Related Pages
Namespaces
Classes
Files
Examples
File List
File Members
pn.c
Go to the documentation of this file.
1
#include "
erfa.h
"
2
3
void
eraPn
(
double
p[3],
double
*r,
double
u[3])
4
/*
5
** - - - - - -
6
** e r a P n
7
** - - - - - -
8
**
9
** Convert a p-vector into modulus and unit vector.
10
**
11
** Given:
12
** p double[3] p-vector
13
**
14
** Returned:
15
** r double modulus
16
** u double[3] unit vector
17
**
18
** Notes:
19
**
20
** 1) If p is null, the result is null. Otherwise the result is a unit
21
** vector.
22
**
23
** 2) It is permissible to re-use the same array for any of the
24
** arguments.
25
**
26
** Called:
27
** eraPm modulus of p-vector
28
** eraZp zero p-vector
29
** eraSxp multiply p-vector by scalar
30
**
31
** Copyright (C) 2013-2015, NumFOCUS Foundation.
32
** Derived, with permission, from the SOFA library. See notes at end of file.
33
*/
34
{
35
double
w;
36
37
/* Obtain the modulus and test for zero. */
38
w =
eraPm
(p);
39
if
(w == 0.0) {
40
41
/* Null vector. */
42
eraZp
(u);
43
44
}
else
{
45
46
/* Unit vector. */
47
eraSxp
(1.0/w, p, u);
48
}
49
50
/* Return the modulus. */
51
*r = w;
52
53
return
;
54
55
}
56
/*----------------------------------------------------------------------
57
**
58
**
59
** Copyright (C) 2013-2015, NumFOCUS Foundation.
60
** All rights reserved.
61
**
62
** This library is derived, with permission, from the International
63
** Astronomical Union's "Standards of Fundamental Astronomy" library,
64
** available from http://www.iausofa.org.
65
**
66
** The ERFA version is intended to retain identical functionality to
67
** the SOFA library, but made distinct through different function and
68
** file names, as set out in the SOFA license conditions. The SOFA
69
** original has a role as a reference standard for the IAU and IERS,
70
** and consequently redistribution is permitted only in its unaltered
71
** state. The ERFA version is not subject to this restriction and
72
** therefore can be included in distributions which do not support the
73
** concept of "read only" software.
74
**
75
** Although the intent is to replicate the SOFA API (other than
76
** replacement of prefix names) and results (with the exception of
77
** bugs; any that are discovered will be fixed), SOFA is not
78
** responsible for any errors found in this version of the library.
79
**
80
** If you wish to acknowledge the SOFA heritage, please acknowledge
81
** that you are using a library derived from SOFA, rather than SOFA
82
** itself.
83
**
84
**
85
** TERMS AND CONDITIONS
86
**
87
** Redistribution and use in source and binary forms, with or without
88
** modification, are permitted provided that the following conditions
89
** are met:
90
**
91
** 1 Redistributions of source code must retain the above copyright
92
** notice, this list of conditions and the following disclaimer.
93
**
94
** 2 Redistributions in binary form must reproduce the above copyright
95
** notice, this list of conditions and the following disclaimer in
96
** the documentation and/or other materials provided with the
97
** distribution.
98
**
99
** 3 Neither the name of the Standards Of Fundamental Astronomy Board,
100
** the International Astronomical Union nor the names of its
101
** contributors may be used to endorse or promote products derived
102
** from this software without specific prior written permission.
103
**
104
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
105
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
106
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
107
** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
108
** COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
109
** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
110
** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
111
** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
112
** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
113
** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
114
** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
115
** POSSIBILITY OF SUCH DAMAGE.
116
**
117
*/
eraPn
void eraPn(double p[3], double *r, double u[3])
Definition:
pn.c:3
eraPm
double eraPm(double p[3])
Definition:
pm.c:3
eraSxp
void eraSxp(double s, double p[3], double sp[3])
Definition:
sxp.c:3
erfa.h
eraZp
void eraZp(double p[3])
Definition:
zp.c:3
erfa
src
pn.c
Generated on Sun Sep 18 2016 20:50:18 for FACT++ by
1.8.11