Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

benchmarked some fundamental arguments of nutation

  • Loading branch information...
commit ef2f6535da33fde6c4cf30e8809953d054fced73 1 parent d193277
@DouglasAllen authored
Showing with 30,742 additions and 0 deletions.
  1. +542 −0 include/sofa.h
  2. +250 −0 include/sofam.h
  3. BIN  lib/libsofa_c.a
  4. +132 −0 libs/OPERATIONS INVOLVING PV−VECTORS/libCopy_extend_extract/cpv.c
  5. +133 −0 libs/OPERATIONS INVOLVING PV−VECTORS/libCopy_extend_extract/p2pv.c
  6. +131 −0 libs/OPERATIONS INVOLVING PV−VECTORS/libCopy_extend_extract/pv2p.c
  7. +136 −0 libs/OPERATIONS INVOLVING PV−VECTORS/libMatrix−vector_products/rxpv.c
  8. +143 −0 libs/OPERATIONS INVOLVING PV−VECTORS/libMatrix−vector_products/trxpv.c
  9. +152 −0 libs/OPERATIONS INVOLVING PV−VECTORS/libOperations_on_vectors/pvdpv.c
  10. +136 −0 libs/OPERATIONS INVOLVING PV−VECTORS/libOperations_on_vectors/pvm.c
  11. +137 −0 libs/OPERATIONS INVOLVING PV−VECTORS/libOperations_on_vectors/pvmpv.c
  12. +137 −0 libs/OPERATIONS INVOLVING PV−VECTORS/libOperations_on_vectors/pvppv.c
  13. +143 −0 libs/OPERATIONS INVOLVING PV−VECTORS/libOperations_on_vectors/pvu.c
  14. +138 −0 libs/OPERATIONS INVOLVING PV−VECTORS/libOperations_on_vectors/pvup.c
  15. +157 −0 libs/OPERATIONS INVOLVING PV−VECTORS/libOperations_on_vectors/pvxpv.c
  16. +137 −0 libs/OPERATIONS INVOLVING PV−VECTORS/libOperations_on_vectors/s2xpv.c
  17. +135 −0 libs/OPERATIONS INVOLVING PV−VECTORS/libOperations_on_vectors/sxpv.c
  18. +194 −0 libs/OPERATIONS INVOLVING PV−VECTORS/libSpherical_Cartesian_conversions/pv2s.c
  19. +153 −0 libs/OPERATIONS INVOLVING PV−VECTORS/libSpherical_Cartesian_conversions/s2pv.c
  20. +160 −0 libs/OPERATIONS INVOLVING P−VECTORS AND R−MATRICES/libBuild_rotations/rx.c
  21. +160 −0 libs/OPERATIONS INVOLVING P−VECTORS AND R−MATRICES/libBuild_rotations/ry.c
  22. +160 −0 libs/OPERATIONS INVOLVING P−VECTORS AND R−MATRICES/libBuild_rotations/rz.c
  23. +130 −0 libs/OPERATIONS INVOLVING P−VECTORS AND R−MATRICES/libCopy_extend_extract/cp.c
  24. +133 −0 libs/OPERATIONS INVOLVING P−VECTORS AND R−MATRICES/libCopy_extend_extract/cr.c
  25. +133 −0 libs/OPERATIONS INVOLVING P−VECTORS AND R−MATRICES/libInitialize/ir.c
  26. +127 −0 libs/OPERATIONS INVOLVING P−VECTORS AND R−MATRICES/libInitialize/zp.c
  27. +133 −0 libs/OPERATIONS INVOLVING P−VECTORS AND R−MATRICES/libInitialize/zr.c
  28. +149 −0 libs/OPERATIONS INVOLVING P−VECTORS AND R−MATRICES/libMatrix−vector_products/rxp.c
  29. +143 −0 libs/OPERATIONS INVOLVING P−VECTORS AND R−MATRICES/libMatrix−vector_products/trxp.c
  30. +149 −0 libs/OPERATIONS INVOLVING P−VECTORS AND R−MATRICES/libOperations_on_matrices/rxr.c
  31. +143 −0 libs/OPERATIONS INVOLVING P−VECTORS AND R−MATRICES/libOperations_on_matrices/tr.c
  32. +134 −0 libs/OPERATIONS INVOLVING P−VECTORS AND R−MATRICES/libOperations_on_vectors/pdp.c
  33. +126 −0 libs/OPERATIONS INVOLVING P−VECTORS AND R−MATRICES/libOperations_on_vectors/pm.c
  34. +135 −0 libs/OPERATIONS INVOLVING P−VECTORS AND R−MATRICES/libOperations_on_vectors/pmp.c
  35. +159 −0 libs/OPERATIONS INVOLVING P−VECTORS AND R−MATRICES/libOperations_on_vectors/pn.c
  36. +135 −0 libs/OPERATIONS INVOLVING P−VECTORS AND R−MATRICES/libOperations_on_vectors/ppp.c
  37. +144 −0 libs/OPERATIONS INVOLVING P−VECTORS AND R−MATRICES/libOperations_on_vectors/ppsp.c
  38. +144 −0 libs/OPERATIONS INVOLVING P−VECTORS AND R−MATRICES/libOperations_on_vectors/pxp.c
  39. +134 −0 libs/OPERATIONS INVOLVING P−VECTORS AND R−MATRICES/libOperations_on_vectors/sxp.c
  40. +161 −0 libs/OPERATIONS INVOLVING P−VECTORS AND R−MATRICES/libRotation_vectors/rm2v.c
  41. +168 −0 libs/OPERATIONS INVOLVING P−VECTORS AND R−MATRICES/libRotation_vectors/rv2m.c
  42. +189 −0 libs/OPERATIONS INVOLVING P−VECTORS AND R−MATRICES/libSeparation_and_position−angle/pap.c
  43. +146 −0 libs/OPERATIONS INVOLVING P−VECTORS AND R−MATRICES/libSeparation_and_position−angle/pas.c
  44. +155 −0 libs/OPERATIONS INVOLVING P−VECTORS AND R−MATRICES/libSeparation_and_position−angle/sepp.c
  45. +143 −0 libs/OPERATIONS INVOLVING P−VECTORS AND R−MATRICES/libSeparation_and_position−angle/seps.c
  46. +146 −0 libs/OPERATIONS INVOLVING P−VECTORS AND R−MATRICES/libSpherical_Cartesian_conversions/c2s.c
  47. +141 −0 libs/OPERATIONS INVOLVING P−VECTORS AND R−MATRICES/libSpherical_Cartesian_conversions/p2s.c
  48. +135 −0 libs/OPERATIONS INVOLVING P−VECTORS AND R−MATRICES/libSpherical_Cartesian_conversions/s2c.c
  49. +138 −0 libs/OPERATIONS INVOLVING P−VECTORS AND R−MATRICES/libSpherical_Cartesian_conversions/s2p.c
  50. +170 −0 libs/OPERATIONS_ON_ANGLES/libAngles/a2af.c
  51. +166 −0 libs/OPERATIONS_ON_ANGLES/libAngles/a2tf.c
  52. +157 −0 libs/OPERATIONS_ON_ANGLES/libAngles/af2a.c
  53. +132 −0 libs/OPERATIONS_ON_ANGLES/libAngles/anp.c
  54. +132 −0 libs/OPERATIONS_ON_ANGLES/libAngles/anpm.c
  55. +210 −0 libs/OPERATIONS_ON_ANGLES/libAngles/d2tf.c
  56. +157 −0 libs/OPERATIONS_ON_ANGLES/libAngles/tf2a.c
  57. +157 −0 libs/OPERATIONS_ON_ANGLES/libAngles/tf2d.c
  58. +179 −0 libs/libAstrometry/ab.c
  59. +223 −0 libs/libAstrometry/apcg.c
  60. +226 −0 libs/libAstrometry/apcg13.c
  61. +232 −0 libs/libAstrometry/apci.c
  62. +244 −0 libs/libAstrometry/apci13.c
  63. +306 −0 libs/libAstrometry/apco.c
  64. +329 −0 libs/libAstrometry/apco13.c
  65. +275 −0 libs/libAstrometry/apcs.c
  66. +233 −0 libs/libAstrometry/apcs13.c
  67. +204 −0 libs/libAstrometry/aper.c
  68. +223 −0 libs/libAstrometry/aper13.c
  69. +255 −0 libs/libAstrometry/apio.c
  70. +301 −0 libs/libAstrometry/apio13.c
  71. +201 −0 libs/libAstrometry/atci13.c
  72. +196 −0 libs/libAstrometry/atciq.c
  73. +233 −0 libs/libAstrometry/atciqn.c
  74. +195 −0 libs/libAstrometry/atciqz.c
  75. +285 −0 libs/libAstrometry/atco13.c
  76. +194 −0 libs/libAstrometry/atic13.c
  77. +241 −0 libs/libAstrometry/aticq.c
  78. +279 −0 libs/libAstrometry/aticqn.c
  79. +264 −0 libs/libAstrometry/atio13.c
  80. +286 −0 libs/libAstrometry/atioq.c
  81. +275 −0 libs/libAstrometry/atoc13.c
  82. +270 −0 libs/libAstrometry/atoi13.c
  83. +299 −0 libs/libAstrometry/atoiq.c
  84. +203 −0 libs/libAstrometry/ld.c
  85. +225 −0 libs/libAstrometry/ldn.c
  86. +147 −0 libs/libAstrometry/ldsun.c
  87. +29 −0 libs/libAstrometry/makefile
  88. +195 −0 libs/libAstrometry/pmpx.c
  89. +204 −0 libs/libAstrometry/pvtob.c
  90. +304 −0 libs/libAstrometry/refco.c
  91. +542 −0 libs/libAstrometry/sofa.h
  92. +250 −0 libs/libAstrometry/sofam.h
  93. +178 −0 libs/libEarth_rotation_angle_and_sidereal_time/ee00.c
  94. +185 −0 libs/libEarth_rotation_angle_and_sidereal_time/ee00a.c
  95. +191 −0 libs/libEarth_rotation_angle_and_sidereal_time/ee00b.c
  96. +172 −0 libs/libEarth_rotation_angle_and_sidereal_time/ee06a.c
  97. +332 −0 libs/libEarth_rotation_angle_and_sidereal_time/eect00.c
  98. +182 −0 libs/libEarth_rotation_angle_and_sidereal_time/eqeq94.c
  99. +186 −0 libs/libEarth_rotation_angle_and_sidereal_time/era00.c
  100. +153 −0 libs/libEarth_rotation_angle_and_sidereal_time/fad03.c
  101. BIN  libs/libEarth_rotation_angle_and_sidereal_time/fad03.so
  102. +152 −0 libs/libEarth_rotation_angle_and_sidereal_time/fae03.c
  103. +156 −0 libs/libEarth_rotation_angle_and_sidereal_time/faf03.c
  104. BIN  libs/libEarth_rotation_angle_and_sidereal_time/faf03.so
  105. +152 −0 libs/libEarth_rotation_angle_and_sidereal_time/faju03.c
  106. +153 −0 libs/libEarth_rotation_angle_and_sidereal_time/fal03.c
  107. BIN  libs/libEarth_rotation_angle_and_sidereal_time/fal03.so
  108. +153 −0 libs/libEarth_rotation_angle_and_sidereal_time/falp03.c
  109. BIN  libs/libEarth_rotation_angle_and_sidereal_time/falp03.so
  110. +152 −0 libs/libEarth_rotation_angle_and_sidereal_time/fama03.c
  111. +152 −0 libs/libEarth_rotation_angle_and_sidereal_time/fame03.c
  112. +154 −0 libs/libEarth_rotation_angle_and_sidereal_time/faom03.c
  113. BIN  libs/libEarth_rotation_angle_and_sidereal_time/faom03.so
  114. +153 −0 libs/libEarth_rotation_angle_and_sidereal_time/fapa03.c
  115. +152 −0 libs/libEarth_rotation_angle_and_sidereal_time/fasa03.c
  116. +149 −0 libs/libEarth_rotation_angle_and_sidereal_time/faur03.c
  117. +152 −0 libs/libEarth_rotation_angle_and_sidereal_time/fave03.c
  118. +195 −0 libs/libEarth_rotation_angle_and_sidereal_time/gmst00.c
  119. +186 −0 libs/libEarth_rotation_angle_and_sidereal_time/gmst06.c
  120. +201 −0 libs/libEarth_rotation_angle_and_sidereal_time/gmst82.c
  121. +188 −0 libs/libEarth_rotation_angle_and_sidereal_time/gst00a.c
  122. +196 −0 libs/libEarth_rotation_angle_and_sidereal_time/gst00b.c
  123. +190 −0 libs/libEarth_rotation_angle_and_sidereal_time/gst06.c
  124. +181 −0 libs/libEarth_rotation_angle_and_sidereal_time/gst06a.c
  125. +181 −0 libs/libEarth_rotation_angle_and_sidereal_time/gst94.c
  126. +30 −0 libs/libEarth_rotation_angle_and_sidereal_time/makefile
  127. +2,097 −0 libs/libEarth_rotation_angle_and_sidereal_time/nut00a.c
  128. +168 −0 libs/libEarth_rotation_angle_and_sidereal_time/obl80.c
  129. +192 −0 libs/libEarth_rotation_angle_and_sidereal_time/pr00.c
  130. +542 −0 libs/libEarth_rotation_angle_and_sidereal_time/sofa.h
  131. +250 −0 libs/libEarth_rotation_angle_and_sidereal_time/sofam.h
  132. +86 −0 libs/libEarth_rotation_angle_and_sidereal_time/test_favalues.rb
  133. +2,639 −0 libs/libEphemerides/epv00.c
  134. +564 −0 libs/libEphemerides/plan94.c
  135. +153 −0 libs/libFundamental_arguments_for_nutation/fad03.c
  136. +152 −0 libs/libFundamental_arguments_for_nutation/fae03.c
  137. +156 −0 libs/libFundamental_arguments_for_nutation/faf03.c
  138. +152 −0 libs/libFundamental_arguments_for_nutation/faju03.c
  139. +153 −0 libs/libFundamental_arguments_for_nutation/fal03.c
  140. +153 −0 libs/libFundamental_arguments_for_nutation/falp03.c
  141. +152 −0 libs/libFundamental_arguments_for_nutation/fama03.c
  142. +152 −0 libs/libFundamental_arguments_for_nutation/fame03.c
  143. +149 −0 libs/libFundamental_arguments_for_nutation/fane03.c
  144. +154 −0 libs/libFundamental_arguments_for_nutation/faom03.c
  145. +153 −0 libs/libFundamental_arguments_for_nutation/fapa03.c
  146. +152 −0 libs/libFundamental_arguments_for_nutation/fasa03.c
  147. +149 −0 libs/libFundamental_arguments_for_nutation/faur03.c
