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