Sorry, we could not display the entire diff because it was too big.
View
542 include/sofa.h
@@ -0,0 +1,542 @@
+#ifndef SOFAHDEF
+#define SOFAHDEF
+
+/*
+** - - - - - - -
+** s o f a . h
+** - - - - - - -
+**
+** Prototype function declarations for SOFA library.
+**
+** This file is part of the International Astronomical Union's
+** SOFA (Standards Of Fundamental Astronomy) software collection.
+**
+** This revision: 2013 August 22
+**
+** SOFA release 2013-12-02
+**
+** Copyright (C) 2013 IAU SOFA Board. See notes at end.
+*/
+
+#include "sofam.h"
+#include "math.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Astronomy/Calendars */
+int iauCal2jd(int iy, int im, int id, double *djm0, double *djm);
+double iauEpb(double dj1, double dj2);
+void iauEpb2jd(double epb, double *djm0, double *djm);
+double iauEpj(double dj1, double dj2);
+void iauEpj2jd(double epj, double *djm0, double *djm);
+int iauJd2cal(double dj1, double dj2,
+ int *iy, int *im, int *id, double *fd);
+int iauJdcalf(int ndp, double dj1, double dj2, int iymdf[4]);
+
+/* Astronomy/Astrometry */
+void iauAb(double pnat[3], double v[3], double s, double bm1,
+ double ppr[3]);
+void iauApcg(double date1, double date2,
+ double ebpv[2][3], double ehp[3],
+ iauASTROM *astrom);
+void iauApcg13(double date1, double date2, iauASTROM *astrom);
+void iauApci(double date1, double date2,
+ double ebpv[2][3], double ehp[3],
+ double x, double y, double s,
+ iauASTROM *astrom);
+void iauApci13(double date1, double date2,
+ iauASTROM *astrom, double *eo);
+void iauApco(double date1, double date2,
+ double ebpv[2][3], double ehp[3],
+ double x, double y, double s, double theta,
+ double elong, double phi, double hm,
+ double xp, double yp, double sp,
+ double refa, double refb,
+ iauASTROM *astrom);
+int iauApco13(double utc1, double utc2, double dut1,
+ double elong, double phi, double hm, double xp, double yp,
+ double phpa, double tk, double rh, double wl,
+ iauASTROM *astrom, double *eo);
+void iauApcs(double date1, double date2, double pv[2][3],
+ double ebpv[2][3], double ehp[3],
+ iauASTROM *astrom);
+void iauApcs13(double date1, double date2, double pv[2][3],
+ iauASTROM *astrom);
+void iauAper(double theta, iauASTROM *astrom);
+void iauAper13(double ut11, double ut12, iauASTROM *astrom);
+void iauApio(double sp, double theta,
+ double elong, double phi, double hm, double xp, double yp,
+ double refa, double refb,
+ iauASTROM *astrom);
+int iauApio13(double utc1, double utc2, double dut1,
+ double elong, double phi, double hm, double xp, double yp,
+ double phpa, double tk, double rh, double wl,
+ iauASTROM *astrom);
+void iauAtci13(double rc, double dc,
+ double pr, double pd, double px, double rv,
+ double date1, double date2,
+ double *ri, double *di, double *eo);
+void iauAtciq(double rc, double dc, double pr, double pd,
+ double px, double rv, iauASTROM *astrom,
+ double *ri, double *di);
+void iauAtciqn(double rc, double dc, double pr, double pd,
+ double px, double rv, iauASTROM *astrom,
+ int n, iauLDBODY b[], double *ri, double *di);
+void iauAtciqz(double rc, double dc, iauASTROM *astrom,
+ double *ri, double *di);
+int iauAtco13(double rc, double dc,
+ double pr, double pd, double px, double rv,
+ double utc1, double utc2, double dut1,
+ double elong, double phi, double hm, double xp, double yp,
+ double phpa, double tk, double rh, double wl,
+ double *aob, double *zob, double *hob,
+ double *dob, double *rob, double *eo);
+void iauAtic13(double ri, double di,
+ double date1, double date2,
+ double *rc, double *dc, double *eo);
+void iauAticq(double ri, double di, iauASTROM *astrom,
+ double *rc, double *dc);
+void iauAticqn(double ri, double di, iauASTROM *astrom,
+ int n, iauLDBODY b[], double *rc, double *dc);
+int iauAtio13(double ri, double di,
+ double utc1, double utc2, double dut1,
+ double elong, double phi, double hm, double xp, double yp,
+ double phpa, double tk, double rh, double wl,
+ double *aob, double *zob, double *hob,
+ double *dob, double *rob);
+void iauAtioq(double ri, double di, iauASTROM *astrom,
+ double *aob, double *zob,
+ double *hob, double *dob, double *rob);
+int iauAtoc13(const char *type, double ob1, double ob2,
+ double utc1, double utc2, double dut1,
+ double elong, double phi, double hm, double xp, double yp,
+ double phpa, double tk, double rh, double wl,
+ double *rc, double *dc);
+int iauAtoi13(const char *type, double ob1, double ob2,
+ double utc1, double utc2, double dut1,
+ double elong, double phi, double hm, double xp, double yp,
+ double phpa, double tk, double rh, double wl,
+ double *ri, double *di);
+void iauAtoiq(const char *type,
+ double ob1, double ob2, iauASTROM *astrom,
+ double *ri, double *di);
+void iauLd(double bm, double p[3], double q[3], double e[3],
+ double em, double dlim, double p1[3]);
+void iauLdn(int n, iauLDBODY b[], double ob[3], double sc[3],
+ double sn[3]);
+void iauLdsun(double p[3], double e[3], double em, double p1[3]);
+void iauPmpx(double rc, double dc, double pr, double pd,
+ double px, double rv, double pmt, double vob[3],
+ double pco[3]);
+int iauPmsafe(double ra1, double dec1, double pmr1, double pmd1,
+ double px1, double rv1,
+ double ep1a, double ep1b, double ep2a, double ep2b,
+ double *ra2, double *dec2, double *pmr2, double *pmd2,
+ double *px2, double *rv2);
+void iauPvtob(double elong, double phi, double hm,
+ double xp, double yp, double sp, double theta,
+ double pv[2][3]);
+void iauRefco(double phpa, double tk, double rh, double wl,
+ double *refa, double *refb);
+
+/* Astronomy/Ephemerides */
+int iauEpv00(double date1, double date2,
+ double pvh[2][3], double pvb[2][3]);
+int iauPlan94(double date1, double date2, int np, double pv[2][3]);
+
+/* Astronomy/FundamentalArgs */
+double iauFad03(double t);
+double iauFae03(double t);
+double iauFaf03(double t);
+double iauFaju03(double t);
+double iauFal03(double t);
+double iauFalp03(double t);
+double iauFama03(double t);
+double iauFame03(double t);
+double iauFane03(double t);
+double iauFaom03(double t);
+double iauFapa03(double t);
+double iauFasa03(double t);
+double iauFaur03(double t);
+double iauFave03(double t);
+
+/* Astronomy/PrecNutPolar */
+void iauBi00(double *dpsibi, double *depsbi, double *dra);
+void iauBp00(double date1, double date2,
+ double rb[3][3], double rp[3][3], double rbp[3][3]);
+void iauBp06(double date1, double date2,
+ double rb[3][3], double rp[3][3], double rbp[3][3]);
+void iauBpn2xy(double rbpn[3][3], double *x, double *y);
+void iauC2i00a(double date1, double date2, double rc2i[3][3]);
+void iauC2i00b(double date1, double date2, double rc2i[3][3]);
+void iauC2i06a(double date1, double date2, double rc2i[3][3]);
+void iauC2ibpn(double date1, double date2, double rbpn[3][3],
+ double rc2i[3][3]);
+void iauC2ixy(double date1, double date2, double x, double y,
+ double rc2i[3][3]);
+void iauC2ixys(double x, double y, double s, double rc2i[3][3]);
+void iauC2t00a(double tta, double ttb, double uta, double utb,
+ double xp, double yp, double rc2t[3][3]);
+void iauC2t00b(double tta, double ttb, double uta, double utb,
+ double xp, double yp, double rc2t[3][3]);
+void iauC2t06a(double tta, double ttb, double uta, double utb,
+ double xp, double yp, double rc2t[3][3]);
+void iauC2tcio(double rc2i[3][3], double era, double rpom[3][3],
+ double rc2t[3][3]);
+void iauC2teqx(double rbpn[3][3], double gst, double rpom[3][3],
+ double rc2t[3][3]);
+void iauC2tpe(double tta, double ttb, double uta, double utb,
+ double dpsi, double deps, double xp, double yp,
+ double rc2t[3][3]);
+void iauC2txy(double tta, double ttb, double uta, double utb,
+ double x, double y, double xp, double yp,
+ double rc2t[3][3]);
+double iauEo06a(double date1, double date2);
+double iauEors(double rnpb[3][3], double s);
+void iauFw2m(double gamb, double phib, double psi, double eps,
+ double r[3][3]);
+void iauFw2xy(double gamb, double phib, double psi, double eps,
+ double *x, double *y);
+void iauNum00a(double date1, double date2, double rmatn[3][3]);
+void iauNum00b(double date1, double date2, double rmatn[3][3]);
+void iauNum06a(double date1, double date2, double rmatn[3][3]);
+void iauNumat(double epsa, double dpsi, double deps, double rmatn[3][3]);
+void iauNut00a(double date1, double date2, double *dpsi, double *deps);
+void iauNut00b(double date1, double date2, double *dpsi, double *deps);
+void iauNut06a(double date1, double date2, double *dpsi, double *deps);
+void iauNut80(double date1, double date2, double *dpsi, double *deps);
+void iauNutm80(double date1, double date2, double rmatn[3][3]);
+double iauObl06(double date1, double date2);
+double iauObl80(double date1, double date2);
+void iauP06e(double date1, double date2,
+ double *eps0, double *psia, double *oma, double *bpa,
+ double *bqa, double *pia, double *bpia,
+ double *epsa, double *chia, double *za, double *zetaa,
+ double *thetaa, double *pa,
+ double *gam, double *phi, double *psi);
+void iauPb06(double date1, double date2,
+ double *bzeta, double *bz, double *btheta);
+void iauPfw06(double date1, double date2,
+ double *gamb, double *phib, double *psib, double *epsa);
+void iauPmat00(double date1, double date2, double rbp[3][3]);
+void iauPmat06(double date1, double date2, double rbp[3][3]);
+void iauPmat76(double date1, double date2, double rmatp[3][3]);
+void iauPn00(double date1, double date2, double dpsi, double deps,
+ double *epsa,
+ double rb[3][3], double rp[3][3], double rbp[3][3],
+ double rn[3][3], double rbpn[3][3]);
+void iauPn00a(double date1, double date2,
+ double *dpsi, double *deps, double *epsa,
+ double rb[3][3], double rp[3][3], double rbp[3][3],
+ double rn[3][3], double rbpn[3][3]);
+void iauPn00b(double date1, double date2,
+ double *dpsi, double *deps, double *epsa,
+ double rb[3][3], double rp[3][3], double rbp[3][3],
+ double rn[3][3], double rbpn[3][3]);
+void iauPn06(double date1, double date2, double dpsi, double deps,
+ double *epsa,
+ double rb[3][3], double rp[3][3], double rbp[3][3],
+ double rn[3][3], double rbpn[3][3]);
+void iauPn06a(double date1, double date2,
+ double *dpsi, double *deps, double *epsa,
+ double rb[3][3], double rp[3][3], double rbp[3][3],
+ double rn[3][3], double rbpn[3][3]);
+void iauPnm00a(double date1, double date2, double rbpn[3][3]);
+void iauPnm00b(double date1, double date2, double rbpn[3][3]);
+void iauPnm06a(double date1, double date2, double rnpb[3][3]);
+void iauPnm80(double date1, double date2, double rmatpn[3][3]);
+void iauPom00(double xp, double yp, double sp, double rpom[3][3]);
+void iauPr00(double date1, double date2, double *dpsipr, double *depspr);
+void iauPrec76(double ep01, double ep02, double ep11, double ep12,
+ double *zeta, double *z, double *theta);
+double iauS00(double date1, double date2, double x, double y);
+double iauS00a(double date1, double date2);
+double iauS00b(double date1, double date2);
+double iauS06(double date1, double date2, double x, double y);
+double iauS06a(double date1, double date2);
+double iauSp00(double date1, double date2);
+void iauXy06(double date1, double date2, double *x, double *y);
+void iauXys00a(double date1, double date2,
+ double *x, double *y, double *s);
+void iauXys00b(double date1, double date2,
+ double *x, double *y, double *s);
+void iauXys06a(double date1, double date2,
+ double *x, double *y, double *s);
+
+/* Astronomy/RotationAndTime */
+double iauEe00(double date1, double date2, double epsa, double dpsi);
+double iauEe00a(double date1, double date2);
+double iauEe00b(double date1, double date2);
+double iauEe06a(double date1, double date2);
+double iauEect00(double date1, double date2);
+double iauEqeq94(double date1, double date2);
+double iauEra00(double dj1, double dj2);
+double iauGmst00(double uta, double utb, double tta, double ttb);
+double iauGmst06(double uta, double utb, double tta, double ttb);
+double iauGmst82(double dj1, double dj2);
+double iauGst00a(double uta, double utb, double tta, double ttb);
+double iauGst00b(double uta, double utb);
+double iauGst06(double uta, double utb, double tta, double ttb,
+ double rnpb[3][3]);
+double iauGst06a(double uta, double utb, double tta, double ttb);
+double iauGst94(double uta, double utb);
+
+/* Astronomy/SpaceMotion */
+int iauPmsafe(double ra1, double dec1, double pmr1, double pmd1,
+ double px1, double rv1, double ep1a, double ep1b,
+ double ep2a, double ep2b, double *ra2, double *dec2,
+ double *pmr2, double *pmd2, double *px2, double *rv2);
+int iauPvstar(double pv[2][3], double *ra, double *dec,
+ double *pmr, double *pmd, double *px, double *rv);
+int iauStarpv(double ra, double dec,
+ double pmr, double pmd, double px, double rv,
+ double pv[2][3]);
+
+/* Astronomy/StarCatalogs */
+void iauFk52h(double r5, double d5,
+ double dr5, double dd5, double px5, double rv5,
+ double *rh, double *dh,
+ double *drh, double *ddh, double *pxh, double *rvh);
+void iauFk5hip(double r5h[3][3], double s5h[3]);
+void iauFk5hz(double r5, double d5, double date1, double date2,
+ double *rh, double *dh);
+void iauH2fk5(double rh, double dh,
+ double drh, double ddh, double pxh, double rvh,
+ double *r5, double *d5,
+ double *dr5, double *dd5, double *px5, double *rv5);
+void iauHfk5z(double rh, double dh, double date1, double date2,
+ double *r5, double *d5, double *dr5, double *dd5);
+int iauStarpm(double ra1, double dec1,
+ double pmr1, double pmd1, double px1, double rv1,
+ double ep1a, double ep1b, double ep2a, double ep2b,
+ double *ra2, double *dec2,
+ double *pmr2, double *pmd2, double *px2, double *rv2);
+
+/* Astronomy/GeodeticGeocentric */
+int iauEform(int n, double *a, double *f);
+int iauGc2gd(int n, double xyz[3],
+ double *elong, double *phi, double *height);
+int iauGc2gde(double a, double f, double xyz[3],
+ double *elong, double *phi, double *height);
+int iauGd2gc(int n, double elong, double phi, double height,
+ double xyz[3]);
+int iauGd2gce(double a, double f,
+ double elong, double phi, double height, double xyz[3]);
+void iauPvtob(double elong, double phi, double height, double xp,
+ double yp, double sp, double theta, double pv[2][3]);
+
+/* Astronomy/Timescales */
+int iauD2dtf(const char *scale, int ndp, double d1, double d2,
+ int *iy, int *im, int *id, int ihmsf[4]);
+int iauDat(int iy, int im, int id, double fd, double *deltat);
+double iauDtdb(double date1, double date2,
+ double ut, double elong, double u, double v);
+int iauDtf2d(const char *scale, int iy, int im, int id,
+ int ihr, int imn, double sec, double *d1, double *d2);
+int iauTaitt(double tai1, double tai2, double *tt1, double *tt2);
+int iauTaiut1(double tai1, double tai2, double dta,
+ double *ut11, double *ut12);
+int iauTaiutc(double tai1, double tai2, double *utc1, double *utc2);
+int iauTcbtdb(double tcb1, double tcb2, double *tdb1, double *tdb2);
+int iauTcgtt(double tcg1, double tcg2, double *tt1, double *tt2);
+int iauTdbtcb(double tdb1, double tdb2, double *tcb1, double *tcb2);
+int iauTdbtt(double tdb1, double tdb2, double dtr,
+ double *tt1, double *tt2);
+int iauTttai(double tt1, double tt2, double *tai1, double *tai2);
+int iauTttcg(double tt1, double tt2, double *tcg1, double *tcg2);
+int iauTttdb(double tt1, double tt2, double dtr,
+ double *tdb1, double *tdb2);
+int iauTtut1(double tt1, double tt2, double dt,
+ double *ut11, double *ut12);
+int iauUt1tai(double ut11, double ut12, double dta,
+ double *tai1, double *tai2);
+int iauUt1tt(double ut11, double ut12, double dt,
+ double *tt1, double *tt2);
+int iauUt1utc(double ut11, double ut12, double dut1,
+ double *utc1, double *utc2);
+int iauUtctai(double utc1, double utc2, double *tai1, double *tai2);
+int iauUtcut1(double utc1, double utc2, double dut1,
+ double *ut11, double *ut12);
+
+/* VectorMatrix/AngleOps */
+void iauA2af(int ndp, double angle, char *sign, int idmsf[4]);
+void iauA2tf(int ndp, double angle, char *sign, int ihmsf[4]);
+int iauAf2a(char s, int ideg, int iamin, double asec, double *rad);
+double iauAnp(double a);
+double iauAnpm(double a);
+void iauD2tf(int ndp, double days, char *sign, int ihmsf[4]);
+int iauTf2a(char s, int ihour, int imin, double sec, double *rad);
+int iauTf2d(char s, int ihour, int imin, double sec, double *days);
+
+/* VectorMatrix/BuildRotations */
+void iauRx(double phi, double r[3][3]);
+void iauRy(double theta, double r[3][3]);
+void iauRz(double psi, double r[3][3]);
+
+/* VectorMatrix/CopyExtendExtract */
+void iauCp(double p[3], double c[3]);
+void iauCpv(double pv[2][3], double c[2][3]);
+void iauCr(double r[3][3], double c[3][3]);
+void iauP2pv(double p[3], double pv[2][3]);
+void iauPv2p(double pv[2][3], double p[3]);
+
+/* VectorMatrix/Initialization */
+void iauIr(double r[3][3]);
+void iauZp(double p[3]);
+void iauZpv(double pv[2][3]);
+void iauZr(double r[3][3]);
+
+/* VectorMatrix/MatrixOps */
+void iauRxr(double a[3][3], double b[3][3], double atb[3][3]);
+void iauTr(double r[3][3], double rt[3][3]);
+
+/* VectorMatrix/MatrixVectorProducts */
+void iauRxp(double r[3][3], double p[3], double rp[3]);
+void iauRxpv(double r[3][3], double pv[2][3], double rpv[2][3]);
+void iauTrxp(double r[3][3], double p[3], double trp[3]);
+void iauTrxpv(double r[3][3], double pv[2][3], double trpv[2][3]);
+
+/* VectorMatrix/RotationVectors */
+void iauRm2v(double r[3][3], double w[3]);
+void iauRv2m(double w[3], double r[3][3]);
+
+/* VectorMatrix/SeparationAndAngle */
+double iauPap(double a[3], double b[3]);
+double iauPas(double al, double ap, double bl, double bp);
+double iauSepp(double a[3], double b[3]);
+double iauSeps(double al, double ap, double bl, double bp);
+
+/* VectorMatrix/SphericalCartesian */
+void iauC2s(double p[3], double *theta, double *phi);
+void iauP2s(double p[3], double *theta, double *phi, double *r);
+void iauPv2s(double pv[2][3],
+ double *theta, double *phi, double *r,
+ double *td, double *pd, double *rd);
+void iauS2c(double theta, double phi, double c[3]);
+void iauS2p(double theta, double phi, double r, double p[3]);
+void iauS2pv(double theta, double phi, double r,
+ double td, double pd, double rd,
+ double pv[2][3]);
+
+/* VectorMatrix/VectorOps */
+double iauPdp(double a[3], double b[3]);
+double iauPm(double p[3]);
+void iauPmp(double a[3], double b[3], double amb[3]);
+void iauPn(double p[3], double *r, double u[3]);
+void iauPpp(double a[3], double b[3], double apb[3]);
+void iauPpsp(double a[3], double s, double b[3], double apsb[3]);
+void iauPvdpv(double a[2][3], double b[2][3], double adb[2]);
+void iauPvm(double pv[2][3], double *r, double *s);
+void iauPvmpv(double a[2][3], double b[2][3], double amb[2][3]);
+void iauPvppv(double a[2][3], double b[2][3], double apb[2][3]);
+void iauPvu(double dt, double pv[2][3], double upv[2][3]);
+void iauPvup(double dt, double pv[2][3], double p[3]);
+void iauPvxpv(double a[2][3], double b[2][3], double axb[2][3]);
+void iauPxp(double a[3], double b[3], double axb[3]);
+void iauS2xpv(double s1, double s2, double pv[2][3], double spv[2][3]);
+void iauSxp(double s, double p[3], double sp[3]);
+void iauSxpv(double s, double pv[2][3], double spv[2][3]);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+/*----------------------------------------------------------------------
+**
+** Copyright (C) 2013
+** Standards Of Fundamental Astronomy Board
+** of the International Astronomical Union.
+**
+** =====================
+** SOFA Software License
+** =====================
+**
+** NOTICE TO USER:
+**
+** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
+** CONDITIONS WHICH APPLY TO ITS USE.
+**
+** 1. The Software is owned by the IAU SOFA Board ("SOFA").
+**
+** 2. Permission is granted to anyone to use the SOFA software for any
+** purpose, including commercial applications, free of charge and
+** without payment of royalties, subject to the conditions and
+** restrictions listed below.
+**
+** 3. You (the user) may copy and distribute SOFA source code to others,
+** and use and adapt its code and algorithms in your own software,
+** on a world-wide, royalty-free basis. That portion of your
+** distribution that does not consist of intact and unchanged copies
+** of SOFA source code files is a "derived work" that must comply
+** with the following requirements:
+**
+** a) Your work shall be marked or carry a statement that it
+** (i) uses routines and computations derived by you from
+** software provided by SOFA under license to you; and
+** (ii) does not itself constitute software provided by and/or
+** endorsed by SOFA.
+**
+** b) The source code of your derived work must contain descriptions
+** of how the derived work is based upon, contains and/or differs
+** from the original SOFA software.
+**
+** c) The names of all routines in your derived work shall not
+** include the prefix "iau" or "sofa" or trivial modifications
+** thereof such as changes of case.
+**
+** d) The origin of the SOFA components of your derived work must
+** not be misrepresented; you must not claim that you wrote the
+** original software, nor file a patent application for SOFA
+** software or algorithms embedded in the SOFA software.
+**
+** e) These requirements must be reproduced intact in any source
+** distribution and shall apply to anyone to whom you have
+** granted a further right to modify the source code of your
+** derived work.
+**
+** Note that, as originally distributed, the SOFA software is
+** intended to be a definitive implementation of the IAU standards,
+** and consequently third-party modifications are discouraged. All
+** variations, no matter how minor, must be explicitly marked as
+** such, as explained above.
+**
+** 4. You shall not cause the SOFA software to be brought into
+** disrepute, either by misuse, or use for inappropriate tasks, or
+** by inappropriate modification.
+**
+** 5. The SOFA software is provided "as is" and SOFA makes no warranty
+** as to its use or performance. SOFA does not and cannot warrant
+** the performance or results which the user may obtain by using the
+** SOFA software. SOFA makes no warranties, express or implied, as
+** to non-infringement of third party rights, merchantability, or
+** fitness for any particular purpose. In no event will SOFA be
+** liable to the user for any consequential, incidental, or special
+** damages, including any lost profits or lost savings, even if a
+** SOFA representative has been advised of such damages, or for any
+** claim by any third party.
+**
+** 6. The provision of any version of the SOFA software under the terms
+** and conditions specified herein does not imply that future
+** versions will also be made available under the same terms and
+** conditions.
+*
+** In any published work or commercial product which uses the SOFA
+** software directly, acknowledgement (see www.iausofa.org) is
+** appreciated.
+**
+** Correspondence concerning SOFA software should be addressed as
+** follows:
+**
+** By email: sofa@ukho.gov.uk
+** By post: IAU SOFA Center
+** HM Nautical Almanac Office
+** UK Hydrographic Office
+** Admiralty Way, Taunton
+** Somerset, TA1 2DN
+** United Kingdom
+**
+**--------------------------------------------------------------------*/
View
250 include/sofam.h
@@ -0,0 +1,250 @@
+#ifndef SOFAMHDEF
+#define SOFAMHDEF
+
+/*
+** - - - - - - - -
+** s o f a m . h
+** - - - - - - - -
+**
+** Macros used by SOFA library.
+**
+** This file is part of the International Astronomical Union's
+** SOFA (Standards Of Fundamental Astronomy) software collection.
+**
+** Please note that the constants defined below are to be used only in
+** the context of the SOFA software, and have no other official IAU
+** status. In addition, self consistency is not guaranteed.
+**
+** This revision: 2013 August 27
+**
+** SOFA release 2013-12-02
+**
+** Copyright (C) 2013 IAU SOFA Board. See notes at end.
+*/
+
+/* Star-independent astrometry parameters */
+typedef struct {
+ double pmt; /* PM time interval (SSB, Julian years) */
+ double eb[3]; /* SSB to observer (vector, au) */
+ double eh[3]; /* Sun to observer (unit vector) */
+ double em; /* distance from Sun to observer (au) */
+ double v[3]; /* barycentric observer velocity (vector, c) */
+ double bm1; /* sqrt(1-|v|^2): reciprocal of Lorenz factor */
+ double bpn[3][3]; /* bias-precession-nutation matrix */
+ double along; /* longitude + s' + dERA(DUT) (radians) */
+ double phi; /* geodetic latitude (radians) */
+ double xpl; /* polar motion xp wrt local meridian (radians) */
+ double ypl; /* polar motion yp wrt local meridian (radians) */
+ double sphi; /* sine of geodetic latitude */
+ double cphi; /* cosine of geodetic latitude */
+ double diurab; /* magnitude of diurnal aberration vector */
+ double eral; /* "local" Earth rotation angle (radians) */
+ double refa; /* refraction constant A (radians) */
+ double refb; /* refraction constant B (radians) */
+} iauASTROM;
+/* (Vectors eb, eh, em and v are all with respect to BCRS axes.) */
+
+/* Body parameters for light deflection */
+typedef struct {
+ double bm; /* mass of the body (solar masses) */
+ double dl; /* deflection limiter (radians^2/2) */
+ double pv[2][3]; /* barycentric PV of the body (au, au/day) */
+} iauLDBODY;
+
+/* Pi */
+#define DPI (3.141592653589793238462643)
+
+/* 2Pi */
+#define D2PI (6.283185307179586476925287)
+
+/* Radians to degrees */
+#define DR2D (57.29577951308232087679815)
+
+/* Degrees to radians */
+#define DD2R (1.745329251994329576923691e-2)
+
+/* Radians to arcseconds */
+#define DR2AS (206264.8062470963551564734)
+
+/* Arcseconds to radians */
+#define DAS2R (4.848136811095359935899141e-6)
+
+/* Seconds of time to radians */
+#define DS2R (7.272205216643039903848712e-5)
+
+/* Arcseconds in a full circle */
+#define TURNAS (1296000.0)
+
+/* Milliarcseconds to radians */
+#define DMAS2R (DAS2R / 1e3)
+
+/* Length of tropical year B1900 (days) */
+#define DTY (365.242198781)
+
+/* Seconds per day. */
+#define DAYSEC (86400.0)
+
+/* Days per Julian year */
+#define DJY (365.25)
+
+/* Days per Julian century */
+#define DJC (36525.0)
+
+/* Days per Julian millennium */
+#define DJM (365250.0)
+
+/* Reference epoch (J2000.0), Julian Date */
+#define DJ00 (2451545.0)
+
+/* Julian Date of Modified Julian Date zero */
+#define DJM0 (2400000.5)
+
+/* Reference epoch (J2000.0), Modified Julian Date */
+#define DJM00 (51544.5)
+
+/* 1977 Jan 1.0 as MJD */
+#define DJM77 (43144.0)
+
+/* TT minus TAI (s) */
+#define TTMTAI (32.184)
+
+/* Astronomical unit (m) */
+#define DAU (149597870e3)
+
+/* Speed of light (m/s) */
+#define CMPS 299792458.0
+
+/* Light time for 1 au (s) */
+#define AULT 499.004782
+
+/* Speed of light (AU per day) */
+#define DC (DAYSEC / AULT)
+
+/* L_G = 1 - d(TT)/d(TCG) */
+#define ELG (6.969290134e-10)
+
+/* L_B = 1 - d(TDB)/d(TCB), and TDB (s) at TAI 1977/1/1.0 */
+#define ELB (1.550519768e-8)
+#define TDB0 (-6.55e-5)
+
+/* Schwarzschild radius of the Sun (au) */
+/* = 2 * 1.32712440041e20 / (2.99792458e8)^2 / 1.49597870700e11 */
+#define SRS 1.97412574336e-8
+
+/* dint(A) - truncate to nearest whole number towards zero (double) */
+#define dint(A) ((A)<0.0?ceil(A):floor(A))
+
+/* dnint(A) - round to nearest whole number (double) */
+#define dnint(A) ((A)<0.0?ceil((A)-0.5):floor((A)+0.5))
+
+/* dsign(A,B) - magnitude of A with sign of B (double) */
+#define dsign(A,B) ((B)<0.0?-fabs(A):fabs(A))
+
+/* max(A,B) - larger (most +ve) of two numbers (generic) */
+#define gmax(A,B) (((A)>(B))?(A):(B))
+
+/* min(A,B) - smaller (least +ve) of two numbers (generic) */
+#define gmin(A,B) (((A)<(B))?(A):(B))
+
+/* Reference ellipsoids */
+#define WGS84 1
+#define GRS80 2
+#define WGS72 3
+
+#endif
+
+/*----------------------------------------------------------------------
+**
+** Copyright (C) 2013
+** Standards Of Fundamental Astronomy Board
+** of the International Astronomical Union.
+**
+** =====================
+** SOFA Software License
+** =====================
+**
+** NOTICE TO USER:
+**
+** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
+** CONDITIONS WHICH APPLY TO ITS USE.
+**
+** 1. The Software is owned by the IAU SOFA Board ("SOFA").
+**
+** 2. Permission is granted to anyone to use the SOFA software for any
+** purpose, including commercial applications, free of charge and
+** without payment of royalties, subject to the conditions and
+** restrictions listed below.
+**
+** 3. You (the user) may copy and distribute SOFA source code to others,
+** and use and adapt its code and algorithms in your own software,
+** on a world-wide, royalty-free basis. That portion of your
+** distribution that does not consist of intact and unchanged copies
+** of SOFA source code files is a "derived work" that must comply
+** with the following requirements:
+**
+** a) Your work shall be marked or carry a statement that it
+** (i) uses routines and computations derived by you from
+** software provided by SOFA under license to you; and
+** (ii) does not itself constitute software provided by and/or
+** endorsed by SOFA.
+**
+** b) The source code of your derived work must contain descriptions
+** of how the derived work is based upon, contains and/or differs
+** from the original SOFA software.
+**
+** c) The names of all routines in your derived work shall not
+** include the prefix "iau" or "sofa" or trivial modifications
+** thereof such as changes of case.
+**
+** d) The origin of the SOFA components of your derived work must
+** not be misrepresented; you must not claim that you wrote the
+** original software, nor file a patent application for SOFA
+** software or algorithms embedded in the SOFA software.
+**
+** e) These requirements must be reproduced intact in any source
+** distribution and shall apply to anyone to whom you have
+** granted a further right to modify the source code of your
+** derived work.
+**
+** Note that, as originally distributed, the SOFA software is
+** intended to be a definitive implementation of the IAU standards,
+** and consequently third-party modifications are discouraged. All
+** variations, no matter how minor, must be explicitly marked as
+** such, as explained above.
+**
+** 4. You shall not cause the SOFA software to be brought into
+** disrepute, either by misuse, or use for inappropriate tasks, or
+** by inappropriate modification.
+**
+** 5. The SOFA software is provided "as is" and SOFA makes no warranty
+** as to its use or performance. SOFA does not and cannot warrant
+** the performance or results which the user may obtain by using the
+** SOFA software. SOFA makes no warranties, express or implied, as
+** to non-infringement of third party rights, merchantability, or
+** fitness for any particular purpose. In no event will SOFA be
+** liable to the user for any consequential, incidental, or special
+** damages, including any lost profits or lost savings, even if a
+** SOFA representative has been advised of such damages, or for any
+** claim by any third party.
+**
+** 6. The provision of any version of the SOFA software under the terms
+** and conditions specified herein does not imply that future
+** versions will also be made available under the same terms and
+** conditions.
+*
+** In any published work or commercial product which uses the SOFA
+** software directly, acknowledgement (see www.iausofa.org) is
+** appreciated.
+**
+** Correspondence concerning SOFA software should be addressed as
+** follows:
+**
+** By email: sofa@ukho.gov.uk
+** By post: IAU SOFA Center
+** HM Nautical Almanac Office
+** UK Hydrographic Office
+** Admiralty Way, Taunton
+** Somerset, TA1 2DN
+** United Kingdom
+**
+**--------------------------------------------------------------------*/
View
BIN  lib/libsofa_c.a
Binary file not shown
View
0  libcalendars.so
Sorry, we could not display the changes to this file because there were too many other changes to display.
View
132 libs/OPERATIONS INVOLVING PV−VECTORS/libCopy_extend_extract/cpv.c
@@ -0,0 +1,132 @@
+#include "sofa.h"
+
+void iauCpv(double pv[2][3], double c[2][3])
+/*
+** - - - - - - -
+** i a u C p v
+** - - - - - - -
+**
+** Copy a position/velocity vector.
+**
+** This function is part of the International Astronomical Union's
+** SOFA (Standards Of Fundamental Astronomy) software collection.
+**
+** Status: vector/matrix support function.
+**
+** Given:
+** pv double[2][3] position/velocity vector to be copied
+**
+** Returned:
+** c double[2][3] copy
+**
+** Called:
+** iauCp copy p-vector
+**
+** This revision: 2013 June 18
+**
+** SOFA release 2013-12-02
+**
+** Copyright (C) 2013 IAU SOFA Board. See notes at end.
+*/
+{
+ iauCp(pv[0], c[0]);
+ iauCp(pv[1], c[1]);
+
+ return;
+
+/*----------------------------------------------------------------------
+**
+** Copyright (C) 2013
+** Standards Of Fundamental Astronomy Board
+** of the International Astronomical Union.
+**
+** =====================
+** SOFA Software License
+** =====================
+**
+** NOTICE TO USER:
+**
+** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
+** CONDITIONS WHICH APPLY TO ITS USE.
+**
+** 1. The Software is owned by the IAU SOFA Board ("SOFA").
+**
+** 2. Permission is granted to anyone to use the SOFA software for any
+** purpose, including commercial applications, free of charge and
+** without payment of royalties, subject to the conditions and
+** restrictions listed below.
+**
+** 3. You (the user) may copy and distribute SOFA source code to others,
+** and use and adapt its code and algorithms in your own software,
+** on a world-wide, royalty-free basis. That portion of your
+** distribution that does not consist of intact and unchanged copies
+** of SOFA source code files is a "derived work" that must comply
+** with the following requirements:
+**
+** a) Your work shall be marked or carry a statement that it
+** (i) uses routines and computations derived by you from
+** software provided by SOFA under license to you; and
+** (ii) does not itself constitute software provided by and/or
+** endorsed by SOFA.
+**
+** b) The source code of your derived work must contain descriptions
+** of how the derived work is based upon, contains and/or differs
+** from the original SOFA software.
+**
+** c) The names of all routines in your derived work shall not
+** include the prefix "iau" or "sofa" or trivial modifications
+** thereof such as changes of case.
+**
+** d) The origin of the SOFA components of your derived work must
+** not be misrepresented; you must not claim that you wrote the
+** original software, nor file a patent application for SOFA
+** software or algorithms embedded in the SOFA software.
+**
+** e) These requirements must be reproduced intact in any source
+** distribution and shall apply to anyone to whom you have
+** granted a further right to modify the source code of your
+** derived work.
+**
+** Note that, as originally distributed, the SOFA software is
+** intended to be a definitive implementation of the IAU standards,
+** and consequently third-party modifications are discouraged. All
+** variations, no matter how minor, must be explicitly marked as
+** such, as explained above.
+**
+** 4. You shall not cause the SOFA software to be brought into
+** disrepute, either by misuse, or use for inappropriate tasks, or
+** by inappropriate modification.
+**
+** 5. The SOFA software is provided "as is" and SOFA makes no warranty
+** as to its use or performance. SOFA does not and cannot warrant
+** the performance or results which the user may obtain by using the
+** SOFA software. SOFA makes no warranties, express or implied, as
+** to non-infringement of third party rights, merchantability, or
+** fitness for any particular purpose. In no event will SOFA be
+** liable to the user for any consequential, incidental, or special
+** damages, including any lost profits or lost savings, even if a
+** SOFA representative has been advised of such damages, or for any
+** claim by any third party.
+**
+** 6. The provision of any version of the SOFA software under the terms
+** and conditions specified herein does not imply that future
+** versions will also be made available under the same terms and
+** conditions.
+*
+** In any published work or commercial product which uses the SOFA
+** software directly, acknowledgement (see www.iausofa.org) is
+** appreciated.
+**
+** Correspondence concerning SOFA software should be addressed as
+** follows:
+**
+** By email: sofa@ukho.gov.uk
+** By post: IAU SOFA Center
+** HM Nautical Almanac Office
+** UK Hydrographic Office
+** Admiralty Way, Taunton
+** Somerset, TA1 2DN
+** United Kingdom
+**
+**--------------------------------------------------------------------*/
+}
View
133 libs/OPERATIONS INVOLVING PV−VECTORS/libCopy_extend_extract/p2pv.c
@@ -0,0 +1,133 @@
+#include "sofa.h"
+
+void iauP2pv(double p[3], double pv[2][3])
+/*
+** - - - - - - - -
+** i a u P 2 p v
+** - - - - - - - -
+**
+** Extend a p-vector to a pv-vector by appending a zero velocity.
+**
+** This function is part of the International Astronomical Union's
+** SOFA (Standards Of Fundamental Astronomy) software collection.
+**
+** Status: vector/matrix support function.
+**
+** Given:
+** p double[3] p-vector
+**
+** Returned:
+** pv double[2][3] pv-vector
+**
+** Called:
+** iauCp copy p-vector
+** iauZp zero p-vector
+**
+** This revision: 2013 June 18
+**
+** SOFA release 2013-12-02
+**
+** Copyright (C) 2013 IAU SOFA Board. See notes at end.
+*/
+{
+ iauCp(p, pv[0]);
+ iauZp(pv[1]);
+
+ return;
+
+/*----------------------------------------------------------------------
+**
+** Copyright (C) 2013
+** Standards Of Fundamental Astronomy Board
+** of the International Astronomical Union.
+**
+** =====================
+** SOFA Software License
+** =====================
+**
+** NOTICE TO USER:
+**
+** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
+** CONDITIONS WHICH APPLY TO ITS USE.
+**
+** 1. The Software is owned by the IAU SOFA Board ("SOFA").
+**
+** 2. Permission is granted to anyone to use the SOFA software for any
+** purpose, including commercial applications, free of charge and
+** without payment of royalties, subject to the conditions and
+** restrictions listed below.
+**
+** 3. You (the user) may copy and distribute SOFA source code to others,
+** and use and adapt its code and algorithms in your own software,
+** on a world-wide, royalty-free basis. That portion of your
+** distribution that does not consist of intact and unchanged copies
+** of SOFA source code files is a "derived work" that must comply
+** with the following requirements:
+**
+** a) Your work shall be marked or carry a statement that it
+** (i) uses routines and computations derived by you from
+** software provided by SOFA under license to you; and
+** (ii) does not itself constitute software provided by and/or
+** endorsed by SOFA.
+**
+** b) The source code of your derived work must contain descriptions
+** of how the derived work is based upon, contains and/or differs
+** from the original SOFA software.
+**
+** c) The names of all routines in your derived work shall not
+** include the prefix "iau" or "sofa" or trivial modifications
+** thereof such as changes of case.
+**
+** d) The origin of the SOFA components of your derived work must
+** not be misrepresented; you must not claim that you wrote the
+** original software, nor file a patent application for SOFA
+** software or algorithms embedded in the SOFA software.
+**
+** e) These requirements must be reproduced intact in any source
+** distribution and shall apply to anyone to whom you have
+** granted a further right to modify the source code of your
+** derived work.
+**
+** Note that, as originally distributed, the SOFA software is
+** intended to be a definitive implementation of the IAU standards,
+** and consequently third-party modifications are discouraged. All
+** variations, no matter how minor, must be explicitly marked as
+** such, as explained above.
+**
+** 4. You shall not cause the SOFA software to be brought into
+** disrepute, either by misuse, or use for inappropriate tasks, or
+** by inappropriate modification.
+**
+** 5. The SOFA software is provided "as is" and SOFA makes no warranty
+** as to its use or performance. SOFA does not and cannot warrant
+** the performance or results which the user may obtain by using the
+** SOFA software. SOFA makes no warranties, express or implied, as
+** to non-infringement of third party rights, merchantability, or
+** fitness for any particular purpose. In no event will SOFA be
+** liable to the user for any consequential, incidental, or special
+** damages, including any lost profits or lost savings, even if a
+** SOFA representative has been advised of such damages, or for any
+** claim by any third party.
+**
+** 6. The provision of any version of the SOFA software under the terms
+** and conditions specified herein does not imply that future
+** versions will also be made available under the same terms and
+** conditions.
+*
+** In any published work or commercial product which uses the SOFA
+** software directly, acknowledgement (see www.iausofa.org) is
+** appreciated.
+**
+** Correspondence concerning SOFA software should be addressed as
+** follows:
+**
+** By email: sofa@ukho.gov.uk
+** By post: IAU SOFA Center
+** HM Nautical Almanac Office
+** UK Hydrographic Office
+** Admiralty Way, Taunton
+** Somerset, TA1 2DN
+** United Kingdom
+**
+**--------------------------------------------------------------------*/
+}
View
131 libs/OPERATIONS INVOLVING PV−VECTORS/libCopy_extend_extract/pv2p.c
@@ -0,0 +1,131 @@
+#include "sofa.h"
+
+void iauPv2p(double pv[2][3], double p[3])
+/*
+** - - - - - - - -
+** i a u P v 2 p
+** - - - - - - - -
+**
+** Discard velocity component of a pv-vector.
+**
+** This function is part of the International Astronomical Union's
+** SOFA (Standards Of Fundamental Astronomy) software collection.
+**
+** Status: vector/matrix support function.
+**
+** Given:
+** pv double[2][3] pv-vector
+**
+** Returned:
+** p double[3] p-vector
+**
+** Called:
+** iauCp copy p-vector
+**
+** This revision: 2013 June 18
+**
+** SOFA release 2013-12-02
+**
+** Copyright (C) 2013 IAU SOFA Board. See notes at end.
+*/
+{
+ iauCp(pv[0], p);
+
+ return;
+
+/*----------------------------------------------------------------------
+**
+** Copyright (C) 2013
+** Standards Of Fundamental Astronomy Board
+** of the International Astronomical Union.
+**
+** =====================
+** SOFA Software License
+** =====================
+**
+** NOTICE TO USER:
+**
+** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
+** CONDITIONS WHICH APPLY TO ITS USE.
+**
+** 1. The Software is owned by the IAU SOFA Board ("SOFA").
+**
+** 2. Permission is granted to anyone to use the SOFA software for any
+** purpose, including commercial applications, free of charge and
+** without payment of royalties, subject to the conditions and
+** restrictions listed below.
+**
+** 3. You (the user) may copy and distribute SOFA source code to others,
+** and use and adapt its code and algorithms in your own software,
+** on a world-wide, royalty-free basis. That portion of your
+** distribution that does not consist of intact and unchanged copies
+** of SOFA source code files is a "derived work" that must comply
+** with the following requirements:
+**
+** a) Your work shall be marked or carry a statement that it
+** (i) uses routines and computations derived by you from
+** software provided by SOFA under license to you; and
+** (ii) does not itself constitute software provided by and/or
+** endorsed by SOFA.
+**
+** b) The source code of your derived work must contain descriptions
+** of how the derived work is based upon, contains and/or differs
+** from the original SOFA software.
+**
+** c) The names of all routines in your derived work shall not
+** include the prefix "iau" or "sofa" or trivial modifications
+** thereof such as changes of case.
+**
+** d) The origin of the SOFA components of your derived work must
+** not be misrepresented; you must not claim that you wrote the
+** original software, nor file a patent application for SOFA
+** software or algorithms embedded in the SOFA software.
+**
+** e) These requirements must be reproduced intact in any source
+** distribution and shall apply to anyone to whom you have
+** granted a further right to modify the source code of your
+** derived work.
+**
+** Note that, as originally distributed, the SOFA software is
+** intended to be a definitive implementation of the IAU standards,
+** and consequently third-party modifications are discouraged. All
+** variations, no matter how minor, must be explicitly marked as
+** such, as explained above.
+**
+** 4. You shall not cause the SOFA software to be brought into
+** disrepute, either by misuse, or use for inappropriate tasks, or
+** by inappropriate modification.
+**
+** 5. The SOFA software is provided "as is" and SOFA makes no warranty
+** as to its use or performance. SOFA does not and cannot warrant
+** the performance or results which the user may obtain by using the
+** SOFA software. SOFA makes no warranties, express or implied, as
+** to non-infringement of third party rights, merchantability, or
+** fitness for any particular purpose. In no event will SOFA be
+** liable to the user for any consequential, incidental, or special
+** damages, including any lost profits or lost savings, even if a
+** SOFA representative has been advised of such damages, or for any
+** claim by any third party.
+**
+** 6. The provision of any version of the SOFA software under the terms
+** and conditions specified herein does not imply that future
+** versions will also be made available under the same terms and
+** conditions.
+*
+** In any published work or commercial product which uses the SOFA
+** software directly, acknowledgement (see www.iausofa.org) is
+** appreciated.
+**
+** Correspondence concerning SOFA software should be addressed as
+** follows:
+**
+** By email: sofa@ukho.gov.uk
+** By post: IAU SOFA Center
+** HM Nautical Almanac Office
+** UK Hydrographic Office
+** Admiralty Way, Taunton
+** Somerset, TA1 2DN
+** United Kingdom
+**
+**--------------------------------------------------------------------*/
+}
View
136 libs/OPERATIONS INVOLVING PV−VECTORS/libMatrix−vector_products/rxpv.c
@@ -0,0 +1,136 @@
+#include "sofa.h"
+
+void iauRxpv(double r[3][3], double pv[2][3], double rpv[2][3])
+/*
+** - - - - - - - -
+** i a u R x p v
+** - - - - - - - -
+**
+** Multiply a pv-vector by an r-matrix.
+**
+** This function is part of the International Astronomical Union's
+** SOFA (Standards Of Fundamental Astronomy) software collection.
+**
+** Status: vector/matrix support function.
+**
+** Given:
+** r double[3][3] r-matrix
+** pv double[2][3] pv-vector
+**
+** Returned:
+** rpv double[2][3] r * pv
+**
+** Note:
+** It is permissible for pv and rpv to be the same array.
+**
+** Called:
+** iauRxp product of r-matrix and p-vector
+**
+** This revision: 2013 June 18
+**
+** SOFA release 2013-12-02
+**
+** Copyright (C) 2013 IAU SOFA Board. See notes at end.
+*/
+{
+ iauRxp(r, pv[0], rpv[0]);
+ iauRxp(r, pv[1], rpv[1]);
+
+ return;
+
+/*----------------------------------------------------------------------
+**
+** Copyright (C) 2013
+** Standards Of Fundamental Astronomy Board
+** of the International Astronomical Union.
+**
+** =====================
+** SOFA Software License
+** =====================
+**
+** NOTICE TO USER:
+**
+** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
+** CONDITIONS WHICH APPLY TO ITS USE.
+**
+** 1. The Software is owned by the IAU SOFA Board ("SOFA").
+**
+** 2. Permission is granted to anyone to use the SOFA software for any
+** purpose, including commercial applications, free of charge and
+** without payment of royalties, subject to the conditions and
+** restrictions listed below.
+**
+** 3. You (the user) may copy and distribute SOFA source code to others,
+** and use and adapt its code and algorithms in your own software,
+** on a world-wide, royalty-free basis. That portion of your
+** distribution that does not consist of intact and unchanged copies
+** of SOFA source code files is a "derived work" that must comply
+** with the following requirements:
+**
+** a) Your work shall be marked or carry a statement that it
+** (i) uses routines and computations derived by you from
+** software provided by SOFA under license to you; and
+** (ii) does not itself constitute software provided by and/or
+** endorsed by SOFA.
+**
+** b) The source code of your derived work must contain descriptions
+** of how the derived work is based upon, contains and/or differs
+** from the original SOFA software.
+**
+** c) The names of all routines in your derived work shall not
+** include the prefix "iau" or "sofa" or trivial modifications
+** thereof such as changes of case.
+**
+** d) The origin of the SOFA components of your derived work must
+** not be misrepresented; you must not claim that you wrote the
+** original software, nor file a patent application for SOFA
+** software or algorithms embedded in the SOFA software.
+**
+** e) These requirements must be reproduced intact in any source
+** distribution and shall apply to anyone to whom you have
+** granted a further right to modify the source code of your
+** derived work.
+**
+** Note that, as originally distributed, the SOFA software is
+** intended to be a definitive implementation of the IAU standards,
+** and consequently third-party modifications are discouraged. All
+** variations, no matter how minor, must be explicitly marked as
+** such, as explained above.
+**
+** 4. You shall not cause the SOFA software to be brought into
+** disrepute, either by misuse, or use for inappropriate tasks, or
+** by inappropriate modification.
+**
+** 5. The SOFA software is provided "as is" and SOFA makes no warranty
+** as to its use or performance. SOFA does not and cannot warrant
+** the performance or results which the user may obtain by using the
+** SOFA software. SOFA makes no warranties, express or implied, as
+** to non-infringement of third party rights, merchantability, or
+** fitness for any particular purpose. In no event will SOFA be
+** liable to the user for any consequential, incidental, or special
+** damages, including any lost profits or lost savings, even if a
+** SOFA representative has been advised of such damages, or for any
+** claim by any third party.
+**
+** 6. The provision of any version of the SOFA software under the terms
+** and conditions specified herein does not imply that future
+** versions will also be made available under the same terms and
+** conditions.
+*
+** In any published work or commercial product which uses the SOFA
+** software directly, acknowledgement (see www.iausofa.org) is
+** appreciated.
+**
+** Correspondence concerning SOFA software should be addressed as
+** follows:
+**
+** By email: sofa@ukho.gov.uk
+** By post: IAU SOFA Center
+** HM Nautical Almanac Office
+** UK Hydrographic Office
+** Admiralty Way, Taunton
+** Somerset, TA1 2DN
+** United Kingdom
+**
+**--------------------------------------------------------------------*/
+}
View
143 libs/OPERATIONS INVOLVING PV−VECTORS/libMatrix−vector_products/trxpv.c
@@ -0,0 +1,143 @@
+#include "sofa.h"
+
+void iauTrxpv(double r[3][3], double pv[2][3], double trpv[2][3])
+/*
+** - - - - - - - - -
+** i a u T r x p v
+** - - - - - - - - -
+**
+** Multiply a pv-vector by the transpose of an r-matrix.
+**
+** This function is part of the International Astronomical Union's
+** SOFA (Standards Of Fundamental Astronomy) software collection.
+**
+** Status: vector/matrix support function.
+**
+** Given:
+** r double[3][3] r-matrix
+** pv double[2][3] pv-vector
+**
+** Returned:
+** trpv double[2][3] r * pv
+**
+** Note:
+** It is permissible for pv and trpv to be the same array.
+**
+** Called:
+** iauTr transpose r-matrix
+** iauRxpv product of r-matrix and pv-vector
+**
+** This revision: 2013 June 18
+**
+** SOFA release 2013-12-02
+**
+** Copyright (C) 2013 IAU SOFA Board. See notes at end.
+*/
+{
+ double tr[3][3];
+
+
+/* Transpose of matrix r. */
+ iauTr(r, tr);
+
+/* Matrix tr * vector pv -> vector trpv. */
+ iauRxpv(tr, pv, trpv);
+
+ return;
+
+/*----------------------------------------------------------------------
+**
+** Copyright (C) 2013
+** Standards Of Fundamental Astronomy Board
+** of the International Astronomical Union.
+**
+** =====================
+** SOFA Software License
+** =====================
+**
+** NOTICE TO USER:
+**
+** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
+** CONDITIONS WHICH APPLY TO ITS USE.
+**
+** 1. The Software is owned by the IAU SOFA Board ("SOFA").
+**
+** 2. Permission is granted to anyone to use the SOFA software for any
+** purpose, including commercial applications, free of charge and
+** without payment of royalties, subject to the conditions and
+** restrictions listed below.
+**
+** 3. You (the user) may copy and distribute SOFA source code to others,
+** and use and adapt its code and algorithms in your own software,
+** on a world-wide, royalty-free basis. That portion of your
+** distribution that does not consist of intact and unchanged copies
+** of SOFA source code files is a "derived work" that must comply
+** with the following requirements:
+**
+** a) Your work shall be marked or carry a statement that it
+** (i) uses routines and computations derived by you from
+** software provided by SOFA under license to you; and
+** (ii) does not itself constitute software provided by and/or
+** endorsed by SOFA.
+**
+** b) The source code of your derived work must contain descriptions
+** of how the derived work is based upon, contains and/or differs
+** from the original SOFA software.
+**
+** c) The names of all routines in your derived work shall not
+** include the prefix "iau" or "sofa" or trivial modifications
+** thereof such as changes of case.
+**
+** d) The origin of the SOFA components of your derived work must
+** not be misrepresented; you must not claim that you wrote the
+** original software, nor file a patent application for SOFA
+** software or algorithms embedded in the SOFA software.
+**
+** e) These requirements must be reproduced intact in any source
+** distribution and shall apply to anyone to whom you have
+** granted a further right to modify the source code of your
+** derived work.
+**
+** Note that, as originally distributed, the SOFA software is
+** intended to be a definitive implementation of the IAU standards,
+** and consequently third-party modifications are discouraged. All
+** variations, no matter how minor, must be explicitly marked as
+** such, as explained above.
+**
+** 4. You shall not cause the SOFA software to be brought into
+** disrepute, either by misuse, or use for inappropriate tasks, or
+** by inappropriate modification.
+**
+** 5. The SOFA software is provided "as is" and SOFA makes no warranty
+** as to its use or performance. SOFA does not and cannot warrant
+** the performance or results which the user may obtain by using the
+** SOFA software. SOFA makes no warranties, express or implied, as
+** to non-infringement of third party rights, merchantability, or
+** fitness for any particular purpose. In no event will SOFA be
+** liable to the user for any consequential, incidental, or special
+** damages, including any lost profits or lost savings, even if a
+** SOFA representative has been advised of such damages, or for any
+** claim by any third party.
+**
+** 6. The provision of any version of the SOFA software under the terms
+** and conditions specified herein does not imply that future
+** versions will also be made available under the same terms and
+** conditions.
+*
+** In any published work or commercial product which uses the SOFA
+** software directly, acknowledgement (see www.iausofa.org) is
+** appreciated.
+**
+** Correspondence concerning SOFA software should be addressed as
+** follows:
+**
+** By email: sofa@ukho.gov.uk
+** By post: IAU SOFA Center
+** HM Nautical Almanac Office
+** UK Hydrographic Office
+** Admiralty Way, Taunton
+** Somerset, TA1 2DN
+** United Kingdom
+**
+**--------------------------------------------------------------------*/
+}
View
152 libs/OPERATIONS INVOLVING PV−VECTORS/libOperations_on_vectors/pvdpv.c
@@ -0,0 +1,152 @@
+#include "sofa.h"
+
+void iauPvdpv(double a[2][3], double b[2][3], double adb[2])
+/*
+** - - - - - - - - -
+** i a u P v d p v
+** - - - - - - - - -
+**
+** Inner (=scalar=dot) product of two pv-vectors.
+**
+** This function is part of the International Astronomical Union's
+** SOFA (Standards Of Fundamental Astronomy) software collection.
+**
+** Status: vector/matrix support function.
+**
+** Given:
+** a double[2][3] first pv-vector
+** b double[2][3] second pv-vector
+**
+** Returned:
+** adb double[2] a . b (see note)
+**
+** Note:
+**
+** If the position and velocity components of the two pv-vectors are
+** ( ap, av ) and ( bp, bv ), the result, a . b, is the pair of
+** numbers ( ap . bp , ap . bv + av . bp ). The two numbers are the
+** dot-product of the two p-vectors and its derivative.
+**
+** Called:
+** iauPdp scalar product of two p-vectors
+**
+** This revision: 2013 June 18
+**
+** SOFA release 2013-12-02
+**
+** Copyright (C) 2013 IAU SOFA Board. See notes at end.
+*/
+{
+ double adbd, addb;
+
+
+/* a . b = constant part of result. */
+ adb[0] = iauPdp(a[0], b[0]);
+
+/* a . bdot */
+ adbd = iauPdp(a[0], b[1]);
+
+/* adot . b */
+ addb = iauPdp(a[1], b[0]);
+
+/* Velocity part of result. */
+ adb[1] = adbd + addb;
+
+ return;
+
+/*----------------------------------------------------------------------
+**
+** Copyright (C) 2013
+** Standards Of Fundamental Astronomy Board
+** of the International Astronomical Union.
+**
+** =====================
+** SOFA Software License
+** =====================
+**
+** NOTICE TO USER:
+**
+** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
+** CONDITIONS WHICH APPLY TO ITS USE.
+**
+** 1. The Software is owned by the IAU SOFA Board ("SOFA").
+**
+** 2. Permission is granted to anyone to use the SOFA software for any
+** purpose, including commercial applications, free of charge and
+** without payment of royalties, subject to the conditions and
+** restrictions listed below.
+**
+** 3. You (the user) may copy and distribute SOFA source code to others,
+** and use and adapt its code and algorithms in your own software,
+** on a world-wide, royalty-free basis. That portion of your
+** distribution that does not consist of intact and unchanged copies
+** of SOFA source code files is a "derived work" that must comply
+** with the following requirements:
+**
+** a) Your work shall be marked or carry a statement that it
+** (i) uses routines and computations derived by you from
+** software provided by SOFA under license to you; and
+** (ii) does not itself constitute software provided by and/or
+** endorsed by SOFA.
+**
+** b) The source code of your derived work must contain descriptions
+** of how the derived work is based upon, contains and/or differs
+** from the original SOFA software.
+**
+** c) The names of all routines in your derived work shall not
+** include the prefix "iau" or "sofa" or trivial modifications
+** thereof such as changes of case.
+**
+** d) The origin of the SOFA components of your derived work must
+** not be misrepresented; you must not claim that you wrote the
+** original software, nor file a patent application for SOFA
+** software or algorithms embedded in the SOFA software.
+**
+** e) These requirements must be reproduced intact in any source
+** distribution and shall apply to anyone to whom you have
+** granted a further right to modify the source code of your
+** derived work.
+**
+** Note that, as originally distributed, the SOFA software is
+** intended to be a definitive implementation of the IAU standards,
+** and consequently third-party modifications are discouraged. All
+** variations, no matter how minor, must be explicitly marked as
+** such, as explained above.
+**
+** 4. You shall not cause the SOFA software to be brought into
+** disrepute, either by misuse, or use for inappropriate tasks, or
+** by inappropriate modification.
+**
+** 5. The SOFA software is provided "as is" and SOFA makes no warranty
+** as to its use or performance. SOFA does not and cannot warrant
+** the performance or results which the user may obtain by using the
+** SOFA software. SOFA makes no warranties, express or implied, as
+** to non-infringement of third party rights, merchantability, or
+** fitness for any particular purpose. In no event will SOFA be
+** liable to the user for any consequential, incidental, or special
+** damages, including any lost profits or lost savings, even if a
+** SOFA representative has been advised of such damages, or for any
+** claim by any third party.
+**
+** 6. The provision of any version of the SOFA software under the terms
+** and conditions specified herein does not imply that future
+** versions will also be made available under the same terms and
+** conditions.
+*
+** In any published work or commercial product which uses the SOFA
+** software directly, acknowledgement (see www.iausofa.org) is
+** appreciated.
+**
+** Correspondence concerning SOFA software should be addressed as
+** follows:
+**
+** By email: sofa@ukho.gov.uk
+** By post: IAU SOFA Center
+** HM Nautical Almanac Office
+** UK Hydrographic Office
+** Admiralty Way, Taunton
+** Somerset, TA1 2DN
+** United Kingdom
+**
+**--------------------------------------------------------------------*/
+}
View
136 libs/OPERATIONS INVOLVING PV−VECTORS/libOperations_on_vectors/pvm.c
@@ -0,0 +1,136 @@
+#include "sofa.h"
+
+void iauPvm(double pv[2][3], double *r, double *s)
+/*
+** - - - - - - -
+** i a u P v m
+** - - - - - - -
+**
+** Modulus of pv-vector.
+**
+** This function is part of the International Astronomical Union's
+** SOFA (Standards Of Fundamental Astronomy) software collection.
+**
+** Status: vector/matrix support function.
+**
+** Given:
+** pv double[2][3] pv-vector
+**
+** Returned:
+** r double modulus of position component
+** s double modulus of velocity component
+**
+** Called:
+** iauPm modulus of p-vector
+**
+** This revision: 2013 June 18
+**
+** SOFA release 2013-12-02
+**
+** Copyright (C) 2013 IAU SOFA Board. See notes at end.
+*/
+{
+/* Distance. */
+ *r = iauPm(pv[0]);
+
+/* Speed. */
+ *s = iauPm(pv[1]);
+
+ return;
+
+/*----------------------------------------------------------------------
+**
+** Copyright (C) 2013
+** Standards Of Fundamental Astronomy Board
+** of the International Astronomical Union.
+**
+** =====================
+** SOFA Software License
+** =====================
+**
+** NOTICE TO USER:
+**
+** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
+** CONDITIONS WHICH APPLY TO ITS USE.
+**
+** 1. The Software is owned by the IAU SOFA Board ("SOFA").
+**
+** 2. Permission is granted to anyone to use the SOFA software for any
+** purpose, including commercial applications, free of charge and
+** without payment of royalties, subject to the conditions and
+** restrictions listed below.
+**
+** 3. You (the user) may copy and distribute SOFA source code to others,
+** and use and adapt its code and algorithms in your own software,
+** on a world-wide, royalty-free basis. That portion of your
+** distribution that does not consist of intact and unchanged copies
+** of SOFA source code files is a "derived work" that must comply
+** with the following requirements:
+**
+** a) Your work shall be marked or carry a statement that it
+** (i) uses routines and computations derived by you from
+** software provided by SOFA under license to you; and
+** (ii) does not itself constitute software provided by and/or
+** endorsed by SOFA.
+**
+** b) The source code of your derived work must contain descriptions
+** of how the derived work is based upon, contains and/or differs
+** from the original SOFA software.
+**
+** c) The names of all routines in your derived work shall not
+** include the prefix "iau" or "sofa" or trivial modifications
+** thereof such as changes of case.
+**
+** d) The origin of the SOFA components of your derived work must
+** not be misrepresented; you must not claim that you wrote the
+** original software, nor file a patent application for SOFA
+** software or algorithms embedded in the SOFA software.
+**
+** e) These requirements must be reproduced intact in any source
+** distribution and shall apply to anyone to whom you have
+** granted a further right to modify the source code of your
+** derived work.
+**
+** Note that, as originally distributed, the SOFA software is
+** intended to be a definitive implementation of the IAU standards,
+** and consequently third-party modifications are discouraged. All
+** variations, no matter how minor, must be explicitly marked as
+** such, as explained above.
+**
+** 4. You shall not cause the SOFA software to be brought into
+** disrepute, either by misuse, or use for inappropriate tasks, or
+** by inappropriate modification.
+**
+** 5. The SOFA software is provided "as is" and SOFA makes no warranty
+** as to its use or performance. SOFA does not and cannot warrant
+** the performance or results which the user may obtain by using the
+** SOFA software. SOFA makes no warranties, express or implied, as
+** to non-infringement of third party rights, merchantability, or
+** fitness for any particular purpose. In no event will SOFA be
+** liable to the user for any consequential, incidental, or special
+** damages, including any lost profits or lost savings, even if a
+** SOFA representative has been advised of such damages, or for any
+** claim by any third party.
+**
+** 6. The provision of any version of the SOFA software under the terms
+** and conditions specified herein does not imply that future
+** versions will also be made available under the same terms and
+** conditions.
+*
+** In any published work or commercial product which uses the SOFA
+** software directly, acknowledgement (see www.iausofa.org) is
+** appreciated.
+**
+** Correspondence concerning SOFA software should be addressed as
+** follows:
+**
+** By email: sofa@ukho.gov.uk
+** By post: IAU SOFA Center
+** HM Nautical Almanac Office
+** UK Hydrographic Office
+** Admiralty Way, Taunton
+** Somerset, TA1 2DN
+** United Kingdom
+**
+**--------------------------------------------------------------------*/
+}
View
137 libs/OPERATIONS INVOLVING PV−VECTORS/libOperations_on_vectors/pvmpv.c
@@ -0,0 +1,137 @@
+#include "sofa.h"
+
+void iauPvmpv(double a[2][3], double b[2][3], double amb[2][3])
+/*
+** - - - - - - - - -
+** i a u P v m p v
+** - - - - - - - - -
+**
+** Subtract one pv-vector from another.
+**
+** This function is part of the International Astronomical Union's
+** SOFA (Standards Of Fundamental Astronomy) software collection.
+**
+** Status: vector/matrix support function.
+**
+** Given:
+** a double[2][3] first pv-vector
+** b double[2][3] second pv-vector
+**
+** Returned:
+** amb double[2][3] a - b
+**
+** Note:
+** It is permissible to re-use the same array for any of the
+** arguments.
+**
+** Called:
+** iauPmp p-vector minus p-vector
+**
+** This revision: 2013 June 18
+**
+** SOFA release 2013-12-02
+**
+** Copyright (C) 2013 IAU SOFA Board. See notes at end.
+*/
+{
+ iauPmp(a[0], b[0], amb[0]);
+ iauPmp(a[1], b[1], amb[1]);
+
+ return;
+
+/*----------------------------------------------------------------------
+**
+** Copyright (C) 2013
+** Standards Of Fundamental Astronomy Board
+** of the International Astronomical Union.
+**
+** =====================
+** SOFA Software License
+** =====================
+**
+** NOTICE TO USER:
+**
+** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
+** CONDITIONS WHICH APPLY TO ITS USE.
+**
+** 1. The Software is owned by the IAU SOFA Board ("SOFA").
+**
+** 2. Permission is granted to anyone to use the SOFA software for any
+** purpose, including commercial applications, free of charge and
+** without payment of royalties, subject to the conditions and
+** restrictions listed below.
+**
+** 3. You (the user) may copy and distribute SOFA source code to others,
+** and use and adapt its code and algorithms in your own software,
+** on a world-wide, royalty-free basis. That portion of your
+** distribution that does not consist of intact and unchanged copies
+** of SOFA source code files is a "derived work" that must comply
+** with the following requirements:
+**
+** a) Your work shall be marked or carry a statement that it
+** (i) uses routines and computations derived by you from
+** software provided by SOFA under license to you; and
+** (ii) does not itself constitute software provided by and/or
+** endorsed by SOFA.
+**
+** b) The source code of your derived work must contain descriptions
+** of how the derived work is based upon, contains and/or differs
+** from the original SOFA software.
+**
+** c) The names of all routines in your derived work shall not
+** include the prefix "iau" or "sofa" or trivial modifications
+** thereof such as changes of case.
+**
+** d) The origin of the SOFA components of your derived work must
+** not be misrepresented; you must not claim that you wrote the
+** original software, nor file a patent application for SOFA
+** software or algorithms embedded in the SOFA software.
+**
+** e) These requirements must be reproduced intact in any source
+** distribution and shall apply to anyone to whom you have
+** granted a further right to modify the source code of your
+** derived work.
+**
+** Note that, as originally distributed, the SOFA software is
+** intended to be a definitive implementation of the IAU standards,
+** and consequently third-party modifications are discouraged. All
+** variations, no matter how minor, must be explicitly marked as
+** such, as explained above.
+**
+** 4. You shall not cause the SOFA software to be brought into
+** disrepute, either by misuse, or use for inappropriate tasks, or
+** by inappropriate modification.
+**
+** 5. The SOFA software is provided "as is" and SOFA makes no warranty
+** as to its use or performance. SOFA does not and cannot warrant
+** the performance or results which the user may obtain by using the
+** SOFA software. SOFA makes no warranties, express or implied, as
+** to non-infringement of third party rights, merchantability, or
+** fitness for any particular purpose. In no event will SOFA be
+** liable to the user for any consequential, incidental, or special
+** damages, including any lost profits or lost savings, even if a
+** SOFA representative has been advised of such damages, or for any
+** claim by any third party.
+**
+** 6. The provision of any version of the SOFA software under the terms
+** and conditions specified herein does not imply that future
+** versions will also be made available under the same terms and
+** conditions.
+*
+** In any published work or commercial product which uses the SOFA
+** software directly, acknowledgement (see www.iausofa.org) is
+** appreciated.
+**
+** Correspondence concerning SOFA software should be addressed as
+** follows:
+**
+** By email: sofa@ukho.gov.uk
+** By post: IAU SOFA Center
+** HM Nautical Almanac Office
+** UK Hydrographic Office
+** Admiralty Way, Taunton
+** Somerset, TA1 2DN
+** United Kingdom
+**
+**--------------------------------------------------------------------*/
+}
View
137 libs/OPERATIONS INVOLVING PV−VECTORS/libOperations_on_vectors/pvppv.c
@@ -0,0 +1,137 @@
+#include "sofa.h"
+
+void iauPvppv(double a[2][3], double b[2][3], double apb[2][3])
+/*
+** - - - - - - - - -
+** i a u P v p p v
+** - - - - - - - - -
+**
+** Add one pv-vector to another.
+**
+** This function is part of the International Astronomical Union's
+** SOFA (Standards Of Fundamental Astronomy) software collection.
+**
+** Status: vector/matrix support function.
+**
+** Given:
+** a double[2][3] first pv-vector
+** b double[2][3] second pv-vector
+**
+** Returned:
+** apb double[2][3] a + b
+**
+** Note:
+** It is permissible to re-use the same array for any of the
+** arguments.
+**
+** Called:
+** iauPpp p-vector plus p-vector
+**
+** This revision: 2013 June 18
+**
+** SOFA release 2013-12-02
+**
+** Copyright (C) 2013 IAU SOFA Board. See notes at end.
+*/
+{
+ iauPpp(a[0], b[0], apb[0]);
+ iauPpp(a[1], b[1], apb[1]);
+
+ return;
+
+/*----------------------------------------------------------------------
+**
+** Copyright (C) 2013
+** Standards Of Fundamental Astronomy Board
+** of the International Astronomical Union.
+**
+** =====================
+** SOFA Software License
+** =====================
+**
+** NOTICE TO USER:
+**
+** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
+** CONDITIONS WHICH APPLY TO ITS USE.
+**
+** 1. The Software is owned by the IAU SOFA Board ("SOFA").
+**
+** 2. Permission is granted to anyone to use the SOFA software for any
+** purpose, including commercial applications, free of charge and
+** without payment of royalties, subject to the conditions and
+** restrictions listed below.
+**
+** 3. You (the user) may copy and distribute SOFA source code to others,
+** and use and adapt its code and algorithms in your own software,
+** on a world-wide, royalty-free basis. That portion of your
+** distribution that does not consist of intact and unchanged copies
+** of SOFA source code files is a "derived work" that must comply
+** with the following requirements:
+**
+** a) Your work shall be marked or carry a statement that it
+** (i) uses routines and computations derived by you from
+** software provided by SOFA under license to you; and
+** (ii) does not itself constitute software provided by and/or
+** endorsed by SOFA.
+**
+** b) The source code of your derived work must contain descriptions
+** of how the derived work is based upon, contains and/or differs
+** from the original SOFA software.
+**
+** c) The names of all routines in your derived work shall not
+** include the prefix "iau" or "sofa" or trivial modifications
+** thereof such as changes of case.
+**
+** d) The origin of the SOFA components of your derived work must
+** not be misrepresented; you must not claim that you wrote the
+** original software, nor file a patent application for SOFA
+** software or algorithms embedded in the SOFA software.
+**
+** e) These requirements must be reproduced intact in any source
+** distribution and shall apply to anyone to whom you have
+** granted a further right to modify the source code of your
+** derived work.
+**
+** Note that, as originally distributed, the SOFA software is
+** intended to be a definitive implementation of the IAU standards,
+** and consequently third-party modifications are discouraged. All
+** variations, no matter how minor, must be explicitly marked as
+** such, as explained above.
+**
+** 4. You shall not cause the SOFA software to be brought into
+** disrepute, either by misuse, or use for inappropriate tasks, or
+** by inappropriate modification.
+**
+** 5. The SOFA software is provided "as is" and SOFA makes no warranty
+** as to its use or performance. SOFA does not and cannot warrant
+** the performance or results which the user may obtain by using the
+** SOFA software. SOFA makes no warranties, express or implied, as
+** to non-infringement of third party rights, merchantability, or
+** fitness for any particular purpose. In no event will SOFA be
+** liable to the user for any consequential, incidental, or special
+** damages, including any lost profits or lost savings, even if a
+** SOFA representative has been advised of such damages, or for any
+** claim by any third party.
+**
+** 6. The provision of any version of the SOFA software under the terms
+** and conditions specified herein does not imply that future
+** versions will also be made available under the same terms and
+** conditions.
+*
+** In any published work or commercial product which uses the SOFA
+** software directly, acknowledgement (see www.iausofa.org) is
+** appreciated.
+**
+** Correspondence concerning SOFA software should be addressed as
+** follows:
+**
+** By email: sofa@ukho.gov.uk
+** By post: IAU SOFA Center
+** HM Nautical Almanac Office
+** UK Hydrographic Office
+** Admiralty Way, Taunton
+** Somerset, TA1 2DN
+** United Kingdom
+**
+**--------------------------------------------------------------------*/
+}
View
143 libs/OPERATIONS INVOLVING PV−VECTORS/libOperations_on_vectors/pvu.c
@@ -0,0 +1,143 @@
+#include "sofa.h"
+
+void iauPvu(double dt, double pv[2][3], double upv[2][3])
+/*
+** - - - - - - -
+** i a u P v u
+** - - - - - - -
+**
+** Update a pv-vector.
+**
+** This function is part of the International Astronomical Union's
+** SOFA (Standards Of Fundamental Astronomy) software collection.
+**
+** Status: vector/matrix support function.
+**
+** Given:
+** dt double time interval
+** pv double[2][3] pv-vector
+**
+** Returned:
+** upv double[2][3] p updated, v unchanged
+**
+** Notes:
+**
+** 1) "Update" means "refer the position component of the vector
+** to a new date dt time units from the existing date".
+**
+** 2) The time units of dt must match those of the velocity.
+**
+** 3) It is permissible for pv and upv to be the same array.
+**
+** Called:
+** iauPpsp p-vector plus scaled p-vector
+** iauCp copy p-vector
+**
+** This revision: 2013 June 18
+**
+** SOFA release 2013-12-02
+**
+** Copyright (C) 2013 IAU SOFA Board. See notes at end.
+*/
+{
+ iauPpsp(pv[0], dt, pv[1], upv[0]);
+ iauCp(pv[1], upv[1]);
+
+ return;
+
+/*----------------------------------------------------------------------
+**
+** Copyright (C) 2013
+** Standards Of Fundamental Astronomy Board
+** of the International Astronomical Union.
+**
+** =====================
+** SOFA Software License
+** =====================
+**
+** NOTICE TO USER:
+**
+** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
+** CONDITIONS WHICH APPLY TO ITS USE.
+**
+** 1. The Software is owned by the IAU SOFA Board ("SOFA").
+**
+** 2. Permission is granted to anyone to use the SOFA software for any
+** purpose, including commercial applications, free of charge and
+** without payment of royalties, subject to the conditions and
+** restrictions listed below.
+**
+** 3. You (the user) may copy and distribute SOFA source code to others,
+** and use and adapt its code and algorithms in your own software,
+** on a world-wide, royalty-free basis. That portion of your
+** distribution that does not consist of intact and unchanged copies
+** of SOFA source code files is a "derived work" that must comply
+** with the following requirements:
+**
+** a) Your work shall be marked or carry a statement that it
+** (i) uses routines and computations derived by you from
+** software provided by SOFA under license to you; and
+** (ii) does not itself constitute software provided by and/or
+** endorsed by SOFA.
+**
+** b) The source code of your derived work must contain descriptions
+** of how the derived work is based upon, contains and/or differs
+** from the original SOFA software.
+**
+** c) The names of all routines in your derived work shall not
+** include the prefix "iau" or "sofa" or trivial modifications
+** thereof such as changes of case.
+**
+** d) The origin of the SOFA components of your derived work must
+** not be misrepresented; you must not claim that you wrote the
+** original software, nor file a patent application for SOFA
+** software or algorithms embedded in the SOFA software.
+**
+** e) These requirements must be reproduced intact in any source
+** distribution and shall apply to anyone to whom you have
+** granted a further right to modify the source code of your
+** derived work.
+**
+** Note that, as originally distributed, the SOFA software is
+** intended to be a definitive implementation of the IAU standards,